跳转至

CLI 自动化

使用 openclaw onboard --non-interactive 来脚本化设置。它要求 --accept-risk:非交互式设置可以在没有确认提示的情况下写入凭据和守护进程配置,因此该标志是明确的风险确认。

每个命令都可以通过 --install-daemon 安装受管理的 Gateway,通过省略守护进程标志来要求使用已在运行的兼容 Gateway,通过 --skip-daemon 显式让 Gateway 保持停止状态,或使用 --skip-health 仅进行配置设置。显式跳过仍会探测现有的 Gateway,并报告其是否可达,但没有监听器存在仅作为提示信息,而不是设置失败。

Note

--json 并不意味着非交互模式。请在脚本中显式传递 --non-interactive --accept-risk。

审查所需插件

捆绑插件和来自 OpenClaw 官方目录的已验证插件在设置期间不需要能力同意。这包括为 OpenAI 设置而安装的官方 Codex 运行时。

非交互式引导无法接受新的第三方插件能力。--accept-risk 仅确认引导风险;它并不授予插件同意。在自动化需要第三方提供商、运行时或渠道插件的设置之前,请审查其源代码和声明的能力,然后以显式同意的方式预安装:

openclaw plugins install <plugin-spec> --accept-capabilities

如果引导报告需要进行插件能力审查,请审查并安装指定的插件,然后重新运行相同的命令。对于已安装但需要批准才能启用的插件,请使用 openclaw plugins enable <plugin-id> --accept-capabilities。

同意仅适用于已审查的插件操作,而非随后的每次安装。有关制品审查、启用和更新规则,请参阅 能力同意。

基线非交互式示例

openclaw onboard --non-interactive --accept-risk \
  --mode local \
  --auth-choice apiKey \
  --anthropic-api-key "$ANTHROPIC_API_KEY" \
  --secret-input-mode plaintext \
  --gateway-bind loopback \
  --install-daemon \
  --daemon-runtime node \
  --skip-bootstrap \
  --skip-skills

添加 --json 以获取机器可读的摘要。

  • --gateway-port 默认为 18789。仅在需要覆盖该默认值时传递它。
  • 本地引导默认在 token 模式下生成 Gateway 密钥,并保留现有的密码模式。使用 --gateway-auth password 配合 --gateway-password <value> 显式提供密码;密码标志本身也会选择密码模式。Tailscale Funnel 需要密码模式。
  • --skip-bootstrap 跳过创建默认工作区文件,适用于预置自己工作区的自动化。
  • --secret-input-mode ref 将新凭据存储为基于环境变量的引用,格式为 { source: "env", provider: "default", id: "<ENV_VAR>" }。在添加凭据或传递内联密钥标志时,设置提供商环境变量。现有可解析的命名配置及其 env、file、exec 或 store 引用会原样重用,而无需写入新凭据或额外提供提供商环境变量。现有明文不会被迁移。先运行 openclaw secrets configure --apply,再运行 openclaw secrets audit --check。参见 密钥管理。
  • Gateway 令牌遵循相同的模式。设置过程会自行生成该值,因此除非你提供一个环境变量,否则引用模式没有可指向的环境变量。如果导出了 OPENCLAW_GATEWAY_TOKEN,gateway.auth.token 就会成为指向它的 env 引用。否则,该令牌会作为 OPENCLAW_GATEWAY_TOKEN 存入 SQLite 机密存储,并且配置会保留一个 store 引用。无论哪种方式,openclaw.json 都不会包含明文的 Gateway 令牌。使用 openclaw secrets store list 检查该条目。
  • 在引用模式下,显式传递的 --gateway-password 和 --remote-password 必须与 OPENCLAW_GATEWAY_PASSWORD 匹配。--remote-token 必须与 OPENCLAW_GATEWAY_TOKEN 匹配。缺失或不匹配的环境变量值会在设置改变状态之前导致失败。匹配的凭据会以 env SecretRefs 的形式存储。
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice openai-api-key \
  --secret-input-mode ref

特定提供商的示例

Anthropic API 密钥示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice apiKey \
  --anthropic-api-key "$ANTHROPIC_API_KEY" \
  --gateway-bind loopback
Cloudflare AI Gateway 示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice cloudflare-ai-gateway-api-key \
  --cloudflare-ai-gateway-account-id "your-account-id" \
  --cloudflare-ai-gateway-gateway-id "your-gateway-id" \
  --cloudflare-ai-gateway-api-key "$CLOUDFLARE_AI_GATEWAY_API_KEY" \
  --gateway-bind loopback
Gemini 示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice gemini-api-key \
  --gemini-api-key "$GEMINI_API_KEY" \
  --gateway-bind loopback
Mistral 示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice mistral-api-key \
  --mistral-api-key "$MISTRAL_API_KEY" \
  --gateway-bind loopback
Moonshot 示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice moonshot-api-key \
  --moonshot-api-key "$MOONSHOT_API_KEY" \
  --gateway-bind loopback
Ollama 示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice ollama \
  --custom-model-id "qwen3.5:27b" \
  --gateway-bind loopback
OpenCode 示例

openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice opencode-zen \
  --opencode-zen-api-key "$OPENCODE_API_KEY" \
  --gateway-bind loopback
若要使用 Go 目录,请改用 --auth-choice opencode-go --opencode-go-api-key "$OPENCODE_API_KEY"。

合成示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice synthetic-api-key \
  --synthetic-api-key "$SYNTHETIC_API_KEY" \
  --gateway-bind loopback
Vercel AI Gateway 示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice ai-gateway-api-key \
  --ai-gateway-api-key "$AI_GATEWAY_API_KEY" \
  --gateway-bind loopback
Z.AI 示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice zai-api-key \
  --zai-api-key "$ZAI_API_KEY" \
  --gateway-bind loopback
自定义提供商示例
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice custom-api-key \
  --custom-base-url "https://llm.example.com/v1" \
  --custom-model-id "foo-large" \
  --custom-api-key "$CUSTOM_API_KEY" \
  --custom-provider-id "my-custom" \
  --custom-compatibility anthropic \
  --custom-image-input \
  --gateway-bind loopback

--custom-api-key 是可选的;某些端点不需要身份验证。如果省略,引导流程会检查环境变量中的 CUSTOM_API_KEY。--custom-provider-id 是可选的,省略时会从基础 URL 自动派生。--custom-compatibility 默认为 openai(其他值:openai-responses、anthropic)。

OpenClaw 会根据已知的视觉模型 ID 模式(gpt-4o、claude-3/4、gemini、-vl/vision 后缀以及类似模式)推断图像输入支持。对于无法识别的视觉模型,添加 --custom-image-input 可强制启用图像输入,或使用 --custom-text-input 强制为仅文本。

引用模式变体,将 apiKey 存储为 { source: "env", provider: "default", id: "CUSTOM_API_KEY" }:

export CUSTOM_API_KEY="your-key"
openclaw onboard --non-interactive --accept-risk --skip-health \
  --mode local \
  --auth-choice custom-api-key \
  --custom-base-url "https://llm.example.com/v1" \
  --custom-model-id "foo-large" \
  --secret-input-mode ref \
  --custom-provider-id "my-custom" \
  --custom-compatibility anthropic \
  --custom-image-input \
  --gateway-bind loopback

Anthropic setup-token 身份验证仍受支持,但当本地存在 Claude CLI 登录时,OpenClaw 会优先复用 Claude CLI。生产环境中,建议使用 Anthropic API 密钥。

添加另一个智能体

openclaw agents add <name> 会创建一个独立的智能体,拥有自己的工作区、会话和身份验证配置。在不带 --workspace(且不带其他标志)的情况下运行它会启动交互式向导;传入 --workspace、--model、--agent-dir、--bind 或 --non-interactive 中的任意一个,则会以非交互方式运行,并且随后要求提供 --workspace。

openclaw agents add work \
  --workspace ~/.openclaw/workspace-work \
  --model openai/gpt-6-astra \
  --bind whatsapp:biz \
  --non-interactive \
  --json

它写入的配置键(新智能体 ID 对应的 agents.entries.* 条目):

  • name
  • workspace
  • agentDir
  • model(仅在传入 --model 时)

说明:

  • 默认工作区(在交互式向导中省略 --workspace 时):~/.openclaw/workspace-<agentId>。
  • --bind <channel[:accountId]> 可重复使用;添加绑定以将入站消息路由到新智能体(向导也可以交互式完成此操作)。
  • 智能体名称会被规范化为有效的智能体 ID。允许使用 main,但已有的命名安装可能需要先运行 openclaw doctor --fix 完成 legacy-session 和 shared-auth 所有权迁移,然后才能创建它。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw