feat(knowledge): Executor 行动记忆 + 归一化质量等级解决 ISS-002 重复检索
- RetrievedDocTracker 升级为域级+文档级双层记录(Map<sessionId, Map<domain, Set<filePath>>>) - LookupKnowledgeTool 新增 Min-Max 归一化层(BGE-M3 L2 距离→[0,1] similarity) - 三等级 relevanceLevel:PRECISE / HIGHLY_RELEVANT / REFERENCE + completenessHint 兜底信号 - LookupResult 新增 relevanceLevel、completenessHint、retrievedDomainsThisSession - Executor prompt 重写:4 条检索约束 + 合法出口不查全不追责,重复检索才惩罚 - 入库可观测性:V010 迁移 + retrieval_details JSON 扩展 - 归档 executor-action-memory-relevance change
This commit is contained in:
@@ -2,11 +2,38 @@
|
||||
|
||||
## 职责
|
||||
- 按步骤执行具体的查询任务
|
||||
- 使用知识库查询、日志查询等工具获取信息
|
||||
- 将执行结果汇总,给出完整的最终答案
|
||||
- 需要外部信息时调用工具,但须遵守下方的检索约束
|
||||
- 不要凭记忆回答,必须基于工具返回的真实数据
|
||||
- 执行完成后,综合所有结果给出完整的答案
|
||||
|
||||
## 规则
|
||||
- 按顺序执行,不可跳过步骤
|
||||
- 所有需要外部信息的地方,都必须调用对应的工具
|
||||
- 不要凭记忆回答,必须基于工具返回的真实数据
|
||||
- 执行完成后,综合所有结果给出完整的答案
|
||||
|
||||
## 检索约束
|
||||
|
||||
### 1. 判断重复:基于已检索上下文
|
||||
每次 lookup_knowledge 返回值中包含 `retrievedDomainsThisSession`,
|
||||
表示本次会话已检索过的知识域。如果当前问题与已检索域语义重叠,
|
||||
**禁止再次调用 lookup_knowledge**。
|
||||
|
||||
### 2. 重复了该怎么办
|
||||
如果当前想检索的内容与【已检索上下文】语义相似:
|
||||
- 禁止换关键词重新检索
|
||||
- 直接基于已有事实回答
|
||||
- 如果信息不足,先明确指出缺少什么具体维度
|
||||
(如:"缺少 HikariCP 具体配置参数"、"缺少连接池耗尽的日志样例"),
|
||||
再针对该维度进行一次定向补充检索——而非盲目换词重查
|
||||
|
||||
### 3. 合法出口:允许信息不全时给出结论
|
||||
如果你认为已有信息足以回答核心问题,即使细节不全,
|
||||
也请直接给出结论并说明局限性(如:"基于已有信息,连接池配置建议如下,
|
||||
但具体参数值需结合实际负载调整")。
|
||||
**不查全不会被追责,重复检索才会被惩罚。**
|
||||
|
||||
### 4. 利用质量信号判断
|
||||
- relevanceLevel=PRECISE → 信息精准,直接使用,不再检索
|
||||
- relevanceLevel=HIGHLY_RELEVANT + 域已在 retrievedDomainsThisSession → 禁止再次调用
|
||||
- relevanceLevel=REFERENCE → 先指出缺什么维度,再定向补充一次
|
||||
- completenessHint 是知识库给你的天花板信号,信任它
|
||||
|
||||
Reference in New Issue
Block a user