Skip to content

Buildify OpenCode Agent

Buildify 对 OpenCode 的封装。buildify-opencode-agent 连接 Buildify Agent Broker,拉取 opencode.task 任务,通过 opencode acp 在本地执行,并将结果、Token 用量、费用与错误回传 Broker。

npm 包: @buildify-cli/opencode-agent
官网下载: buildify.cn/download

环境要求

  • Node.js 18 或更高版本
  • 本地已安装 OpenCode CLIopencode 命令可用)
  • Agent 机器能访问 Buildify Agent Broker
  • 所用模型对应的 Provider API 凭证

检查 OpenCode:

bash
opencode --version
opencode models

安装

bash
npm install -g @buildify-cli/opencode-agent

验证安装:

bash
buildify-opencode-agent --version
buildify-opencode-agent --help

快速开始

1. 初始化配置文件

bash
buildify-opencode-agent config init

2. 设置 Broker 连接

bash
buildify-opencode-agent config set \
  server=http://localhost:8080 \
  token=<broker-token> \
  clientId=<agent-client-id>

3. 启动 Agent

前台运行:

bash
buildify-opencode-agent start --logs

后台守护进程:

bash
buildify-opencode-agent start --daemon
buildify-opencode-agent status
buildify-opencode-agent stop

4.(可选)安装为 macOS 系统服务

bash
buildify-opencode-agent install-service
buildify-opencode-agent status
buildify-opencode-agent uninstall-service

配置文件

配置文件路径:

text
~/.buildify/opencode-agent.json

查看当前配置:

bash
buildify-opencode-agent config show

设置配置项:

bash
buildify-opencode-agent config set key=value [key=value ...]

常用配置项

默认值说明
serverhttp://localhost:8080Buildify Agent Broker 地址
clientId主机名在 Broker 注册的 Agent Client ID
tokenBroker 认证 Token
defaultCwd~/projectsAgent 机器上的默认工作目录
maxConcurrent1最大并行任务数
opencodeBinopencodeOpenCode 可执行文件路径
defaultModel默认模型,格式 provider/model
defaultProviderNpm@ai-sdk/openai-compatible动态 Provider 的默认 npm 包
logsfalse是否打印本地 Agent 日志
acpLogsfalse是否打印 OpenCode ACP 原始日志
reportUpdatesfalse是否将 ACP session/update 事件转发给 Broker

配置优先级(高 → 低):

  1. CLI 参数
  2. 环境变量
  3. ~/.buildify/opencode-agent.json
  4. 内置默认值

环境变量

变量说明
BUILDIFY_SERVERBroker 服务地址
BUILDIFY_TOKENBroker 认证 Token
BUILDIFY_CLIENT_IDAgent Client ID
BUILDIFY_LOGS启用本地日志
BUILDIFY_OPENCODE_ACP_LOGS打印 OpenCode ACP 原始日志
BUILDIFY_OPENCODE_REPORT_UPDATES转发 ACP 原始更新事件
BUILDIFY_OPENCODE_BINOpenCode 可执行文件路径
BUILDIFY_OPENCODE_DEFAULT_MODEL默认模型
BUILDIFY_OPENCODE_DEFAULT_PROVIDER_NPM默认 Provider npm 包

示例:

bash
BUILDIFY_SERVER=http://localhost:8080 \
BUILDIFY_TOKEN=<broker-token> \
BUILDIFY_CLIENT_ID=opencode-local \
buildify-opencode-agent start --logs

CLI 命令

bash
buildify-opencode-agent start [options]
buildify-opencode-agent stop
buildify-opencode-agent status
buildify-opencode-agent install-service
buildify-opencode-agent uninstall-service
buildify-opencode-agent config init
buildify-opencode-agent config show
buildify-opencode-agent config set key=value [key=value ...]

start 常用参数:

参数说明
--daemon后台运行
--foreground前台运行
--server <url>覆盖 Broker 地址
--token <token>覆盖 Broker Token
--client-id <id>覆盖 Client ID
--opencode-bin <path>覆盖 OpenCode 可执行文件
--default-model <model>默认模型,格式 provider/model
--logs启用本地日志
--acp-logs打印 OpenCode ACP 子进程原始日志
--report-updates将 ACP 原始更新转发给 Broker
--request-timeout-ms <ms>HTTP 请求超时

在 Buildify 中使用

使用 AgentOpenCodeSubmitTaskNode 节点提交 OpenCode 任务。

必填字段:

  • Broker 实例
  • Client ID(须与本地运行的 buildify-opencode-agent 一致)
  • 通过 ModelSelect 选择的模型
  • Prompt(任务指令)
  • 工作目录 cwd(Agent 机器上的本地路径)

WARNING

cwd 是 Agent 所在机器上的路径,不是 Buildify 服务器路径。若目录可能不存在,请启用「目录不存在时自动创建」。

Provider 与模型配置

Buildify 中 ModelSelect 的值会映射到任务 payload:

字段说明
providerIdProvider 标识
model模型名称
providerNpmProvider 对应的 npm 包
baseURLAPI Base URL
env环境变量(如 API Key)

Agent 据此构建 OPENCODE_CONFIG_CONTENT,并启动:

bash
opencode acp --print-logs

OpenAI 兼容 Provider 的默认 npm 包为 @ai-sdk/openai-compatible

示例模型:

text
alibaba-cn/qwen3.7-plus

请确保所选 Provider 通过 envbaseURL 传入真实的 API Key 或 Base URL,不能是脱敏占位符。

调试

启用普通日志:

bash
buildify-opencode-agent start --logs

启用 ACP 原始日志:

bash
buildify-opencode-agent start --logs --acp-logs

或通过环境变量:

bash
BUILDIFY_OPENCODE_ACP_LOGS=1 buildify-opencode-agent start --logs

查看守护进程/服务状态:

bash
buildify-opencode-agent status

本地 ACP 调试(开发用):

bash
node debug-acp.mjs \
  --model alibaba-cn/qwen3.7-plus \
  --npm @ai-sdk/openai-compatible \
  --api-key <api-key> \
  --prompt "say hello"

常见错误

OpenCode directory service failed

OpenCode 在初始化项目目录或 Provider 目录时失败。请检查:

  • cwd 在 Agent 机器上是否存在
  • Agent 进程是否对 cwd 有读写权限
  • 必要时启用 createCwdIfMissing
  • Provider 配置、npm 包与 baseURL 是否正确

Not Found

通常表示 OpenCode 加载目录/Provider 资源时收到 404。请加上 --acp-logs 启动,查看 Error handling request 相关日志。

Provider "…" requires an API key or baseURL

自定义 Provider 未向 Agent 传递凭证。请检查 Buildify ModelSelect 中的 env 配置。

API key was redacted

Agent 收到的是掩码占位符而非真实 API Key。请从 Buildify 传递原始 Key 值。

OpenCode returned no output and no token usage

OpenCode 结束但未返回文本或用量,通常与 Provider 认证、模型、配额或 API 错误有关。请启用 ACP 日志排查。

相关链接