运行时Provider CLI

ACP 兼容 CLI

通过 Agent Client Protocol (ACP) 标准协议接入与运行第三方智能体 CLI。

Mopheus 原生支持通过 Agent Client Protocol (ACP) 与第三方智能体 CLI 通信。ACP 是一个基于 JSON-RPC 2.0 的开放双向协议标准,解耦了工作区编排平台与具体的智能体运行时。

通过 ACP 协议,Mopheus 可以标准化地派发任务提示词、管理工具调用与执行结果、同步工作区状态,并在任务流中进行下一 turn 的交互通信。


协议特性与能力矩阵

维度特性说明
通信协议ACP (JSON-RPC 2.0 via stdin/stdout)
会话管理支持 session/new、session/prompt、session/cancel
交互投递下一 turn(Next-turn delivery)
工作区状态支持自动同步工作区根目录与上下文信息
无人值守权限支持声明权限自动放行策略(如 bypassPermissions)
文件系统沙箱Linux 支持(同其他原生 Provider)

已验证与支持的 ACP CLI

1. Hermes(内置推荐)

Hermes 是 Mopheus 默认内置注册的 ACP Provider。

项目值
二进制文件hermes
路径覆盖变量MOPHEUS_HERMES_PATH
验证命令hermes --version
任务 Skill 路径.hermes/skills/

安装方式:在守护进程主机安装 hermes 并加入 $PATH,启动守护进程即可自动发现。

2. Kiro CLI

Kiro CLI 提供了完整的 ACP 接口。Mopheus 为 Kiro 内置了专属的工作区状态适配器(WorkspaceStateCapable),在初始化时自动注入工作区边界。

  • 启动命令:kiro-cli
  • 环境变量:MOPHEUS_KIRO_PATH
  • Skill 路径:.kiro/skills/

3. Qoder CLI

Qoder CLI 支持通过 --acp 参数进入 ACP 模式,并提供无人值守权限策略支持。

  • 启动命令:qodercli
  • 典型 ACP 启动参数:--acp-args=--acp,--permission-mode,bypass_permissions
  • 工作区隔离:默认使用 .qoder/ 作为 home 与 workdir 子目录。

4. OpenCode / MimoCode(ACP 变体)

除原生行协议外,Mopheus 同样内置了这两款工具的 ACP 变体注册:

  • OpenCode ACP:以 opencode-acp 注册,执行 opencode acp。
  • MimoCode ACP:以 mimocode-acp 注册,执行 mimocode acp。

5. Qwen Code

Qwen Code 作为内置的 qwen ACP Provider 提供。

  • 启动命令:qwen
  • 路径覆盖变量:MOPHEUS_QWENCODE_PATH
  • ACP 模式:使用 --acp 启动

ACP Token 用量上报

ACP 不同 CLI 实现之间没有统一的 token 用量载荷格式。用量是否可见以及字段含义取决于具体 CLI 和版本。Mopheus 会记录当前 CLI 实际上报的用量;CLI 未上报时,Mopheus 无法推算真实 token 用量。

CLI已观察到的 ACP 用量上报行为
Qwen Code执行过程中会发送用量元数据。在已验证的运行中,Mopheus 能在运行期间记录用量,结束时的总量与 runtime 用量日志一致。缓存输入与未缓存输入分开记录;思考 token 已包含在输出 token 中。
OpenCode在当前测试环境中,只能在任务结束时获得可用用量,运行期间没有可用的用量更新。具体行为可能随 CLI 版本变化。
Qoder CLI使用 Qoder CLI 1.1.65 和已测试的 zhipu/glm5.3-cp 模型时,ACP 会话能够完成,但返回的用量为零,且没有可用的流式用量元数据。其他版本、模型或配置可能不同。

注册其他自定义 ACP CLI

如果你开发的智能体或其他第三方 CLI 支持 ACP 协议,可通过 Mopheus CLI 一键注册为守护进程可用 Provider:

mopheus provider register my-agent acp \
  --cmd-name my-agent-cli \
  --env-var MY_AGENT_PATH \
  --acp-args=--acp \
  --unattended-mode bypassPermissions

有关无人值守参数配置、自定义别名及配置持久化规则,请参阅自定义 Provider CLI。