ACP

适用范围

使用本页面当:

  • 设置基于 ACP 的 IDE 集成
  • 调试 ACP 会话到网关的路由

运行与 Moltbot 网关对话的 ACP(Agent Client Protocol)桥接器。

该命令通过 stdio 为 IDE 说 ACP,并将提示通过 WebSocket 转发到网关。 它将 ACP 会话映射到网关会话密钥。

用法

moltbot acp

# 远程网关
moltbot acp --url wss://gateway-host:18789 --token <token>

# 附加到现有会话密钥
moltbot acp --session agent:main:main

# 按标签附加(必须已存在)
moltbot acp --session-label "support inbox"

# 在第一个提示之前重置会话密钥
moltbot acp --session agent:main:main --reset-session

ACP 客户端(调试)

使用内置的 ACP 客户端在没有 IDE 的情况下对桥接器进行健全性检查。 它会生成 ACP 桥接器并让您交互式地输入提示。

moltbot acp client

# 将生成的桥接器指向远程网关
moltbot acp client --server-args --url wss://gateway-host:18789 --token <token>

# 覆盖服务器命令(默认:moltbot)
moltbot acp client --server "node" --server-args dist/entry.js acp --url ws://127.0.0.1:19001

如何使用这个

当 IDE(或其他客户端)说 Agent Client Protocol 并且您希望它驱动 Moltbot 网关会话时,使用 ACP。

  1. 确保网关正在运行(本地或远程)。
  2. 配置网关目标(配置或标志)。
  3. 将您的 IDE 指向通过 stdio 运行 moltbot acp

配置示例(持久化):

moltbot config set gateway.remote.url wss://gateway-host:18789
moltbot config set gateway.remote.token <token>

直接运行示例(无配置写入):

moltbot acp --url wss://gateway-host:18789 --token <token>

选择 agent

ACP 不直接选择 agent。它通过网关会话密钥路由。

使用 agent 范围的会话密钥来定位特定 agent:

moltbot acp --session agent:main:main
moltbot acp --session agent:design:main
moltbot acp --session agent:qa:bug-123

每个 ACP 会话映射到单个网关会话密钥。一个 agent 可以有许多会话;除非您覆盖密钥或标签,否则 ACP 默认为隔离的 acp:<uuid> 会话。

Zed 编辑器设置

~/.config/zed/settings.json 中添加自定义 ACP agent(或使用 Zed 的设置 UI):

{
  "agent_servers": {
    "Moltbot ACP": {
      "type": "custom",
      "command": "moltbot",
      "args": ["acp"],
      "env": {}
    }
  }
}

要定位特定的网关或 agent:

{
  "agent_servers": {
    "Moltbot ACP": {
      "type": "custom",
      "command": "moltbot",
      "args": [
        "acp",
        "--url", "wss://gateway-host:18789",
        "--token", "<token>",
        "--session", "agent:design:main"
      ],
      "env": {}
    }
  }
}

在 Zed 中,打开 Agent 面板并选择"Moltbot ACP"来启动线程。

会话映射

默认情况下,ACP 会话获得一个带有 acp: 前缀的隔离网关会话密钥。 要重用已知会话,请传递会话密钥或标签:

  • --session <key>: 使用特定的网关会话密钥。
  • --session-label <label>: 按标签解析现有会话。
  • --reset-session: 为该密钥创建新的会话 ID(相同的密钥,新的脚本)。

如果您的 ACP 客户端支持元数据,您可以按会话覆盖:

{
  "_meta": {
    "sessionKey": "agent:main:main",
    "sessionLabel": "support inbox",
    "resetSession": true
  }
}

详细了解会话密钥,请参阅 /concepts/session)。

选项

  • --url <url>: 网关 WebSocket URL(默认为配置的 gateway.remote.url)。
  • --token <token>: 网关鉴权 token。
  • --password <password>: 网关鉴权密码。
  • --session <key>: 默认会话密钥。
  • --session-label <label>: 要解析的默认会话标签。
  • --require-existing: 如果会话密钥/标签不存在则失败。
  • --reset-session: 首次使用前重置会话密钥。
  • --no-prefix-cwd: 不要用工作目录作为提示的前缀。
  • --verbose, -v: 将详细日志记录到 stderr。

acp client 选项

  • --cwd <dir>: ACP 会话的工作目录。
  • --server <command>: ACP 服务器命令(默认:moltbot)。
  • --server-args <args...>: 传递给 ACP 服务器的额外参数。
  • --server-verbose: 在 ACP 服务器上启用详细日志。
  • --verbose, -v: 详细的客户端日志。