Files
prop-ai-hr/docs/adr/ADR-002-GROUNDED-AGENT-EXECUTION.md

44 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ADR-002:采用受约束工具执行与证据分型
- 状态:Accepted
- 日期:2026-08-04
## 决策
问师傅继续基于现有 Spring 服务实现受约束 Agent,不引入第三方自由 Agent 框架。LLM 负责语义规划和答案组织,服务端负责确定性事实校验、授权、工具执行、证据评估和引用复核。
工具结果分为 `DOCUMENT_EVIDENCE` 与 `VERIFIED_FACT`;用户陈述单独保存为 `USER_ASSERTION`。文档提到某系统只能证明文档内容,不能证明系统已接入或已查询实时数据。历史 LLM 回答不能成为事实来源。
`DocumentEvidence.supportedNeedCodes/claimTypes` 只表达语义分类器提出的候选支持关系。最终资格由服务端结合来源权威、来源类型、有效期、适用范围、正文逐槽位支持和逐 claim 蕴含共同判定;模型标签不能绕过门禁。正式场景模糊时 fail-closed。
执行循环最多三轮:首次工具执行、一次有明确证据缺口的补查、澄清或结束。最终模型只接收通过门禁的证据、事实、缺口、冲突和决策结果。
工具参数由注册 schema 约束:`MY_CURRENT_TASKS` 接收日期范围,`KNOWLEDGE_SEARCH` 不接收日期字段;授权作用域只从服务端 `ExecutionContext` 注入。运行时对调用 hash 去重,并限制调用数、候选数与耗时;超时作为受控状态结束当前链路。
## 原因
现有单工具计划、关键词早退、历史文本改写和数据工具 Citation 无法稳定支持多工具问题,也无法阻止文档事实与实时业务状态混淆。继续增加关键词和正则会扩大不可解释分支,不能解决授权、时效和证据完整性问题。
## 影响
- 保留现有统一 Agent API、认证解析、知识授权、RAG 治理和审计。
- 金额候选/送模/复核成为确定性校验器的第一条纵向切片。
- 旧路径在影子验证期间继续承担兼容回退。
- 新运行时先以默认 `OFF` 的异步 SHADOW 旁路挂在现役文本入口之后;旧响应先完成,旁路不得改变客户端契约,媒体/附件不进入影子执行。
- SHADOW 使用有界队列、独立 watchdog 和单次原子终态;审计只保存 query hash、授权范围哈希、结构化代码、计数与耗时,不保存问题、答案、附件或工具正文。
- 工具必须声明 schema、授权、时效、幂等、审计和允许意图。
- `PARTIAL` 只能输出已覆盖 claim slots;零合格证据不调用答案模型。
- 客户端最终按 `DecisionStatus` 展示完整、部分、需补充、无依据和冲突状态。
## 本地验证更新(2026-08-04,ACTIVE 发布前的旁路阶段)
- 治理 Qdrant `aihr_knowledge_governed_v1` 已在本地以 MySQL 有效 production fragments 幂等重建:224/224 points 一致,1024 维 Cosine,`BAAI/bge-m3`,payload 治理字段完整。
- 当时真实 HTTP 只启用进程级 `SHADOW` 诊断,旧响应保持用户可见;金额变体、能力查询、CRM 能力边界、待办+流程和第二项材料已通过双工具/能力工具观测。正式来源缺失时为 `NO_EVIDENCE` 或 `PARTIAL`,不调用答案生成模型。
- 最近样本 Planner 约 1.4-4.1 秒、shadow 总耗时约 3.1-7.3 秒,默认 4 秒仅是旁路保护预算,不是生产 SLA。尚未具备客户端灰度接管条件,也没有在缺少 100-300 条人工黄金集时宣称召回率达标。
## 当前运行态(2026-08-04)
在保留上述隔离、回退和证据门禁原则的前提下,生产已通过受控发布将 `AIHR_AGENT_GROUNDED_MODE` 设置为 `ACTIVE`。当前只接管符合严格计划的文本 `KNOWLEDGE_QA` 与 `LIVE_MY_WORK`;媒体、资源、外网、写入、训练及不满足门禁的请求继续使用旧 Orchestrator。生产 JAR SHA-256 为 `74d0cd2acc60ebf52f20eb8bee643f59395ba7cff3583076d671e57406f824ac`,服务为 `active`,schema 预检 `83/83`,公开接口预检通过。
这不是对原决策中“先影子验证、再受控接管”原则的否定,而是该迁移顺序的当前阶段。认证态用户逐例问答、客户端状态 UI 全量验收和 100–300 条人工黄金集仍未完成;在这些证据补齐前,不宣称生产召回率达标,也不视为完整客户端灰度。