- 工具被禁用(不进行工具调用)。
- 纯文本输入 → 纯文本输出(可靠)。
- 支持会话(确保后续轮次保持连贯)。
- 可传递图像:如果 CLI 接受图像路径,则可以将图像路径直接传递给 CLI。
适合初学者的快速入门
你可以无需任何配置就使用 Claude Code CLI——OpenClaw 自带一个内置默认配置:- 如果你使用
agents.defaults.models(白名单),则必须包含claude-cli/...。 - 如果主提供商发生故障(认证失败、速率限制、超时),OpenClaw 将转而尝试 CLI 后端。
配置概览
所有 CLI 后端都位于以下路径下:claude-cli、my-cli)。提供商标识将成为你的模型引用左侧的部分:
示例配置
工作原理
- 根据提供者前缀(
claude-cli/...)选择后端。 - 使用相同的 OpenClaw 提示词和工作区上下文构建系统提示。
- 如果 CLI 支持会话,则使用会话 ID 执行 CLI,以保持历史记录的一致性。
- 解析输出(JSON 或纯文本),并返回最终文本。
- 为每个后端持久化会话 ID,以便后续请求复用同一 CLI 会话。
会话
- 如果 CLI 支持会话,请设置
sessionArg(例如--session-id) 或sessionArgs(占位符{sessionId}),以便在多个标志中插入会话 ID。 - 如果 CLI 使用带有不同标志的恢复子命令,请设置
resumeArgs(在恢复时替换args),并可选设置resumeOutput(用于非 JSON 格式的恢复)。 sessionMode:always:始终发送会话 ID(如果没有存储过,则生成新的 UUID)。existing:仅在之前已存储会话 ID 时发送会话 ID。none:从不发送会话 ID。
图像(传递)
如果你的 CLI 接受图像路径,请设置imageArg:
imageArg,这些路径将作为CLI参数传递。如果缺少imageArg,OpenClaw会将文件路径附加到提示中(路径注入),而对于能够自动从常规路径加载本地文件的CLI(如Claude Code CLI的行为)来说,这已经足够了。
输入/输出
output: "json"(默认)尝试解析 JSON 并提取文本和会话 ID。output: "jsonl"解析 JSONL 流(Codex CLI 的--json),在存在的情况下提取最后一条代理消息以及thread_id。output: "text"将标准输出视为最终响应。
input: "arg"(默认)将提示作为最后一个 CLI 参数传递。input: "stdin"通过标准输入发送提示。- 如果提示非常长且设置了
maxPromptArgChars,则使用标准输入。
内置默认配置
OpenClaw为claude-cli提供了内置默认配置:
command: "claude"args: ["-p", "--output-format", "json", "--dangerously-skip-permissions"]resumeArgs: ["-p", "--output-format", "json", "--dangerously-skip-permissions", "--resume", "{sessionId}"]modelArg: "--model"systemPromptArg: "--append-system-prompt"sessionArg: "--session-id"systemPromptWhen: "first"sessionMode: "always"
codex-cli提供了内置默认配置:
command: "codex"args: ["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]resumeArgs: ["exec","resume","{sessionId}","--color","never","--sandbox","read-only","--skip-git-repo-check"]output: "jsonl"resumeOutput: "text"modelArg: "--model"imageArg: "--image"sessionMode: "existing"
command)。
限制
- 无 OpenClaw 工具(CLI 后端永远不会接收工具调用)。某些 CLI 仍可能运行其自身的代理工具。
- 无流式传输(CLI 输出会被收集后再返回)。
- 结构化输出取决于 CLI 的 JSON 格式。
- Codex CLI 会话通过文本输出恢复(无 JSONL),其结构化程度低于初始
--json运行。OpenClaw 会话仍能正常工作。
- 未找到 CLI:将
command设置为完整路径。 - 模型名称错误:使用
modelAliases将provider/model映射到 CLI 模型。 - 会话连续性缺失:确保已设置
sessionArg,且sessionMode不是none(目前 Codex CLI 无法通过 JSON 输出恢复会话)。 - 图像被忽略:设置
imageArg(并验证 CLI 是否支持文件路径)。