- 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
1.3 KiB
1.3 KiB
Brief: executor-action-memory-relevance
背景
ISS-002:Executor 在单次会话中调用 lookup_knowledge 20+ 次,大部分是同域换变体的冗余调用。前序 change session-dedup-knowledge-map 解决了文档级重复召回(ISS-001),但未解决 Executor 重复调用问题。
目标
- Executor 获得行动记忆(知道自己本次会话已检索了哪些域)
- 检索结果提供归一化质量等级(PRECISE/HIGHLY_RELEVANT/REFERENCE)+ 兜底信号
- Executor prompt 提供明确的检索约束和"放弃检索"的合法出口
- 原始分数入库保留可观测性,但不暴露给 LLM
范围
RetrievedDocTracker:域级 + 文档级双层记录LookupKnowledgeTool:归一化层 + 行动记忆注入LookupResult:新增 relevanceLevel / completenessHint / retrievedDomainsThisSessionchat-executor-prompt.md:检索约束重写ToolInvocation+ V010:入库可观测性
非目标
- 不给 Executor 注入 knowledge map(保持 Agent 边界)
- 不修改 Planner prompt 或 Planner 逻辑
- 不修改 PrimaryResult / SupplementResult 的字段(不暴露原始分数)
- Phase 2 域级硬限制暂不实施
分档
standard
关联 OpenSpec change
openspec/changes/executor-action-memory-relevance