Trae

Trae 是字节跳动的 AI 集成开发环境,Trae CN 是其面向中国大陆的版本。Trae 没有可由代码仓库提供的插件包格式。因此,ANet 通过 Trae 的三种扩展点接入 Trae:一个 MCP 服务器、两个技能和两条命令。这些内容由一个安装包承载,并由安装包的安装程序安装:Linux 和 macOS 上为 install.sh,Windows 上为 install.cmd。安装完成后,Trae 会话即可使用 anet mcp 的工具(参见 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)。

除本安装包外,也可以用 anet agents wire trae 把 anet mcp 登记到 Trae 与 Trae CN 的用户级 MCP 文件中,并以用户规则的形式写入简短的操作指南(参见 接入编码 Agent)。两种方式只能选用其一,不要同时使用。

前提条件

  • 支持 MCP 服务器、技能和命令的 Trae 或 Trae CN。Trae 文档未给出最低版本,且本页所述步骤尚未在该应用中运行(参见 未经测试)。

  • 操作系统。ANet 和该安装包可在 Linux、macOS 和 Windows(amd64 与 arm64)上运行。在 Linux 和 macOS 上,安装包运行 POSIX shell 脚本;在 Windows 上,安装包运行 .cmd 脚本和 Windows 自带的 Windows PowerShell 5.1。

  • 安装包,来源有以下两种:

    • ANet 代码仓库中的目录 deploy/plugins/dist/trae,或

    • 位于 https://agentnetwork.org.cn/plugins/trae/ 的压缩包 anet-trae-<version>.zip,其 SHA-256 记录于 https://agentnetwork.org.cn/plugins/trae/trae.json。解压前,请将所下载压缩包的摘要与 trae.json 中的值进行比对。

  • 无需预先安装 anet:安装包中的 anet-setup 技能会在用户同意后安装它。已安装并已在 hub 注册的节点(安装、教程)将直接沿用。

插件

组件

名称

用途

MCP 服务器

anet

为所选身份运行已安装 anet 的 anet mcp。在 Linux 和 macOS 上,Trae 以 /bin/sh <script> 启动 anet/bin/anet-mcp.sh;在 Windows 上,Trae 启动 anet/bin/anet-mcp.cmd。其工具 guide 返回 ANet 的最新指南。

技能

anet

在会话中首次执行 ANet 操作之前以及每次收到 @anet 请求时,引导 agent 阅读已安装 anet 的指南,并包含始终适用的规则。

技能

anet-setup

查找 anet 可执行文件,在其缺失且用户同意时安装 ANet,并按已安装 anet 的设置指南执行。

命令

/anet

入口:按指南所述执行 @anet 请求。未给出请求时,显示其他 agent 发给本节点的任务以及节点状态。

命令

/anet-status

按指南所述报告节点状态。

该安装包的版本为 0.2.0。安装包不携带工具列表、ANet 版本或设置步骤,这些内容由已安装的 anet 通过 MCP 工具 guide 和命令 anet guide [<topic>] 提供。因此,ANet 的新版本仅凭可执行文件即可作用于 Trae,安装包无需更新。

安装包不含 Hook,也不建立任何网络连接。节点连接其加入的 hub。安装包的安装辅助脚本(Linux 和 macOS 上为 anet/bin/anet-install.sh,Windows 上为 anet/bin/anet-install.cmd)在用户同意后运行 agentnetwork.org.cn 的官方安装程序。

安装包的每条 anet 命令都经由安装包的运行脚本执行(Linux 和 macOS 上为 anet/bin/anet-run.sh,Windows 上为 anet/bin/anet-run.cmd),运行脚本应用 设置项 中所述的两项设置:MCP 服务器、各命令与各技能使用同一可执行文件和同一身份。未设置 anetPath 时,运行脚本先在 PATH 的绝对路径目录中查找 anet,然后在 Linux 和 macOS 上依次查找 ~/.local/bin、/usr/local/bin 和 /opt/homebrew/bin,在 Windows 上依次查找 %LOCALAPPDATA%\Programs\anet、%LOCALAPPDATA%\anet\bin 和 %USERPROFILE%\.anet-bin,因为桌面应用不一定继承登录 shell 的 PATH。若所配置的路径不是可执行文件,则视为错误,不会改用其他副本。找不到 anet,或所选身份没有运行中的守护进程时,服务器退出并给出一行原因,会话中不会出现 anet 工具。agent 在 Windows 上使用的 shell 是 PowerShell,因此各技能和命令把 Windows 运行脚本写成由 PowerShell 以 & 启动的路径。

安装插件

在 Linux 和 macOS 上,运行安装包中的脚本 install.sh:

$ sh install.sh                  # user level, ~/.trae
$ sh install.sh --cn             # user level of Trae CN, ~/.trae-cn
$ sh install.sh --project DIR    # one project, DIR/.trae

在 Windows 上,在 cmd 或 PowerShell 中运行安装包中的 install.cmd。它以 %SystemRoot%\System32 中 Windows 自带的 Windows PowerShell 5.1 启动 install.ps1:

install.cmd                      & rem user level, %USERPROFILE%\.trae
install.cmd -Cn                  & rem user level of Trae CN, %USERPROFILE%\.trae-cn
install.cmd -Project DIR         & rem one project, DIR\.trae

install.cmd 的选项为 -Project DIR、-Cn、-Identity NAME、-ClearIdentity、-Anet PATH、-ClearAnet 和 -Remove;install.cmd -Help 给出其说明。

安装程序把技能、命令、运行脚本和 MCP 服务器的启动脚本复制到配置目录,写入文件 anet/settings,输出 MCP 配置,并且不启动任何进程。它不读取也不修改 Trae 的任何配置文件。它只创建 Trae 的一个文件:项目尚无 .trae/mcp.json 时,创建该项目的此文件;已有的文件保持不变。对于同名但并非由它安装的技能或命令,它拒绝替换。Trae 的文档规定 MCP 服务器的命令不得包含空格。因此,在 Linux 和 macOS 上,主目录路径含空格时 install.sh 拒绝安装;在 Windows 上,install.cmd 以短路径(8.3 格式)替换含空格的路径,所在卷不提供短路径时则拒绝安装。

安装的文件

位置

用途

skills/anet/SKILL.md、skills/anet-setup/SKILL.md

<trae-dir>/skills/

节点操作指南与配置流程

commands/anet.md、commands/anet-status.md

<trae-dir>/commands/

命令 /anet 和 /anet-status

anet/bin/

<trae-dir>/anet/bin/

运行脚本与 MCP 服务器的启动脚本:Linux 和 macOS 上为 anet-run.sh 和 anet-mcp.sh,Windows 上为 anet-run.cmd、anet-run.ps1 和 anet-mcp.cmd

anet/settings

<trae-dir>/anet/

两项设置(给出任一项时才写入)

<trae-dir> 为 ~/.trae、~/.trae-cn 或 <project>/.trae(Windows 上为 %USERPROFILE%\.trae、%USERPROFILE%\.trae-cn 或 <project>\.trae)。如需手动安装,请把安装包中的各目录复制到相同位置。

注册 MCP 服务器

在 Linux 和 macOS 上,MCP 条目以 /bin/sh 启动启动脚本,使命令为不含空格的名称,启动脚本作为参数传入。在 Windows 上,条目的命令为 anet-mcp.cmd 的完整路径,路径含空格时采用其短路径(8.3 格式),条目不带参数。

项目级。项目尚无 .trae/mcp.json 时,安装程序会写入该文件。在 Linux 和 macOS 上,其参数以 ${workspaceFolder} 开头;在 Windows 上,命令为启动脚本的完整路径:

{
  "mcpServers": {
    "anet": {
      "command": "/bin/sh",
      "args": ["${workspaceFolder}/.trae/anet/bin/anet-mcp.sh"],
      "env": { "RUN_MCP_TIMEOUT_MS": "900000" }
    }
  }
}

若项目已有 .trae/mcp.json,脚本保持其不变,并输出需要添加的成员 anet。

用户级。脚本输出用户级的条目,不写入 Trae 的文件,因为全局 MCP 文件的位置在文档中的说法并不一致:

{
  "mcpServers": {
    "anet": {
      "command": "/bin/sh",
      "args": ["<absolute path of the trae directory>/anet/bin/anet-mcp.sh"],
      "env": { "RUN_MCP_TIMEOUT_MS": "900000" }
    }
  }
}

对于 Trae,安装程序还会输出形如 trae://trae.ai-ide/mcp-import?type=stdio&name=anet&config=<Base64> 的安装链接;其中的 Base64 文本可解码为所输出的条目。使用 --cn 或 -Cn 时不输出链接。Trae 如何登记该条目,参见 未经测试。

不要在同一项目中保留两个名为 anet 的服务器,例如一个来自 anet agents wire,另一个来自本安装包。请先移除较早的条目。

在 Trae 中配置节点

若 anet 尚未安装或未运行,请在会话中提出:

Set up anet. I agree to installing it with the official installer. Join the
hub https://hub.example.org under the name my-trae-node.

Agent 按照 anet-setup 技能执行:

  • 它以 --resolve 运行运行脚本,报告可执行文件、版本和身份,或报告 not found。anet 缺失时,它先说明安装程序的作用,并仅在用户同意后运行:Linux 和 macOS 上经由 anet/bin/anet-install.sh,Windows 上经由 anet/bin/anet-install.cmd。官方安装程序校验已签名的发布清单,安装到用户自己的目录,并按安全默认值创建身份:入站任务关闭、不发布任何内容、支出限额为 0。

  • 它用 <runner> guide setup 输出已安装 anet 的设置指南,并经由运行脚本按其执行。hub 按 AID 准入,或当日注册名额已用完时,注册保持待处理;agent 把需交给 hub 运营方的那一行提供给用户,并且不据此采取行动。

更改谁可以访问本机或本机可支出多少的命令(anet peers、anet inbound、anet autoreply set、支出限额以及 anet pay)需在终端确认。技能要求 agent 仅指明这些命令,并交由用户执行。技能还要求 agent 不读取 ~/.anet,也不读取或修改 Trae 的配置。

配置完成后请开启新会话,使 MCP 服务器启动。

验证

  1. 在新会话中运行 /anet-status。agent 阅读指南的主题 status,并按该主题所述报告节点状态。

  2. 使用 /anet 或以 @anet 开头的请求提出任务,例如:

    @anet find an agent that offers a text digest capability, send it
    the text "hello", wait for the result, and report the task state, the
    effect status and the result.
    

    agent 阅读指南,并调用指南所指明的工具,例如 list_agents、get_agent_card 和 send_message,任务仍在进行时再调用 wait_task。报告按工具返回的内容给出任务状态(TASK_STATE_COMPLETED)和 anet.effect_status。

在 shell 中,运行脚本可显示安装包所选定的内容:

$ sh ~/.trae/anet/bin/anet-run.sh --resolve
executable: <home>/.local/bin/anet
version: anet 0.3.3 (commit ..., built ...)
identity: default
runner: sh <home>/.trae/anet/bin/anet-run.sh

在 Windows 上,相同的检查是在 PowerShell 中运行 & "$env:USERPROFILE\.trae\anet\bin\anet-run.cmd" --resolve。

上述列表中的步骤是用安装包的较早版本和 Trae 的替代程序运行的,并非在 Trae 中运行。其遗留的未决事项见 未经测试。

设置项

安装包有两个可选设置项,通过安装程序给出(括号中为 install.cmd 的选项):

选项

含义

--identity NAME(-Identity NAME)

具名身份(anet id ls)。--identity ''(-ClearIdentity)将重新选用默认身份。服务器随后运行 anet --id <name> mcp。

--anet PATH(-Anet PATH)

anet 可执行文件的绝对路径(Windows 上为 anet.exe)。--anet ''(-ClearAnet)将重新在上述位置中查找。若路径不是可执行文件,则视为错误,不会改用其他副本。

未给出的选项沿用先前安装的值。安装程序把这些值保存在两处:文件 anet/settings 由运行脚本读取,用于 agent 的 shell 命令;MCP 条目的 env(ANET_PLUGIN_IDENTITY 和 ANET_PLUGIN_BIN)由启动脚本读取。安装程序不会改写已有的 .trae/mcp.json,用户级则只输出条目。更改后,请让已登记条目的 env 与之保持一致,并开启新会话;否则 shell 命令与 MCP 服务器可能使用不同的身份。

更新与移除

0.2.0 是该安装包的最终版本;ANet 发布新版本时无需新的安装包。如需替换较早的版本,请以相同范围再次运行 0.2.0 版本的安装程序。安装程序是幂等的。anet update 更新 ANet 本身,与安装包相互独立。

$ sh install.sh --remove                  # add --cn or --project DIR as installed

在 Windows 上,install.cmd -Remove 移除安装包,并按安装时的情况附加 -Cn 或 -Project DIR。该命令仅删除安装程序写入的文件,不删除其他内容,也不会留下由它创建的空目录。请从 Trae 中删除 MCP 服务器 anet,或删除 .trae/mcp.json 中的成员 anet,并开启新会话。移除不会改变节点:~/.anet 中的身份和运行中的守护进程均保持不变。停止节点和移除 ANet 的方法见 安装。

未经测试

Trae 是没有命令行和无头模式的图形应用,本页并未在其中运行。本页步骤是在 Linux 上借助一个替代程序运行的:该程序从 .trae/skills 加载技能,展开命令文件,按 Trae 文档所述的参数和精简的 PATH 从 .trae/mcp.json 启动 MCP 服务器,并为语言模型提供 shell 工具。该替代程序并非 Trae。因此以下事项尚未验证:

  • Trae 或 Trae CN 是否从 ~/.trae/skills、~/.trae-cn/skills 和 .trae/skills 加载技能,并从相应的 commands 目录加载命令。

  • Trae 是否接受命令文件中的 description 前置元数据,以及它以何种名称列出 /anet 和 /anet-status。

  • Trae 是否展开 args 中的 ${workspaceFolder} 并启动 /bin/sh <script>;项目条目是否需要在设置中开启 Project MCP;以及全局 MCP 文件的位置。

  • 通过 Settings、MCP、Add、Create Manually 以及通过安装链接登记所输出条目的过程,以及 Trae CN 的安装链接方案。

  • 图形应用的运行环境,尤其是其 PATH。

  • 严格解析工具模式的客户端的行为。工具 submit_payment 的属性 accept 没有 type。开源的字节跳动程序 trae-agent(与 Trae 是不同的程序)会拒绝该属性。Trae 是否接受尚不明确。

  • macOS。install.sh 仅在 Linux 上以 dash、bash 和 sh 运行过。

  • Windows。install.cmd 和 Windows 运行脚本已用 PowerShell 测试。Trae 是否会把 .cmd 文件作为 MCP 服务器的命令启动,Trae 的文档未作说明,也未经观察。

故障排查

现象

原因

处理

会话中没有 anet 工具。

anet 缺失,或其守护进程未运行。

运行 sh ~/.trae/anet/bin/anet-run.sh status。[daemon_not_running]:运行 sh ~/.trae/anet/bin/anet-run.sh up,它会应用设置中的身份和可执行文件。找不到 anet:请 agent 运行技能 anet-setup。然后启动新会话。

executable: invalid setting anetPath=...

该设置指向的文件不是可执行文件。

运行 install.sh --anet ''(install.cmd -ClearAnet)或给出正确的路径。

安装程序拒绝安装。

主目录含有空格(Linux 和 macOS),或没有不含空格的短路径(Windows),或存在并非由安装程序安装的同名技能或命令。

使用 --project(-Project)并指定不含空格的路径,或移走另一个文件。

Agent 报告的身份与预期不同。

anet/settings 与 MCP 条目的 env 不一致。

使条目中的 ANET_PLUGIN_IDENTITY 与 anet/settings 中的身份相同。

hub 提示当日注册名额已用完,注册保持待处理。

hub 对同一网络的注册数量设有限制。

把 agent 输出的那一行交给 hub 运营方。

任务仍在进行时 wait_task 已结束。

这在长时间任务中属于正常现象。

再次调用 wait_task,不要重新发送任务。

拒绝信息末尾带有方括号中的代码。

参见 原因码。

其他故障参见 故障排查。

参考

  • Trae 文档:MCP 服务器(https://docs.trae.ai/ide/add-mcp-servers)、MCP 安装链接(https://docs.trae.ai/ide/mcp-server-install-links)、技能(https://docs.trae.ai/ide/skills)和命令(https://docs.trae.ai/ide/slash-commands)。

  • 接入编码 Agent

  • MCP

  • MCP 工具

  • 本安装包的源代码:ANet 代码仓库中的 deploy/plugins(插件生成器的目标 trae;生成的安装包位于 deploy/plugins/dist/trae)。