feat(aihr): enable grounded agent active runtime

This commit is contained in:
key
2026-08-04 22:29:13 +08:00
parent 901f1aeb3c
commit ba0c718975
7 changed files with 490 additions and 2 deletions
@@ -0,0 +1,39 @@
# Grounded Agent ACTIVE 激活运行手册
状态:代码已实现,生产尚未切换。
## 配置契约
- `OFF`:旧 Agent 响应,默认值和快速回滚值。
- `SHADOW`:旧响应对用户可见,Grounded Agent 只做旁路审计。
- `ACTIVE`:仅文本 `KNOWLEDGE_QA` 和 `LIVE_MY_WORK` 进入 Grounded Agent;媒体、资源、外网、写入、训练等请求继续走旧链路。
生产配置通过服务端环境变量设置:
```text
AIHR_AGENT_GROUNDED_MODE=ACTIVE
```
不能在客户端提交模式、工具或授权范围。租户、用户、应用、项目和知识空间仍由认证主体重新解析。
## 用户可见行为
Grounded Agent 只把通过授权和证据门禁的结果适配为现有 `AgentResponse`:
- `ANSWERED` 映射为 `COMPLETED`;
- `PARTIAL`、`NEEDS_INPUT`、`NO_EVIDENCE`、`CONFLICT` 保留为对应状态;
- 正式制度、操作手册、已批准 SOP 使用真实来源字段;
- `NO_EVIDENCE`、`PARTIAL`、`CONFLICT` 不回退为隐藏的旧答案;
- 会话仍使用现有 30 分钟、最近 6 轮和 `contextVersion`,结构化状态写入 additive 的 `state_json/state_version`。
## 发布和回滚
1. 工作树干净后运行只读 `scripts/release-backend.sh plan`。
2. 仅使用计划输出的完整 `DEPLOY_BACKEND:<hash>` 授权串执行发布,不手工覆盖 JAR。
3. 发布后先保持 `OFF` 做服务、JAR、schema 和认证请求预检。
4. 通过内部账号验证后,再由受控 systemd drop-in 设置 `AIHR_AGENT_GROUNDED_MODE=ACTIVE` 并重启服务。
5. 任一异常将环境变量改回 `OFF`,按同一配置路径重启;不需要回滚数据库结构。
审计只能记录 query hash、run ID、结构化状态、工具/证据计数、差异和耗时,不得写入原问题、答案、手机号、token、附件或工具正文。
没有 100-300 条人工标注黄金集前,不宣称正式召回率达标。