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 下语法报错。
This commit is contained in:
toot
2026-09-16 15:31:00 +08:00
parent aa57ea69de
commit 9e01cbbec0
21 changed files with 2110 additions and 144 deletions
+7 -2
View File
@@ -4,6 +4,11 @@
## 已完成并验证
- 已支持总控下发的多轮上下文:`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 或内部推理。
@@ -23,11 +28,11 @@
## 最近编译
- `dist/MultiClawAgent/MultiClawAgent.exe` 已于 2026-09-15 重新编译(含单独/批量指派与 5 分钟无进展续期)。
- `dist/MultiClawAgent/MultiClawAgent.exe` 已于 2026-09-16 重新编译(含 12 个默认启用的本机预设工具、任务运行中的工具级实时进度回传,以及 HTTP/stdio 两种 MCP 传输,tzdata 已内置)。
## 已规划,尚未实现
- 总控下发的 Skills、插件和 MCP 工具的版本、权限校验与回滚。
- 可执行插件包(旧版 Python 插件、脚本型 Skill)的受控安装与隔离运行;当前可通过 `stdio` 工具直接拉起已存在于本机的 MCP 服务或插件宿主,但总控还不能下发插件文件与安装步骤。
- 持久化离线事件外盒、重连补传、任务重启恢复。
- 本机 Agent 守护服务与远程重启、升级。