Skip to content

调用时序图

这一页不讲抽象定义,只把几条最容易混淆的链路画出来。

1. codex exec

这是最短的一条链,更像命令执行。

text
user / script
   ->
codex exec "prompt"
   ->
Codex runtime
   ->
tool calls / model steps
   ->
stdout / json events / final message

特点:

  • one-shot
  • 适合脚本、CI、批处理
  • 宿主控制面最弱

2. Zed 接 Codex

text
Zed editor
   ->
ACP over stdio
   ->
codex-acp
   ->
Codex runtime / thread manager
   ->
tool calls / approvals / events
   ->
ACP updates back to Zed

宿主控制点:

  • session 生命周期
  • prompt / cancel / resume
  • 工具调用 UI
  • diff / terminal / approvals

关键判断:

Zed 不是在“包一层 codex exec”,而是在“把 Codex 变成一个外部 agent 进程”。

3. Zed 接 Claude Code

text
Zed editor
   ->
ACP
   ->
Claude adapter
   ->
Claude Agent SDK / Claude Code
   ->
streamed events / tool interactions
   ->
ACP updates back to Zed

这条链和 Zed + Codex 很像,区别主要在适配器背后接的不是同一个 runtime。

4. OpenClaw 直连 provider

text
OpenClaw
   ->
OpenAI-compatible / provider API
   ->
model response stream
   ->
OpenClaw session / channel / UI

特点:

  • 最薄
  • 最容易做统一路由
  • 上游 agent 的本地执行语义较弱

5. OpenClaw 作为 ACP bridge

text
editor / acpx
   ->
openclaw acp
   ->
OpenClaw gateway
   ->
provider or external agent backend

这里 OpenClaw 本身不是被嵌入的 agent,而是桥。

6. OpenClaw 反向拉起外部 agent

text
OpenClaw
   ->
acpx / ACP backend plugin
   ->
external harness
   ->
Codex / Claude / Gemini

这里 OpenClaw 又变成宿主。

7. Multica 接 Claude Code

text
Multica backend
   ->
local daemon
   ->
claude --output-format stream-json -p <prompt>
   ->
Claude Code
   ->
JSON lines on stdout
   ->
Multica Message stream

关键点:

  • 没有 ACP
  • 没有单独 adapter
  • 直接消费 CLI 的结构化输出

8. Multica 接 Codex

text
Multica backend
   ->
local daemon
   ->
codex app-server --listen stdio://
   ->
JSON-RPC: initialize -> thread/start -> turn/start
   ->
thread / item / turn notifications
   ->
Multica Message stream

关键点:

  • 也没有 ACP
  • 不是 codex exec
  • 它把 Codex 当作长期运行的 app-server

9. 这几条链该怎么一眼区分

链路你看到的关键词本质
codex execexec, --json, prompt in/prompt out命令式运行
Zed -> codex-acpACP, adapter, external agentIDE 嵌入
OpenClaw -> providerprovider, gateway, responses API模型路由
OpenClaw -> acpxspawn, harness, bridge外部 agent 编排
Multica -> claudestream-json, stdout linesCLI 流式消费
Multica -> codexapp-server, thread/start, turn/startserver 式运行时接入

10. 最短结论

如果你只是想快速判断一条集成链路属于哪类,问自己两个问题就够了:

  1. 宿主是在“发一个命令”,还是“管理一个会话”?
  2. 上游返回的是“输出流”,还是“线程/回合/审批级事件”?

这两个问题基本就能把 exec、CLI stream、ACP、app-server 全部分开。

基于 2026-04-05 的调研整理