OpenCode协议控制

12分钟前更新 2 00

通过ACP协议控制OpenCode

收录时间:
2026-02-25
OpenCode协议控制OpenCode协议控制
OpenCode协议控制

技能简介

这个技能通过代理客户端协议(ACP)直接控制OpenCode。支持启动会话、发送提示、恢复对话和管理OpenCode更新。使用JSON-RPC 2.0格式进行通信,支持后台运行和会话管理。

业务背景

OpenCode协议控制技能让业务人员无需手动操作命令行,即可通过标准化接口直接驱动OpenCode执行代码任务。支持会话保持与恢复,适合需要长时间运行的自动化开发场景,如批量代码审查、持续集成中的智能补全等,降低技术门槛,提升研发流程的自动化程度。

落地案例:某团队需对遗留项目进行批量重构:运维人员在低代码平台配置工作目录与重构规则,该技能自动启动OpenCode会话并发送提示;后台轮询获取AI生成的重构建议,5分钟内完成代码分析后返回结果。若网络中断,可凭会话ID恢复进度,避免重复劳动。

能做什么

  • 启动OpenCode ACP会话
  • 发送JSON-RPC消息与OpenCode交互
  • 轮询获取响应内容
  • 恢复之前的会话
  • 管理和终止会话
  • 处理流式内容更新

使用说明

安装技能:

clawhub install opencode-acp-control

前置要求:需要安装opencode CLI工具

快速参考:

# 启动OpenCode
bash(command: "opencode acp", background: true)

# 发送消息
process.write(sessionId, data: "\n")

# 读取响应
process.poll(sessionId)  # 每2秒重复

# 停止OpenCode
process.kill(sessionId)

# 列出会话
bash(command: "opencode session list")

# 检查版本
bash(command: "opencode --version")

工作流程:

1. 启动OpenCode:

bash(command: "opencode acp", background: true, workdir: "/path/to/project")
# 保存返回的sessionId

2. 初始化连接:

{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":1,"clientCapabilities":{"fs":{"readTextFile":true,"writeTextFile":true},"terminal":true},"clientInfo":{"name":"clawdbot","version":"1.0.0"}}}

3. 创建会话:使用session/new方法,保存返回的sessionId

4. 发送提示:使用session/prompt方法,包含sessionId和prompt内容

5. 轮询响应:每2秒轮询一次,收集session/update通知,直到出现stopReason

6. 终止会话:使用process.kill(sessionId)

停止原因:

  • end_turn – 代理完成响应
  • cancelled – 已取消
  • max_tokens – 达到token限制

状态追踪:需要记录processSessionId(bash工具返回)、opencodeSessionId(session/new返回)、messageId(每次请求递增)

ACP协议文档:https://agentclientprotocol.com/llms.txt

输入与输出

见下方输入与输出表格。

项目内容
输入工作目录路径、提示内容、会话ID
输出JSON-RPC响应、流式内容更新、会话状态、stopReason
适用人群开发者、OpenCode用户、自动化工程师、CLI工具集成者
不包含OpenCode CLI(需单独安装)、ACP协议服务器、目标项目代码

 

风险提示

  • 原始页信息不足:缺少opencode CLI安装命令
  • 需要轮询获取响应,最多等待5分钟(150次轮询)
  • 所有消息必须以换行符结尾
  • messageId需要自行维护计数器
  • 网络问题可能导致进程退出,需重新启动

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/bjesuiter/opencode-acp-control/SKILL.md
来源类型:github

数据统计

相关导航

暂无评论

none
暂无评论...