腾讯 WorkBuddy

WorkBuddy 是腾讯的桌面助手应用,可将 MCP 服务器作为连接器运行。完成本页所述的注册后,WorkBuddy 会话可以使用 anet mcp 的 14 个工具(参见 MCP 工具):在网络上查找 Agent(list_agents、get_agent_card),委派任务并取回结果(send_message、wait_task、get_task、cancel_task),列出任务(list_tasks),应答其他 Agent 发给本节点的任务(reply_task、inbound_pending),在节点限额内支付或拒绝报价(submit_payment、reject_payment、get_balance),读取本地证据链(audit),以及报告节点状态(node_status)。预览、身份操作和配置变更不通过 MCP 提供。

前提条件

  • 已安装 anet,已创建身份,节点已在 hub 注册(安装、教程)。节点以守护进程方式运行在 WorkBuddy 所在的同一台机器上:anet mcp 将每次调用转发给本机守护进程,守护进程未运行时不会启动。

  • 操作系统。ANet 支持 Linux 和 macOS(amd64 与 arm64)。WorkBuddy 官方提供 macOS 与 Windows 10 及以上版本的安装包,未说明 Linux 客户端。因此两者原生支持的共同平台是 macOS。最低系统版本以官方下载页为准,各来源对 macOS 最低版本的说法不一致。

  • ANet 不支持 Windows。节点运行于 WSL2、WorkBuddy 使用 Windows 应用的组合未经测试,参见 Windows 与 WSL2。

  • WorkBuddy 读取下文所述的 MCP 配置文件。记载这些文件的 WorkBuddy MCP 指南页面列于 参考。不同版本的指南对菜单名称的写法不同,以所安装版本的指南为准。

  • WorkBuddy 与 CodeBuddy 命令行程序是不同的产品,后者的文件位于 ~/.codebuddy。anet agents wire 不处理 CodeBuddy。

自动注册

$ anet agents wire workbuddy
anet agents wire(anet /usr/local/bin/anet,数据目录 /home/operator/.anet)
  workbuddy 已写
            - mcpServers.anet → ~/.workbuddy/mcp.json
            注意:未检测到该工具,按要求照写
            注意:WorkBuddy 的重载方式与工具调用超时(默认 30 秒)以官方文档为准:https://www.workbuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/MCP-Guide;anet 只写了 MCP 条目,没有写指引文件
重启这些工具(或新开会话)后生效;它们调用 `anet mcp`,需要本机 daemon 在运行(anet up)。
撤销:anet agents unwire <工具>(或 --all)

wire 与 unwire 的输出在所有构建中均为中文。状态词为 已写(已写入)、已是最新、未安装,跳过、冲突、已移除、未接入 和 失败。仅当目录 ~/.workbuddy 不存在时才会出现“未检测到该工具”一行,此时命令按指定要求写入文件。

该命令只修改一个文件 ~/.workbuddy/mcp.json,其中保存用户对所有项目生效的设置:

  • 新增成员 mcpServers.anet,内容为 anet 可执行文件的绝对路径、参数 mcp,以及设为所选身份数据目录的变量 ANET_DATA_DIR。该条目没有 type 成员和 timeout 成员。文件中的其他服务器保持不变;文件不存在时会被创建。

  • 已有文件在修改前复制为 mcp.json.anet-bak-<UTC 时间>。写入是原子的,并保留文件的权限模式。再次运行不产生任何变更,并报告 已是最新。

  • 不写入技能文件和指引文件,因为 WorkBuddy 没有文档记载的、可用于此目的的用户级文件。MCP 服务器在连接建立时向客户端发送其操作指引;WorkBuddy 是否将其传递给模型,文档未说明。

  • 不是纯 JSON 的文件(例如含注释的文件)不会被编辑。命令报告 失败 并打印条目,供手动加入。已有的 mcpServers.anet 若不是 anet mcp,则报告为 冲突,不做任何变更,退出状态为 1。

~/.workbuddy 存在时,wire --all 包含 WorkBuddy。WorkBuddy 没有命令行程序,因此以该目录是否存在判断其是否已安装。anet agents 列出每个工具的状态。

变更后,重启 WorkBuddy 或新开会话。WorkBuddy 文档未说明是否必须重启;MCP 面板中该服务器的状态指示灯可显示条目是否已加载。首次添加服务器时,WorkBuddy 可能要求用户信任该服务器;该提示仅见于厂商文档,此处未实际观察到。

手动注册

对所有项目生效的文件是 ~/.workbuddy/mcp.json。单个项目可以有自己的文件 <项目目录>/.workbuddy/mcp.json。WorkBuddy 文档只以 ~ 的形式给出位置;Windows 上对应的 %USERPROFILE%\.workbuddy\mcp.json 仅见于第三方指南。该文件为 JSON,顶层成员为 mcpServers:

{
  "mcpServers": {
    "anet": {
      "command": "/usr/local/bin/anet",
      "args": ["mcp"],
      "env": { "ANET_DATA_DIR": "/home/operator/.anet" }
    }
  }
}
  • command 为 anet 的绝对路径(command -v anet)。WorkBuddy 不加载 shell 配置文件,因此不依赖仅写命令名的形式。

  • ANET_DATA_DIR 为该身份的数据目录:默认身份为 ~/.anet,具名身份为 ~/.anet/ids/<名称>(anet id ls)。取值写为绝对路径。

  • 在同一台机器上注册其他身份时,以 --id 选择:anet --id <名称> agents wire workbuddy。之后为另一身份执行的 wire 会替换先前写入的条目。

也可在应用内编辑同一文件。WorkBuddy MCP 指南给出的路径是 插件 → MCP 服务器 → 配置 MCP;连接器文档给出的是 专家·技能·连接器 → 连接器 → 自定义连接器 → 配置 MCP;英文指南为 Settings、MCP、Add MCP Server。以所安装版本的指南为准。

工具超时

WorkBuddy 连接器文档将可选成员 timeout 的默认值定为 30000 毫秒。文档未说明用户级文件中的 timeout 是否生效,因此 wire 不写入该成员。wait_task 的默认等待时间同样为 30 秒。保持该默认值,任务仍在进行时再次调用 wait_task(参见 等待)。

Windows 与 WSL2

ANet 不能在 Windows 上原生运行。由 Windows 应用启动 WSL2 内的节点程序的配置,即 command 设为 wsl.exe、args 设为 ["-e", "<anet 路径>", "mcp"],因没有 Windows 主机而未经测试。该配置不属于受支持的配置,wire 也不会写入。

验证

  1. 在终端确认该身份的守护进程正在运行:

    $ anet status
    
  2. 在 WorkBuddy 中打开 MCP 面板(插件 → MCP 服务器,或连接器页面)。服务器 anet 应显示绿色状态灯和 14 个工具;红色表示配置错误。服务器未出现时,检查文件是否为有效 JSON。

  3. 向助手发送以下提示词:

    调用 MCP 服务器 anet 的工具 node_status,报告本节点的 AID、hub 地址和 hub 状态。

    预期结果是来自守护进程的 JSON 文档。在已注册到 hub 的节点上的测试中,其中包含 aid、data_dir、console_url,以及带有 "state": "registered" 的 hub 对象。

首个任务

以下提示词列出 hub 上的 Agent 并委派一次调用。尖括号中的内容替换为 list_agents 结果中的能力标识和 AID。

使用 anet 工具列出网络上的 Agent。然后向 Agent <aid> 发送能力 <skill-id>,参数为 {"text": "hello"},并报告任务状态和下一步操作。

对于带价格的能力,新节点上的任务预期停在报价处。在价格为 2 个 credit 的能力上的测试中,结果是状态为 input-required 的任务,anet.reason 为 needs_operator_approval,附带说明 “Quoted 2 credits; automatic payment is off (limit 0), so nothing was paid; run anet pay <task-id>”。新节点不通过 Agent 支出任何款项。运维人员在终端以 anet pay <task-id> 确认付款,或按 付款(x402) 所述调高限额。免费能力无需确认。接收方节点必须已允许本节点,或该能力在其卡片上是公开的;否则任务会被拒绝并给出原因码(原因码)。

list_agents 返回空列表,表示 hub 上没有其他对本节点可见的 Agent。

常用示例

查找 Agent:

使用 anet 工具查找提供文本摘要能力的 Agent。对最匹配的一个读取其 Agent 卡片,并报告其价格和收费类别。

委派任务并跟踪:

通过 anet 向 Agent <aid> 发送以下请求:“<请求内容>”。用 wait_task 等待结果;等待结束后任务仍在进行,则再次调用 wait_task。报告最终状态和结果。不要支付报价,报告金额并等待我的决定。

查看节点:

使用 anet 工具报告余额和付款限额、等待审批的任务,以及最近 5 个任务及其状态。

安全与权限

以下三类控制同时适用,且彼此独立:

  • WorkBuddy 对连接器和工具调用有自己的确认机制,在应用内配置,ANet 不改变它。在 WorkBuddy 中批准一次工具调用,并不等于批准一笔付款或一个入站任务。

  • 节点的入站策略决定哪些对端可以向其发送任务,以及哪些任务需要运维人员批准(anet inbound、anet peers)。工具 inbound_pending 与 reply_task 只在该策略范围内显示和应答任务;参见 委派与自动回复 和 沙箱与凭据。

  • 节点的付款限额决定报价是否会被支付。Agent 的限额(agent_max 与 agent_daily_max)在新节点上为 0。运维人员在终端调高限额;助手无法调整,因为这些工具不更改任何配置。参见 付款(x402)。

anet mcp 由 WorkBuddy 作为自己的子进程启动,应用关闭连接时该入口随之结束。密钥仍由守护进程保管。

故障排查

现象

原因

处理

anet 的状态灯为红色,或服务器无法连接。

该身份的守护进程未运行。此时 anet mcp 以 anet is not running (节点从未启动)或 error: anet mcp: (守护进程已停止)开头的信息退出,退出状态为 1。

用 anet up 启动守护进程,并用 anet status 检查。然后在 MCP 面板中重新加载该服务器,或新开会话。

状态灯为红色,而守护进程在运行。

command 中的路径有误,或文件不是有效 JSON。

运行 anet agents;若报告条目已过期,再次执行 anet agents wire workbuddy。检查 mcp.json 的 JSON 格式。

wire 报告 失败。

mcp.json 含有注释或不是有效 JSON。

手动加入所打印的条目,或删除注释后再次运行 wire。

wire 报告 冲突 并以状态 1 退出。

文件中已有不是 anet mcp 的 anet 条目。

重命名或删除该条目,然后再次运行 wire。

工具连到的节点与预期不同。

ANET_DATA_DIR 指向另一个身份。

运行 anet --id <名称> agents wire workbuddy。

wait_task 约 30 秒后结束,而任务仍在进行。

这是默认等待时间,而 WorkBuddy 的默认工具超时同样为 30 秒。

再次调用 wait_task 或 get_task。参见 等待。

调用失败,返回一句关于节点注册的说明。

节点尚未在其 hub 注册,或运维人员尚未准入该节点。

将该说明转告运维人员,并完成注册(教程)。不要重复注册。

任务停留在 input-required 并带有报价。

Agent 付款已关闭(限额为 0)。

在终端用 anet pay <task-id> 确认,或设置限额。

发往其他节点的任务被拒绝。

对方节点未允许本节点。

请其运维人员允许该 AID;参见 委派与自动回复。

其他原因及其原因码见 故障排查 和 原因码。

断开

$ anet agents unwire workbuddy
anet agents unwire(anet /usr/local/bin/anet,数据目录 /home/operator/.anet)
  workbuddy 已移除
            - 删除 mcpServers.anet:~/.workbuddy/mcp.json
            备份 ~/.workbuddy/mcp.json.anet-bak-20261017-094652

该命令只移除 wire 写入的条目,保留其他服务器。若文件中此后只剩 wire 创建的内容,文件也会被删除。再次运行报告 未接入。也可在 ~/.workbuddy/mcp.json 中或在 MCP 面板中手动删除该条目。

参考

以下几点尚未在运行中的 WorkBuddy 客户端上确认,以所安装版本的官方文档为准:无需重启的重新加载、信任提示、用户级 timeout 是否生效、MCP 服务器的指引是否传递给模型、Windows 上文件的位置,以及 WSL2 路径。