From 902b76488b9a2a88418c20f9e0d17068beb90993 Mon Sep 17 00:00:00 2001 From: zichun <26684461+reporkey@users.noreply.github.com> Date: Tue, 21 Jul 2026 22:11:30 +0800 Subject: [PATCH] docs: §15 implementation status — built (5 tools + HITL write + audit + persistence) vs deferred (authz/create-delete-审核/FormCollect/staging-executor/Langfuse/NL2SQL) --- docs/agent-architecture.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+), 0 deletions(-) diff --git a/docs/agent-architecture.md b/docs/agent-architecture.md index 96e9993..90687e3 100644 --- a/docs/agent-architecture.md +++ b/docs/agent-architecture.md @@ -196,3 +196,23 @@ ai_op_queue( 6. **formId 解析**:靠 KG 上下文让 LLM 推理 → 先搭框架、之后补 KgSearch;过渡期表单名模糊匹配 + 不唯一则 AskUser。 7. 现网安全发现(后端表单权限被关 / NL2SQL 越权 / 读 API 可写)是否作为独立整改上报业务。 8. 首个灰度只读场景选哪个(建议高频只读轻后果,如库存 / 应收账龄)。 + +## 15. 实现状态(2026-07-21,分支 `kg-edge-flow`) + +**已建成、可运行、已验证**(xlyAi 全新单 agent 前后端,`/xlyAi/api/agent/*`): +- **单 ReAct agent**:`AiServices` 流式工具循环(qwen3:14b `think(false)`),L1 域图进 system prompt,退役 8 场景路由(旧代码休眠未删)。 +- **对话**:SSE 流式;**多命名会话 + Redis 持久化**(`RedisChatMemoryStore`,重启不丢)+ 侧栏。 +- **工具(5)**:`findForms`(表单目录/KgSearch雏形) · `readFormData`(列表/计数) · `lookupRecord`(单记录全字段) · `queryData`(只读 SQL 兜底,jsqlparser+LIMIT+审计) · `proposeUpdate`(HITL 写:改字段)。 +- **写入闭环**:`ai_op_queue` 暂存 → 提议不执行 → `write_proposal` 卡片 → 确定性 `/op/{id}/confirm` 执行(ERP `addUpdateDelBusinessData`) / `cancel`。确认前绝不落地。 +- **审计**:`ai_audit_log` 记 propose/confirm/cancel/query。 +- **ERP 接入**:`ErpClient` dev-login(admin/666666)拿真实会话 token;读 `getBusinessDataByFormcustomId`,写 `addUpdateDelBusinessData`(`column` 列表 + `handleType`)。 + +**尚未做 / 被外部条件阻塞**(按原因归类): +- **授权层(§7)**:机制可建,但 dev-login=admin 时全通、无意义;**需生产的透传用户 token 才能真正约束**。 +- **写:新增 / 删除 / 审核**:`create` 撞 NOT-NULL 连环(sId/sParentId…);`delete/审核` 格式与校验各异且后果重。正解是**架构里的 ERP 侧暂存执行器(跨团队)**;当前只做安全的 `update`。 +- **FormCollect(§5)**:需 ERP 前端在对话里渲染表单——**跨团队**。 +- **ERP 侧暂存执行器 + 预填 + 深链(§10)**:**跨团队**,本项目未覆盖。 +- **Langfuse(§1)**:需自托管实例——**基础设施**。 +- **AskUser 结构化选项**:当前 agent 用自然语言澄清(如 lookupRecord 命中多条会请用户说具体),功能已覆盖,结构化选项为后续优化。 +- **稳健 NL2SQL**:`queryData` 安全但选表/拼 join 精度有限(架构 §14.1 早已标注为待专项攻关)。 +- **现网安全发现上报**(后端权限关 / 旧 NL2SQL 越权 / 读 API 可写):**业务侧事项**,非本次代码。 -- libgit2 0.22.2