--- name: kb_search_dynamic description: 知识库动态检索工具,支持元数据驱动过滤 triggers: - 用户问题需要知识库事实支撑回答 - 需要按租户元数据动态过滤知识条目 - 涉及产品知识、政策条款、FAQ查询 - 用户询问具体业务规则或流程 anti_triggers: - 纯闲聊或问候语 - 仅流程确认(如"好的"、"明白了") - 已有充分 KB 结果且无需补充 - 用户问题与知识库内容无关 tools: - kb_search_dynamic --- ## 使用指南 ### 何时使用 当需要知识库事实支撑回答,且需按租户元数据动态过滤时使用。 ### 何时不使用 当用户问题不依赖知识库(纯闲聊/仅流程确认)或已有充分 KB 结果时不重复调用。 ### 参数说明 | 参数 | 类型 | 必填 | 说明 | |-----|------|-----|------| | query | string | 是 | 检索查询文本 | | tenant_id | string | 是 | 租户 ID(系统自动注入) | | scene | string | 否 | 场景标识,如 open_consult | | top_k | integer | 否 | 返回条数,默认5 | | context | object | 否 | 上下文,用于动态过滤字段 | ### 示例调用 ```json { "query": "退款到账一般要多久", "scene": "open_consult", "top_k": 5, "context": {"product_line": "vip_course", "region": "beijing"} } ``` ### 结果解释 - `success=true` 且 `hits` 非空:命中知识,可直接使用 - `missing_required_slots` 非空:应先向用户补采信息 - `fallback_reason_code` 存在:需降级处理 ### 注意事项 1. tenant_id 由系统自动注入,模型不要填写 2. context 字段用于传递动态过滤条件,如产品线、地区等 3. 避免重复调用:如果上一轮已有充分结果,不要再次调用 4. 查询文本应保持用户原意,不要过度改写