From 3079464925f571e0630734315c4d07d7ccf1bc75 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 29 Sep 2026 22:41:47 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20AGUI-3=20=E8=90=BD=E5=9C=B0?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E3=80=81=E5=81=8F=E7=A6=BB=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E4=B9=8B=E5=A4=84=E4=B8=8E=E6=9C=AF=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/design/agent-ui-reference.md | 2 +- docs/design/glossary.md | 2 +- docs/plan/00-first-version-plan.md | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/design/agent-ui-reference.md b/docs/design/agent-ui-reference.md index eefbf469..275fdbf0 100644 --- a/docs/design/agent-ui-reference.md +++ b/docs/design/agent-ui-reference.md @@ -105,7 +105,7 @@ | `Approval`(`agent.ts` ~222,`status: pending\|approved\|rejected\|revoked\|expired\|consumed`) | `ApprovalCard`/`ToolApproval` | 状态集不对齐:我们多出 `revoked/expired/consumed`,库多出 `submitting/changes-requested/answered`,需要做一层状态映射并砍掉/新增对应视觉 | | `AgentGoalReport`(`modelText` vs `buildGoalReport()` 系统汇总)、UI `FinalReport()`(`agent-conversation.tsx`,"模型说的"/"系统核实的结果"双栏) | 无对应组件 | **该库完全没有"声明 vs 核实"双轨展示**,`StreamingResponse` 只有单一正文 + `Citations`;需要新写一张"系统核实结果"卡片,可能借 `ToolResult` 或 `Citations` 的折叠壳改造 | | `AgentBudget`/`AgentUsage`、`BudgetBar()`+`Meter()`(`agent-conversation.tsx`,四项:工具调用/token/时长/费用) | `UsageDashboard` | 该组件是历史用量仪表盘(按天图表 + 汇总表),**没有"当前额度 vs 已用"的进度条**,量级和展示逻辑都不同,预算条要另写 | -| ~~`AgentRunMode`(`execute`/`plan_only`)~~ | — | AG-2 已取消运行模式;"先看方案再执行"是输入区的开关(`scope.proposeFirst`) | +| ~~`AgentRunMode`(`execute`/`plan_only`)~~ | — | AG-2 已取消运行模式;"先看方案再执行"是输入框的单次指令 `/先给方案`(AGUI-3,`scope.proposeFirst`) | ## 4. 设计纪律冲突 diff --git a/docs/design/glossary.md b/docs/design/glossary.md index feed20a6..76dab02d 100644 --- a/docs/design/glossary.md +++ b/docs/design/glossary.md @@ -47,7 +47,7 @@ | agent.plan 的步骤清单 | 步骤;进度写"步骤 2/5" | 计划(计划只指下载计划 / 整理计划 / 计划页)、TODO、任务列表 | | web.search / web.fetch | 网页搜索 / 读取网页;设置卡叫"网页搜索",提供方叫"搜索服务" | 联网、上网、爬取、网络代理 | | agent.propose_options | 方案;动作叫"选定",都不要叫"退回" | 选项、提案 | -| scope.proposeFirst | 先看方案再执行 | 只要方案、只给方案、plan_only 模式 | +| scope.proposeFirst | 输入框指令 `/先给方案`(只作用于这一次,AGUI-3 起不再是开关);会话列表标签"先给方案" | 只要方案、只给方案、plan_only 模式、先看方案再执行(开关) | | 工作流引擎的一次执行 | 运行 | run | | 正在写心跳的进程(process_heartbeat 当前行) | 当前实例;横幅按角色称呼:API / io worker / 智能体 worker / 单进程 | 活进程、在线实例 | | 已退出、容器已重建或被同容器新进程替换的心跳行 | 已下线实例;正常退出的标"已退出" | 历史实例、僵尸进程、死进程 | diff --git a/docs/plan/00-first-version-plan.md b/docs/plan/00-first-version-plan.md index 5fec931e..72a7eac2 100644 --- a/docs/plan/00-first-version-plan.md +++ b/docs/plan/00-first-version-plan.md @@ -180,6 +180,12 @@ NFO / 图片投影、身份巡检与挂载根因聚合、HTTP 失败自动切浏 - **入库版本可见(LIBV-1,用户 2026-09-29)**:以《人生切割术》为例,作品/季/集只显示"已入库"不够,要显示入库的是哪个版本(分辨率、来源、编码、HDR、制作组、大小、文件位置),同一集多个文件并列;为之后的"多版本收录目标"打地基(数据模型一集可挂多个版本,与「收录版本」目标可比对:已满足/缺哪个版本)。 - 状态(libv1 分支):已实现。模型沿用 media_asset + asset_unit_coverage(一集多资产),规格规范化写 `media_asset.delivery`(`specVersion` 口径,domain `versionSpecOf` = 文件名 + ffprobe + 入库时的资源解析);`GET /library/{id}/versions` 返回每季每集版本、季 / 作品汇总、单目标比对 `matches[]`(satisfied / missing / upgradeable,多目标按数组追加);整理入库时写全规格;旧数据用 `scripts/asset-spec-backfill.ts` 回填(默认 dry-run,`--probe` 只对本地文件跑 ffprobe,`--apply` 写库)。前端:季头汇总行、每集一行规格、「N 个版本」展开、技术信息折叠(待 DEAI-2 TechInfo 合入后统一)、电影「入库版本」面板。 - **智能体对话重做(AGUI-3,审查见 `docs/design/agent-chat-review.md`)**:按报告 P0/P1 落地,DEAI-2 合并后从新 main 开。协调者裁定:"选定方案即批准"只在方案绑定同一 planId+payloadHash 且卡片写明动作要点(对象、大小/数量)时成立;删除、覆盖类动作仍需单独确认;"先看方案再执行"改为单次指令 `/先给方案`。 + - 状态(agui3 分支):已实现 P0 + P1。会话流改成「用户消息 → 一行进度(`CAPABILITY_ACTIVITY` 的 verb/noun 人话计数,1 次调用也折叠,展开每步一行,工具名 / ID / 思考进技术信息)→ 结论正文 → 没做:… [批准并重试] → 一行实际结果」;`agent.plan` / `agent.propose_options` 不再作为工具调用出现(旧事件回放时一并跳过);去掉右侧栏与页头目标,步骤 / 子会话 / 模型 / 预算进顶部概况条;方案卡一键选定(推荐项第一位、风险折叠、「都不要…」),审批卡只留摘要 + 批准 / 拒绝;抽屉去 Tab,头部「历史」弹层(最近 20 条,等你处理置顶,子会话收在父会话下)+「新对话」;列表筛选只剩搜索 + 全部 / 等你处理 / 失败;输入区只有输入框 + 发送 / 停止,空态 3 个快捷目标,`/先给方案`、`/重跑`,上下文显示名称标签。 + - 选定即批准:`agent.propose_options` 的方案可带 `action`(capabilityId + planId);服务端提出方案时按计划当前 payload hash + revision 绑定并生成动作要点(对象、大小 / 文件数),管理员会话选定时建一份 `scope.via = option` 的已批准审批,执行时 `optionApproval` 核对能力、计划类型 + ID、hash、revision、有效期后放行;API Key 作答只选方案;移动 / 替换文件的整理、发布策略(覆盖)不算批准,执行前照常出审批卡。「批准并重试」:非计划类能力建一条只覆盖该能力、当天只能成功一次、1 小时过期的持续授权再追加消息重试;计划类能力只追加消息,重试时照常出审批卡。 + - 旧设置:「先看方案再执行」开关原本只是每次新建时的本地状态,没有存进设置,无需迁移;API 的 `proposeFirst` 与旧会话 `scope.proposeFirst` 照常生效。 + - prompt:新增「汇报格式」一节(第一句结论、用名字不写函数名 / 字段名 / UUID、≤10 行、多个资源才用表格),证据规则改成"写名称和关键数值";子会话与视觉子流程(`audience: "agent"`)不加。回归测试 `packages/agent/test/system-prompt.test.ts`。 + - 偏离报告:verb/noun 放在 contracts `CAPABILITY_ACTIVITY`(报告写的 `capabilities-metadata.ts` 实际是 metadata.enrich 的处理器);「模型说的(未经核查)」卡删除,"未经核查"只留在实际结果行的技术信息里一处。截图 `apps/web/test/screenshots/agui3/`(before / after,mock 数据,不进 git)。 + - 顺手修(协调者追加):e15「超预算」偶发失败是产品竞态——`finalize` 先把会话写成 budget_exceeded、再 upsert 超预算待处理事项,负载下观察者看到终态时事项还指向上一次运行。改为先写事项与任务行、最后写会话终态。 - **SEARCH-3 后续(协调者截图复核)**:新筛选条下方仍保留旧的一行(大小/免费/H&R/排序/清除筛选),"免费"与「促销」维度重复、"清除全部"与"清除筛选"并存 → 并为一行:H&R 进分面,大小与排序放右侧,只留一个"清除";元信息行的耗时进「技术信息」。DEAI-2 合并后处理。 - **LIBV-1 后续(协调者截图复核)**:每集都挂一个"技术信息"开关太碎 → 点整行展开;"2 个版本"展开后第二个版本出现在第一个版本的技术信息里,应并列成同级行;"可升级:分辨率 1080p 不在允许列表 [2160p]"改人话("可换成 2160p");统一改用 DEAI-2 的 TechInfo 组件。 - **下载面板(DL-2,用户 2026-09-29)**:每个种子显示下载/上传速度(及总速度);默认只显示未完成的;已完成的单独一个视图(Tab 或分段)。