Files
mulit-agent/mulit_agent/docs/STATUS.md
T
toot 9e01cbbec0 feat(agent): 预设本机工具、stdio MCP 传输与多轮上下文
- 预设 12 个本机工具并默认启用,装好即是可操作电脑的 Agent、无需总控配置或安装:
  文件与文件夹的查看/读取/写入/建目录/移动/删除(默认不覆盖、删目录需 recursive、
  拒绝删除系统目录与用户根目录)、用默认程序打开网址或文件、时间与时区换算
  (tzdata 已随包内置)、查看进程、屏幕截图、读写剪贴板。
- 工具下发改为通用:任意 HTTP MCP 服务与 stdio 本机命令(Agent 拉起子进程,
  容忍 stdout 噪声,命令缺失或进程崩溃会明确回报),支持多工具并存、
  定义未变更时复用连接、替换/删除/退出时回收子进程。
- 多轮上下文:task_dispatch.history 作为此前的 user/assistant 文本拼接到本次请求前,
  OpenAI 兼容、Anthropic、Gemini 分别适配;Agent 侧独立校验与限幅。
- 工具级实时进度以 progress 事件回传;使用预设工具的任务标记为 builtin 执行来源。
- Skill 与历史内容上限与总控对齐,多个已批准 Skill 不再被静默截断。
- 修复 build.ps1 缺 UTF-8 BOM 导致 build.bat 在 PowerShell 5.1 下语法报错。
2026-09-16 15:31:00 +08:00

45 lines
6.5 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.
# mulit_agent 当前开发进度
更新时间:2026-09-15
## 已完成并验证
- 已支持总控下发的多轮上下文:`task_dispatch.history` 会作为此前的问答消息(仅 user/assistant 文本,不含工具调用细节)拼接到本次请求之前,OpenAI 兼容、Anthropic、Gemini 三种载荷分别适配(Gemini 使用 user/model 角色)。Agent 侧对历史做独立校验与限幅(最多 100 条、单条 4000 字符、总量 6 万字符),超出时保留最近轮次,异常数据不会影响任务线程。
- 任务运行可观测:执行期间每次工具调用与返回都会作为 `progress` 事件实时回传给总控(含工具名、参数摘要与结果摘要,单条上限 500 字符,仍走脱敏与离线队列补发),长任务不再“黑盒执行”。任务结束或取消后的迟到进展不会写入;总控侧 `progress` 不改变任务状态,并会顺延“无进展超时”,避免正在跑工具的任务被误判超时。
- 已预设本机工具,Agent 装好即是“能操作电脑的人”,无需任何总控配置或安装:文件与文件夹的查看/读取/写入/建目录/移动/删除(写与移动默认不覆盖,删除文件夹需显式 recursive,拒绝删除系统目录与用户根目录)、用系统默认程序打开网址或文件、当前时间与时区换算(本机/UTC/UTC+9/IANA,tzdata 已随包内置)、查看进程、屏幕截图(保存 PNG 并返回路径)、读写剪贴板。这些工具由 Agent 本体提供并默认启用,与 `run_powershell` 完全访问能力并存,模型会优先使用这些结构化工具;使用预设工具的任务会回传 `builtin` 执行来源(总控审计为 `task.builtin_tool_execution`),与 完全访问 / MCP 工具 分开可查。
- 通用工具下发已打通:总控可下发任意 `http` MCP 服务(Agent 以 MCP 客户端连接受控地址,自动 `initialize`、`tools/list` 发现工具,支持 JSON 与 SSE 响应、`Mcp-Session-Id` 会话)、`stdio` 本机命令(Agent 直接拉起子进程,走换行分隔的 JSON-RPC,容忍子进程往 stdout 打印日志,注册表里找不到命令或进程崩溃会明确回报失败原因)以及 `builtin` 内置工具;不再只认 `desktop-filesystem` 一个固定标识。已部署工具会与 `run_powershell` 一起提供给模型调用,调用过 MCP 工具的任务会标记为 `mcp` 执行来源;连接失败的 MCP 服务只使该工具报 `failed`,不会影响任务线程。定义未变更时重连会复用已有连接(不重启子进程),替换或删除工具、退出程序时都会回收拉起的进程。
- Skill 内容上限与总控对齐(单个 5 万字符、装配前缀 20 万字符),多个已批准 Skill 不再被静默截断。
- 图片附件任务闭环:安全校验总控 `task_dispatch.attachments` 的 MIME、数量与解码大小;附件仅在执行内存传递,OpenAI 兼容、Anthropic、Gemini 分别生成正确图文载荷。无视觉能力的当前模型会安全失败,不会降级为纯文本或影响 WSS 线程。
- 默认完全访问执行器:已认证总控下发的任务可由 Agent 所在 Windows 电脑实际执行文件、程序、网络和桌面应用操作。OpenAI 兼容、Anthropic、Gemini 均支持模型工具调用循环;执行过本机命令的任务会标记为“完全访问”,取消任务会终止仍在跟踪的命令。命令输出、任务结果和审计摘要仍会脱敏,不能保存 API Key、密码、凭据、图片 Base64 或内部推理。
- 独立 Tkinter 子 Agent、系统托盘、独立数据目录、Windows 凭据管理器和 Windows 编译脚本;不依赖旧 MultiClaw、FastAPI、Node.js 或 PySide6。
- 首次 WSS 配对、TLS 证书指纹校验、认证、心跳、Agent 改名、断线状态和托盘驻留。
- 接收总控独立文本任务并持久化本地生命周期;可回传接收、运行、完成、失败、取消和超时状态。多个不同任务会分别进入后台执行,供总控同时向多台机器派发。
- 本地演示执行器用于当前任务闭环验证;任务取消/超时后的迟到结果不会覆盖终态。
- 本机可迁移配置与 Windows 用户持久配置双写方案已完成:同一 Windows 用户重新编译不会丢失 Agent 名称、总控地址和配对信息;复制到新电脑仍需重新配对。
- 本地 LLM 配置窗口、配置字段与本地启用逻辑已移除。LLM 仅保留待总控下发时复用的协议适配器,不可由子 Agent 用户填写。
- 已接入总控 LLM 配置快照:仅在已认证的 TLS/WSS 会话中接收 Provider、模型、地址和 Key;Key 写入 Windows 凭据管理器,非敏感元数据持久化到本机数据库。
- 已支持 OpenAI 兼容 API(含主流云端、中转站与 Ollama/LM Studio/vLLM 等本地模型),并原生适配 Anthropic 和 Gemini;任务会调用已下发的模型并回传结果或安全错误。
- 旧版受控桌面文件工具状态机保留为兼容路径;新版默认由完全访问执行器处理本机操作,不再将桌面直接子文件夹限制作为产品权限边界。
- 模型结果在回传前会去除 `<think>...</think>`(含未闭合标签),防止内部推理进入任务输出。
- 并发回归已验证:同一 Agent 的两条独立模型任务可以同时开始执行,任一任务完成不会阻塞另一条结果回传。
- 总控的单独指派与按行 `@` 批量指派均复用既有文本任务入口;子 Agent 不保存跨任务上下文,回传仍走原有状态、结果、取消、超时与重试闭环。
## 最近编译
- `dist/MultiClawAgent/MultiClawAgent.exe` 已于 2026-09-16 重新编译(含 12 个默认启用的本机预设工具、任务运行中的工具级实时进度回传,以及 HTTP/stdio 两种 MCP 传输,tzdata 已内置)。
## 已规划,尚未实现
- 可执行插件包(旧版 Python 插件、脚本型 Skill)的受控安装与隔离运行;当前可通过 `stdio` 工具直接拉起已存在于本机的 MCP 服务或插件宿主,但总控还不能下发插件文件与安装步骤。
- 持久化离线事件外盒、重连补传、任务重启恢复。
- 本机 Agent 守护服务与远程重启、升级。
## 进度判断
- **可测试基础闭环**(配对、在线、任务、取消、重试):约 **65%**。
- **最终集中管理目标**(统一 LLM/Skill/MCP/定时器/远程运维):约 **35%**。
当前策略:子 Agent 只接收和执行总控迁移后的能力;不会依赖或导入旧 FastAPI、Node.js、旧 Python Agent 运行环境。