Files
mulit-agent/controller/docs/STATUS.md
T
toot aa57ea69de feat(controller): 工具仓库、Skills 录入、多轮追问与终端运行日志
- 插件/MCP 改为通用工具仓库:内置、HTTP MCP、本机命令(stdio)三类工具,可增删改、
  按 Agent 分配;定义变更自动提升下发版本并重发,删除即回收分配并通知 Agent 清空。
- 旧 desktop-filesystem 降级为仓库中的一个内置条目;本机预设工具改为总控只展示、
  Agent 默认启用,任务执行来源新增 builtin(审计 task.builtin_tool_execution)。
- Skills 补齐录入闭环:新建或按名称覆盖更新,并可从旧版技能目录(SKILL.md + skill.json)
  批量导入;同名更新保持标识不变并自动重新应用,旧包入口脚本只提示不执行。
- 单独指派支持基于某条已完成任务的多轮追问:任务内容框仍下发无上下文的一次性任务,
  追问时由总控组装历史(仅成功轮次、默认最近 50 轮 / 约 6 万字符),会话按 Agent 隔离;
  执行动态把同一会话合并为一条记录,任务详情弹窗底部提供继续对话输入框。
- 任务详情支持运行中观测:打开期间每 2 秒刷新,终端风格输出全部事件并自动滚动;
  progress 事件不改变任务状态且顺延无进展超时,避免正在执行工具的任务被误判超时。
- 修复 build.ps1 缺 UTF-8 BOM 导致 build.bat 在 PowerShell 5.1 下语法报错。
2026-09-16 15:30:50 +08:00

63 lines
9.3 KiB
Markdown
Raw 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.
# Controller 当前开发进度
更新时间:2026-09-15
## 已完成并验证
- 插件与 MCP 已改为通用工具仓库:总控可新建/更新/删除工具,类型为 `builtin` 内置、`http` MCP 服务地址、或 `stdio` 本机命令(命令 + 参数,由 Agent 直接拉起子进程,不占端口);按 Agent 勾选下发、定义变更自动提升下发版本并重发、删除即回收分配并通知 Agent 清空。工具下发状态按 Agent×工具逐条显示,全部工具按最差状态汇总到 Agent 列表。旧 `desktop-filesystem` 已作为内置工具之一保留,不再是唯一入口。
- 本机预设工具已明确区分:子 Agent 自带文件、打开、时间、进程、截图、剪贴板等工具并默认启用,总控无需下发;智能体详情页显示“本机预设工具(默认启用,无需配置)”,任务执行来源新增 `builtin`(界面显示“本机预设工具”,审计为 `task.builtin_tool_execution`)。
- 单独指派支持“基于某条已完成任务继续对话”:任务内容框下发的始终是不带上下文的独立任务;任务完成后可在下方「执行动态」里就它继续追问,总控会把这条任务的内容与结果(以及此后的轮次)作为上下文一并下发(默认保留最近 50 轮、总字符预算约 6 万;只有成功的轮次进入上下文,失败/取消不入)。同一会话的多轮在「执行动态」里**合并为一条记录**(标注轮数、可展开逐轮查看提问与结果),对话输入框就在这条记录内部;会话按 Agent 隔离,重试沿用原会话;批量 `@` 指派不共享上下文。
- 任务详情已支持运行中实时观测:弹窗打开期间跟随总控 2 秒轮询刷新(关闭或切换任务时不会回填旧数据),并以终端风格输出全部事件(生命周期 + 工具调用与返回),自动滚动到底部;`progress` 不改变任务状态、不会让已结束的任务新增步骤,同时顺延“无进展超时”,避免正在执行工具的任务被误判超时。
- Skills 已补齐录入闭环:“技能”页可新建或按名称覆盖更新 Skill,并可从旧版技能目录(`SKILL.md` + `skill.json`)批量导入;同名更新保持 Skill 标识不变,已分配的 Agent 会自动重新应用。旧包中的可执行入口只记录提示,不会下发或执行。
- 图片附件任务闭环:批量 `@` 与单独指派均可粘贴/选择受限图片;多条有效批量任务必须以“图片 N”逐行路由,同一行多个目标只共享该编号图片。附件经认证 WSS 下发、本地持久化供重试复用,任务详情仅显示安全缩略图和数量;清除结束任务同时清除附件。未配置视觉能力的模型会安全拒绝,不会丢图或降级为文本。
- 新版 Agent 默认完全访问:总控仍只通过已认证 WSS 下发任务,但 Agent 可在其所在 Windows 电脑实际操作文件、程序、网络和桌面应用。任务详情会把实际调用过本机执行工具的结果标为“完全访问”;结果、日志与审计摘要持续脱敏,不保存 API Key、密码、凭据、图片 Base64 或内部推理。
- 独立 Wails2(Go + React/TypeScript)总控工程、独立数据目录、TLS/WSS 服务和 Windows 编译脚本。
- 一次性配对码、证书指纹校验、Agent 认证、心跳、离线判定、名称修改和撤销配对。
- 多 Agent 独立文本任务下发、状态回传、取消、超时和重试;任务记录持久化到总控本地数据库。一次最多可下发 20 条不同目标的任务;单条失败不会阻塞其它任务。
- 新任务默认使用 5 分钟无进展超时,而非绝对总时长;Agent 回传接收或执行进展会刷新下一次超时点。任务页可按需设为 15、30 分钟或 1 小时。
- 总控基础界面:主导航依次提供控制台、智能体、批量指派、单独指派及密钥与配对;控制台包含按机器汇总的实时任务状态和任务历史,两种批量下发方式集中在“批量指派”。
- 总控 LLM 配置页:内置 OpenAI、Anthropic、Gemini、DeepSeek、OpenRouter、Groq、Mistral、xAI、Together、硅基流动、Moonshot、MiniMax、Ollama、LM Studio、vLLM 预设,并支持任意 OpenAI 兼容的中转站或本地模型。
- LLM API Key 使用 Windows DPAPI 加密后保存于总控本机;列表只显示“已保护保存”,不会回显 Key。
- 总控可将指定 LLM 配置下发给指定 Agent;在线 Agent 立即接收,离线 Agent 会在下次认证连接时补齐。总控显示等待、已发送、已应用或失败的回执状态。
- Skills 已采用 Markdown 仓库、哈希校验和按 Agent 下发;子端只受控安装,不执行 Skill 中的脚本。
- 旧版桌面文件 MCP 状态机保留为兼容记录;它不再限制新版 Agent 的默认本机权限。插件与 MCP 页面会明确显示“本机完全访问:默认启用”。
- Agent 管理页会汇总显示 LLM、Skill 与 MCP 的部署/应用状态;本地审计日志已覆盖 MCP 下发、回执和工具结果,不保存 API Key、配对凭据或完整任务提示词。
- Agent 返回的任务输出会在接收端去除 `<think>...</think>`(含未闭合标签),避免内部推理显示到任务结果或审计中。
- 最近任务卡片和详情会保留并显示执行 Agent 名称;可一键清除已结束任务及其任务时间线,进行中的任务与审计日志会保留。
- Skills 页面提供可搜索的只读 Markdown 浏览器:按名称或版本即时过滤,逐行显示名称、版本和更新时间,按需加载正文;预览会脱敏 API Key、密码、令牌、账号等敏感字段,不执行任何 Markdown 内容。
- Agent 管理页已升级为服务端分页目录:支持名称搜索,以及在线/离线、MCP、LLM、Skill 状态组合筛选。Agent 详情提供最近任务、最近安全审计、部署历史、当前失败原因和既有 Skills/MCP 配置;列表与详情中的失败文本会脱敏敏感字段。
- 认证确认会在 LLM、Skill、MCP 配置快照之前发送,避免重连时部署快照抢先到达;认证后的持久化配置仍会异步补发。
- 审计日志已升级为统一、可筛选的本地基础设施:记录时间、操作者、目标 Agent、资源类型、动作、结果和安全摘要;支持按 Agent、资源类型、结果、时间范围服务端分页筛选。现有配对、Agent、LLM、Skill、MCP、任务链路均已覆盖;安全摘要不保存 API Key、配对凭据、完整任务提示词或内部推理,清除任务历史也不会删除审计。
- 子 Agent 的独立任务执行已通过并发回归:同一台机器收到多条任务时会分别进入后台执行;多台机器可同时处理各自任务。日常使用应按机器资源自行控制同机任务数量。
- “批量指派”和“单独指派”是彼此独立的任务入口:单独指派会明确选择一台在线 Agent;批量指派只提供公共 `@` 输入,不保留重复的多条任务草稿。`@` 支持点选或键盘选择 Agent,并按换行拆成不同任务;同一行的多个 Agent 会各自收到完全相同的任务。未知、重名、离线和未指定的目标均不会误发。
- 任务内容会拒绝 API Key、配对凭据、账号密码及 `<think>` 内部推理,避免进入界面、任务记录、日志、结果或审计摘要。
- 旧 FastAPI Dashboard 的导航信息架构已迁入:模板、技能、插件、工作流、定时任务、密钥、委派、审计日志、设置等页面均已有入口;尚未迁移的页面显示“正在开发”。
- 用户、记忆、帮助及旧登录/角色模型已按当前产品决策移除。
## 最近编译
- `build/bin/MultiClawController.exe` 已于 2026-09-16 重新编译(含通用工具仓库、Skills 录入与导入、本机预设工具展示、任务详情实时运行日志与 `builtin` 执行来源)。
## 接下来按旧版能力迁移的顺序
1. 优先补齐离线任务队列、重连补传和子 Agent 重启恢复,增强多机任务闭环的可靠性。
2. 需要复用任务时再实现模板、定时任务、工作流和委派,均由总控持久化和触发。
3. 将工具仓库扩展为带签名、权限清单与哈希的受控包仓库,并恢复可执行插件包(旧版 Python 插件经 host 适配器转成 stdio MCP)的独立入口;当前 `http`/`stdio` 工具只承载地址或命令行与版本。
4. 最后实现 Agent 守护服务,提供远程启动、停止、重启和升级。
## 已规划,尚未实现
- 总控定时任务、委派规则与工作流执行器。
- 工具与插件包的签名、哈希校验、权限清单和完整包生命周期(版本回滚已具备:定义变更提升下发版本,删除即撤下)。
- 定时任务、模板、工作流、委派和远程运维的审计扩展。
- Agent 守护服务及其远程启动、停止、重启、升级能力。
## 进度判断
- **可测试基础闭环**(配对、在线、任务、取消、重试):约 **70%**。
- **最终集中管理目标**(统一 LLM/Skill/MCP/定时器/远程运维):约 **35%**。
当前策略:优先迁移旧版有价值的总控功能和页面,再把每项能力通过 WSS 下发给独立子 Agent;不迁移旧 FastAPI、Node.js、旧 Python Agent 运行环境,也不恢复用户、登录、记忆、帮助或 Tailscale 发现。