SuperAPI AI 工具集

opencode-acp-control

智能体与模型

查看项目

更新于 10-16 06:39

技能介绍

用途

本技能用于通过 Agent Client Protocol(ACP)直接控制 OpenCode。它定义了一套让 AI 智能体(如 Clawdbot)与 OpenCode 进程交互的操作流程,涵盖启动、通信、会话恢复和版本更新。

主要能力

  1. 启动 OpenCode:使用 bash(command: "opencode acp", background: true, workdir: "...") 后台启动 OpenCode,并保存返回的进程会话 ID(processSessionId)。
  2. 发送提示词:通过 process.write(sessionId, data: "<json-rpc>\n") 向 OpenCode 会话写入 JSON-RPC 消息。
  3. 读取响应:通过 process.poll(sessionId) 每 2 秒轮询一次响应,收集 session/update 流式通知,直到收到包含 stopReason 的最终响应。
  4. 取消操作:发送 session/cancel 通知(无需响应)取消当前提示。
  5. 列出与恢复会话:通过 opencode session list 列出历史会话,让用户选择后使用 session/load 加载并恢复完整对话历史。
  6. 检查与更新 OpenCode:通过 opencode --version 检查当前版本,抓取 GitHub Releases 最新版本并比较;若需更新,停止所有 OpenCode 进程后重启以触发自动下载新二进制文件,并再次验证版本。

使用方式

所有消息为 JSON-RPC 2.0 格式,以换行符(\n)结尾。消息 ID 从 0 开始递增。核心工作流:

  1. 启动 OpenCode 并保存 processSessionId。
  2. 发送 initialize 请求,期望返回 protocolVersion: 1。
  3. 发送 session/new 请求,保存返回的 sessionId(opencodeSessionId)。
  4. 使用 session/prompt 发送提示词,每 2 秒轮询,处理 session/update 通知和最终响应(stopReason)。
  5. 完成后使用 process.kill(sessionId) 终止进程。

恢复会话时:先 opencode session list 列出会话,展示给用户选择,然后启动 OpenCode、初始化、再 session/load(需 sessionId、cwd、mcpServers 参数)。加载后对话历史会完整流式回传。

适用场景

  • 需要在 AI 智能体中自动化调用 OpenCode 进行编码辅助。
  • 需要管理多个 OpenCode 会话并恢复历史对话。
  • 需要自动检查并触发 OpenCode 版本更新。

限制

  • 轮询最大等待时间为 5 分钟(150 次轮询),超时视为操作失败。
  • 自动更新依赖 OpenCode 重启时自动下载二进制文件,若失败需手动执行 curl -fsSL https://opencode.dev/install | bash。
  • 本技能文档未提供具体的收费、价格或平台支持信息。

元数据

  • 协议文档:https://agentclientprotocol.com/llms.txt
  • GitHub 仓库:https://github.com/bjesuiter/opencode-acp-skill
  • 问题反馈:https://github.com/bjesuiter/opencode-acp-skill/issues