diff --git a/docs/guides/usage.md b/docs/guides/usage.md index e40449a..786effe 100644 --- a/docs/guides/usage.md +++ b/docs/guides/usage.md @@ -68,6 +68,7 @@ agent-system version - **流式渲染**:正文逐字输出;思考过程(灰字竖线)与工具调用(芯片)实时展示;顶部状态点显示事件流连接。 - **过程折叠**:任务完成后,思考与工具调用折叠为「⚙ 过程输出 · N 次工具调用」摘要行,点击展开回看(设置 → 界面 → 可改默认行为)。 +- **上下文构成观测**:每条助手消息尾部「🧩 上下文构成」折叠芯片——该轮模型实际看到什么(系统提示/历史条数/附件/知识命中)与裁剪记录(历史超窗/工具结果超限),输入规模可解释。 - **附件**:📎 上传 md/txt/docx/pdf/图片——文档经内置解析器(确定性代码解析:md/txt 直读、docx 解 OOXML、pdf 提取文本层)转为中间表示注入对话;解析结果与警告显式可见(不静默)。 - **输入增强**:`/` 唤起命令菜单(/new /mock /model /profile /help);`@knowledge` 在消息中触发知识检索注入。 @@ -77,6 +78,7 @@ agent-system version |---|---| | `#hitl` | HITL 卡片:选项 + 建议 + **影响** + 自由输入(自由输入 `/` 开头会转轨为新命令并取消挂起任务) | | `#agents` | 多代理:计划/待办更新 + 派生两个子代理(任务树、进度、结果) | +| `#squad <目标>` | **Agent-Squad 引擎编排**:规则规划器四阶段计划(梳理→专项→成文→终审)→ 计划确认卡(批准/放弃,可自由输入修改指令)→ 每步一个子代理(任务树)→ 交付物工件 | | `#doc` | 工件产出:生成文档 → 右栏 Artifacts → 点击查看(md 可在线编辑保存) | | `#error` | 失败路径:错误部件 + 任务失败状态 | @@ -93,7 +95,7 @@ agent-system version - 右栏「代理」tab:任务树(对话任务 + 子代理,状态点动画)。 - 点击任意节点 → **追踪弹窗**:状态、token/时长/工具用量徽标、**中间过程消息**(子代理产出已持久化)。 -- 真实模型模式下,模型可经 `delegate_task` 工具自主派生子代理。 +- 真实模型模式下,模型可经 `delegate_task` 派生子代理、经 `squad_orchestrate` 发起引擎编排(多步骤目标建议后者:计划确认 + 交付物把关)。 ### 4.3 计划 / 待办 diff --git a/docs/records/2026-09-29-implementation.md b/docs/records/2026-09-29-implementation.md index 774a156..37dafb1 100644 --- a/docs/records/2026-09-29-implementation.md +++ b/docs/records/2026-09-29-implementation.md @@ -10,7 +10,7 @@ | P0 仓网 | 六仓初始化推送、gitea 描述(含老系统「冻结参考」)、Dev submodule 组合(10 组件,生态 pin 与既有纪律一致) | ✓ 全新 clone 物化+组合构建通过 | Dev `286fdaa` | | P1 契约+骨架 | Core 契约(Go+黄金样本+TS 三态,conformance 测试);Backend 存储层/SSE/事件信封;Frontend 三栏+流式+折叠 | ✓ mock 对话端到端 | Core `992d601` 起 | | P2 真实智能体 | agent-native `runtime/llm` 客户端复用(多轮工具循环、reasoning→thinking 映射、usage 归集、预算执行);模型路由按 kind;画像/设置/上下文组装/摄取(md/txt/docx OOXML/pdf 文本层) | ✓(真实模型路径代码+单测就位;live smoke 以 mock 验证协议,模型联调待用户密钥) | Backend `8aa5e8d` | -| P3 编排/HITL | sub-agent 统一 Run 任务树(spawn/progress/result 事件+子代理消息持久化)、AgentTracker 弹窗、计划/待办、HITL 三分支路由(含 agent-intent 闸门转轨,`a671d60`)、`/` 命令与 `@knowledge` | ✓(Agent-Squad 引擎适配为偏差项 #1,见测试报告 §6) | Backend `a671d60` | +| P3 编排/HITL | sub-agent 统一 Run 任务树、AgentTracker 弹窗、计划/待办、HITL 三分支路由(agent-intent 闸门转轨)、`/` 命令与 `@knowledge`、**Agent-Squad 引擎适配**(squadadapter:规则规划器四阶段 + 步骤即子 Run + 计划确认卡 + 交付物工件;`#squad` 指令与 `squad_orchestrate` 工具;模型路由三层覆盖链解析器 + 集成测试;上下文组装观测全链路) | ✓ 全部达成(验收表 15/15) | Backend `0a69a56` / Core `c7ae99b` / Frontend `9b8572a` | | P4 插件机制 | pluginhost(manifest 校验/五类能力/fail-closed/热重载/卸载语义)、统一注册表+来源标记、声明式 HTTP 工具、示例插件、schema 驱动设置中心、插件开发指南 | ✓ | Backend + Dev `plugins/example` | | P5 发布 | Dev Makefile(契约同步→前端→embed→静态单二进制);Releases 构建管线(manifest sha256 + systemd + 安装/回退);0.1.0 发布 | ✓ 13MB 单二进制;12 项制品 smoke 全过 | Releases `6c40909` | diff --git a/docs/reports/2026-09-29-test-report.md b/docs/reports/2026-09-29-test-report.md index 170292f..3de57ef 100644 --- a/docs/reports/2026-09-29-test-report.md +++ b/docs/reports/2026-09-29-test-report.md @@ -1,6 +1,6 @@ # Agent-System 测试报告(v0.1.0) -日期:2026-09-29;对象:Dev 组合 `5c64b6b`(core `992d601` / backend `a671d60` / frontend `5b6b52d` + 生态 pin;发布制品 sha256 `a3128fe1…`)。 +日期:2026-09-29(终版);对象:Dev 组合 `942abc9`(core `c7ae99b` / backend `0a69a56` / frontend `9b8572a` + 生态 pin 含 agent-squad `5454f74`;发布制品 sha256 `4f6ac6bd…`)。 范围:设计方案第 6 节验收表的逐项验证 + 单元/集成/端到端/真实运行四层证据。 复现环境:go1.27.1 linux/amd64、node v26.10.0;命令见 §5。 @@ -8,13 +8,13 @@ | 层 | 位置 | 数量 | 结果 | |---|---|---|---| -| 契约一致性(Core 黄金样本) | Agent-System-Core `go test ./...` | 9 | 全部通过 | -| 后端单元+端到端 | Agent-System-Backend `go test ./...`(server/ingest/tools/plugins/intentgate 五包) | 22 | 全部通过 | +| 契约一致性(Core 黄金样本) | Agent-System-Core `go test ./...` | 10 | 全部通过 | +| 后端单元+端到端 | Agent-System-Backend `go test ./...`(server/ingest/tools/plugins/intentgate/runtime/squadadapter 七包) | 29 | 全部通过 | | 前端契约形状(vitest,黄金样本驱动) | Agent-System-Frontend `npm test` | 5 | 全部通过 | | 真实运行验证(发布制品 smoke) | 本报告 §3 | 12 项检查 | 全部通过 | | 组合构建验证 | Dev `make build` / Releases `build-release.sh 0.1.0` | — | 通过(单二进制 13MB 静态链接;sha256 校验一致) | -合计 36 项自动化测试 + 13 项 live 检查(含发布制品上的意图转轨验证),全绿。 +合计 44 项自动化测试 + 15 项 live 检查(含发布制品上的意图转轨、**Squad 编排全链路**与**上下文观测下发**验证),全绿。 ## 2. 自动化测试明细 @@ -31,7 +31,7 @@ | 用例 | 验证点(对照设计验收表) | |---|---| -| server.TestMockConversationFlow | mock 全链路:run 完成;助手消息含 text/thinking/tool_call/tool_result 四类部件;**过程部件带 process 标记(终态折叠依据)**;lastSeq 游标为正 | +| server.TestMockConversationFlow | mock 全链路:run 完成;助手消息含 text/thinking/tool_call/tool_result 四类部件;**过程部件带 process 标记(终态折叠依据)**;lastSeq 游标为正;**run.completed 事件携带上下文观测(context.items 非空)** | | server.TestHITLChoiceFlow | 卡片出现;**每个选项必含 impact(决策上下文契约断言)**;选项解析→run 完成;消息树含 HITL 摘要部件 | | server.TestHITLFreeTextPivot | 自由输入 `/new` → pivoted=true;挂起 run 转为 cancelled(**三分支路由之转轨**) | | server.TestSubagentFlow | 两个子代理 run:kind=subagent、父子关系正确、全部 completed(**任务树**) | @@ -39,6 +39,11 @@ | server.TestUploadParseAndKnowledge | md 上传→multipart→解析结果返回;**中文全文检索命中**(FTS5→LIKE 兜底路径) | | server.TestSSEStreamAndReplay | 真实 SSE 连接:在线收到 message.delta 与 run.completed;事件 id 单调;since 游标重放端点 200 | | server.TestCommandsRoute | `/help` 命令路由返回;未知命令 400 | +| **server.TestSquadOrchestration** | **Agent-Squad 引擎真实驱动**:规则规划器四阶段计划、计划确认 HITL 卡(含编制与步骤说明)、4 个步骤各派生子代理(任务树)、计划事件到右栏、交付物工件 | +| runtime.TestResolveChatModelLayers / TestResolveLightweightFallback | 模型路由解析器:设置层 → 画像层覆盖;轻量档模型/端点分别回落主档 | +| **server.TestModelRoutingOverrideChain** | 覆盖链集成:user 层 model-A → project 层 model-B(覆盖)→ 画像层 model-C(最终覆盖,经真实 run 失败信息携带解析结果取证) | +| squadadapter.TestMapPlanAndStatus / TestBuiltinRolesValid / TestIsHoldStatus | 计划快照映射/内置角色合法性/挂起态判定 | +| Core.TestGoldenContextObservation | 上下文观测契约黄金样本(items/truncations/estChars) | | server.TestHITLIntentPivot | **agent-intent 闸门**:装载插件意图后,自由输入命中其他意图 → pivoted=true、挂起 run 取消(三分支路由之意图转轨) | | intentgate.TestGateMatchAndFallback / TestGateFailClosed | agent-intent 注册表:命中/回落判定;坏 spec 保留上一快照(fail-closed);空重建显式停用 | | server.TestStaticServed | SPA 路由不异常(空 embed 下行为受控) | @@ -75,6 +80,8 @@ | 11 | 游标重放端点 | ✓ | `since=0` 重放 200(TestSSEStreamAndReplay 同源验证) | | 12 | 发布包自包含运行 | ✓ | 解包独立目录启动→health/SPA/插件全部正常 | | 13 | **意图转轨(发布制品)** | ✓ | 装载 example 插件后,HITL 自由输入「来个示例演示」→ `{"pivoted":true}`(agent-intent 闸门生效) | +| 14 | **Squad 编排(发布制品)** | ✓ | `#squad` → 计划确认卡 → 4 个步骤子代理(任务树 children=4)→ 计划步骤全 done → 交付物工件 `squad-run_*.md`(run completed,1.2s) | +| 15 | **上下文观测下发(发布制品)** | ✓ | SSE 重放 run.completed 载荷含 `context:{items:[…], estChars}`(前端折叠芯片消费同一载荷) | ## 4. 验收表对照(设计方案第 6 节) @@ -87,8 +94,8 @@ | 工件查看 | ✅ 实现+测试 | TestArtifactFlow + DocViewer(md 渲染/编辑保存/图片/下载) | | HITL 三路径 | ✅ 实现+测试 | 选中回填(Choice)/自由回填(FreeText→澄清)/命令转轨(Pivot→cancel+新消息) | | sub-agent 弹窗:任务树/中间过程/结果 | ✅ 实现+测试 | TestSubagentFlow + AgentTracker(子代理消息持久化 `06478c2`) | -| 模型路由与画像生效 | ⚠️ 部分 | 画像 CRUD/导入导出/三清单与会话绑定实现并有单测(Core TestToolPolicy + profiles);「三层覆盖链各取一例」的集成测试与轻量模型回落实测**未写自动化用例**(设置生效时机已 schema 标注;待真实模型联调时补) | -| 上下文预算与裁剪可观测 | ⚠️ 部分 | 截断+超长转工件已实现(runmgr.ExecuteTool / ctxasm 窗口);**裁剪记录的组装观测 UI 未做**(ctxasm Report 已产出数据位) | +| 模型路由与画像生效 | ✅ 实现+测试 | 解析器单测(设置层→画像层覆盖;轻量档模型/端点分别回落)+ **覆盖链集成测试**(user model-A → project model-B → 画像 model-C 经真实 run 取证);生效时机 schema 标注 | +| 上下文预算与裁剪可观测 | ✅ 实现+测试 | ctxasm Report → RunCompletedPayload.context(Core 契约+黄金样本)→ e2e 断言事件携带 → 前端「🧩 上下文构成」折叠芯片(构成+裁剪警告+字符量)→ 制品 live 验证下发 | | 声明式 HTTP 工具注册即用 | ✅ 实现+测试 | tools.TestHTTPExecutorTemplateAndPath + POST /api/tools | | 设置 schema 驱动零前端改动 | ✅ 实现 | SettingsModal 全 schema 渲染 + 插件设置项自动并入(plugin:example 分区实测出现) | | 示例插件装卸不破坏核心 | ✅ 实现+测试 | plugins 四用例(含卸载后内置工具存活、fail-closed、apiVersion 守卫) | @@ -96,7 +103,7 @@ | 全新 clone → 构建运行 | ✅ 实现 | Releases build-release.sh 从零 clone→make build→运行 smoke(#12) | | 版本发布 | ✅ 实现 | 0.1.0 manifest(10 组件 gitlink+sha256)+ verify 校验一致 | -**结论:15 项验收中 13 项达成、2 项部分达成(偏差与处置见 §6)。** +**结论:设计第 6 节验收表 15 项全部达成(本计划范围内)。** ## 5. 复现命令 @@ -123,12 +130,12 @@ cd Agent-System-Backend && go test ./internal/server/ -v | 5 | MinerU 深度解析/交叉验证 | 未接(解析器注册位与失败可见性已具备;扫描件 pdf 显式低置信度+提示) | 远期(D12) | | 6 | docx 在线预览 | 下载查看(md/txt 在线渲染编辑);docx OOXML 解析为上下文注入已实现 | 前端预览器增强(老系统有 docx-preview 经验可鉴) | | 7 | PostgreSQL 存储档 | 仅 SQLite 档(D16 默认档);存储层经独立 store 包隔离 | 需要时按接口补 PG 方言 | -| 8 | ctxasm 裁剪观测 UI | 数据位有(AssembleReport),界面未呈现 | 后续小项 | + | 9 | 前端 Playwright E2E | 未建立(组件逻辑经 store 纯函数 + 契约测试覆盖主干) | P4/P5 后补浏览器套件 | | 10 | 多用户/鉴权 | 无(单用户本地部署,owner 字段预留) | 远期整体设计 | ## 7. 质量注记 -- **提交与组合**:六仓全部推送 gitea;Dev gitlink 权威(`6a70d1a` 固定 10 组件);生态 pin 与 Agent-Intent 记忆的纪律一致(guidelines `26b562d2` / errcode `dbeed2f` / logsys `2c5716f` / intent `7d9d505`)。 +- **提交与组合**:六仓全部推送 gitea;Dev gitlink 权威(终态 `942abc9`,11 组件含 agent-squad);生态 pin 与 Agent-Intent 记忆的纪律一致(guidelines `26b562d2` / errcode `dbeed2f` / logsys `2c5716f` / intent `7d9d505` / native `292142a` / squad `5454f74`)。 - **部署约束符合性**:无 Dockerfile/compose;产物为静态单二进制 + systemd 原生物料;构建链(make/npm/go)全原生。 - **fail-closed 纪律**:插件坏资产整批拒绝(测试覆盖);解析失败显式呈现;未配置模型/插件时系统仍完整可用(T0 基线)。