OpenClaw 设计与实现
附录 D:开发者速查手册
本附录为 OpenClaw 开发者和运营者提供日常最常用的配置项、CLI 命令和关键文件的快速参考。所有条目对照 openclaw/openclaw v2026.3.31(commit 213a704)核实。
D.1 关键配置项 Top 10
以下是最常调整的 10 个配置项。配置文件是 ~/.openclaw/openclaw.json——扩展名是 .json,但按 JSON5 解析(允许注释和尾逗号)。完整清单见附录 A。
| # | 配置项 | 默认值 | 说明 | 参考章节 |
|---|---|---|---|---|
| 1 | agents.defaults.model |
未配置时 anthropic/claude-opus-4-6 |
默认模型,字符串 "provider/model" 或 { primary, fallbacks } |
第 4 章 |
| 2 | agents.defaults.contextTokens |
随模型 | 上下文窗口封顶(token 数) | 第 5 章 |
| 3 | gateway.port |
18789 |
Gateway 监听端口(其余端口由它派生) | 第 3 章 |
| 4 | gateway.bind |
"loopback" |
绑定模式:auto / lan / loopback / tailnet / custom |
第 3 章 |
| 5 | gateway.auth.mode |
"token" |
认证模式:none / token / password / trusted-proxy |
第 13 章 |
| 6 | tools.profile |
引导时写入 "coding" |
工具基线:minimal / coding / messaging / full |
第 10 章 |
| 7 | tools.exec.security |
按 host 分流(沙箱 deny,网关/节点 allowlist) |
命令执行安全级别:deny / allowlist / full;host=sandbox 时命令直接在容器里执行,不走档位与审批 |
第 10、13 章 |
| 8 | gateway.reload.mode |
"hybrid" |
热重载模式:off / restart / hot / hybrid |
第 3 章 |
| 9 | logging.level |
"info" |
文件日志级别(--verbose 只影响控制台,不影响它) |
第 15 章 |
| 10 | cron.enabled |
启用(只有显式写 false 才关闭) |
是否启用定时任务调度器 | 第 12 章 |
快速示例
// ~/.openclaw/openclaw.json —— 最小可用配置(JSON5,可写注释)
// 前提:主模型有 Anthropic 凭证(onboard 配好或导出 ANTHROPIC_API_KEY),并已导出 OPENCLAW_GATEWAY_TOKEN;
// 引用的环境变量未设置时,配置加载直接报错(MissingEnvVarError)
{
agents: {
defaults: {
model: {
primary: "anthropic/claude-opus-4-6",
fallbacks: ["openai/gpt-5.4"],
},
},
},
gateway: {
mode: "local", // 缺了它,openclaw gateway run 会拒绝启动
port: 18789,
bind: "loopback",
auth: { mode: "token", token: "${OPENCLAW_GATEWAY_TOKEN}" },
},
tools: {
profile: "coding",
exec: { security: "allowlist" },
},
}
D.2 CLI 命令速查
D.2.1 Gateway 管理
| 命令 | 说明 |
|---|---|
openclaw gateway run |
前台运行 Gateway |
openclaw gateway install |
注册为系统服务(launchd / systemd / schtasks) |
openclaw gateway start / stop / restart |
启动 / 停止 / 重启已安装的系统服务(未安装时 start 拉不起网关,先 install) |
openclaw gateway status |
服务状态 + RPC 探测(--deep 扫描系统级服务) |
openclaw gateway probe |
可达性 + 发现 + 健康 + 状态汇总 |
openclaw gateway health |
拉取网关健康信息 |
openclaw gateway call <method> |
直接调用一个 Gateway RPC 方法 |
openclaw gateway usage-cost --days 30 |
从会话日志汇总用量成本 |
openclaw logs --follow |
跟随查看网关文件日志(顶层命令,不在 gateway 下) |
D.2.2 配置与引导
| 命令 | 说明 |
|---|---|
openclaw onboard |
交互式引导(网关、工作区、认证、通道、技能) |
openclaw onboard --install-daemon |
引导的同时安装网关系统服务——README 推荐的快速上手一步到位写法 |
openclaw setup |
只初始化配置与 Agent 工作区 |
openclaw configure |
交互式配置凭证 / 通道 / 网关 / Agent 默认值 |
openclaw config get <path> / set / unset |
非交互式读写单个配置项 |
openclaw config file |
打印当前生效的配置文件路径 |
openclaw config schema |
导出配置 JSON Schema |
openclaw config validate |
校验配置文件 |
D.2.3 Agent 与会话
| 命令 | 说明 |
|---|---|
openclaw tui |
启动 TUI 交互界面 |
openclaw tui --session <key> |
指定会话进入 TUI |
openclaw agent --agent <id> -m "<text>" |
通过 Gateway 跑一个 Agent 回合;须用 --agent、--session-id 或 --to 之一选定会话,只给 -m 会报错 |
openclaw agents list |
列出已配置的 Agent(--bindings 附带路由绑定) |
openclaw sessions |
列出已存储的会话(--active <分钟> 过滤,--json 输出 JSON) |
openclaw sessions cleanup --dry-run |
预览会话存储维护动作 |
D.2.4 诊断与安全
| 命令 | 说明 |
|---|---|
openclaw doctor |
依次运行 25 个核心步骤(多数是检查)并给出修复建议 |
openclaw doctor --fix |
自动应用推荐修复(--repair 同义) |
openclaw doctor --non-interactive |
无提示运行(仅安全迁移) |
openclaw security audit |
执行安全审计 |
openclaw security audit --fix |
审计并自动修复(收紧默认值 + 修正文件权限) |
openclaw security audit --deep |
深度审计(尽力探测运行中的网关) |
openclaw security audit --json |
机器可读输出 |
openclaw doctor本身是交互式流程,没有--json;需要结构化输出请用status/health/security audit的--json。
D.2.5 技能管理
| 命令 | 说明 |
|---|---|
openclaw skills list |
列出所有技能(--eligible 只看依赖齐全的,-v 显示缺失项) |
openclaw skills info <name> |
查看某个技能的详情 |
openclaw skills check |
哪些技能就绪、哪些缺依赖 |
openclaw skills search <query> |
搜索 ClawHub 技能 |
openclaw skills install <slug> |
从 ClawHub 安装到当前工作区(--version、--force);这条下载路径不经本地安全扫描,启用前先自行审阅 |
openclaw skills update --all |
更新所有 ClawHub 来源的技能 |
包管理器(brew / node / go / uv / download)出现在
SKILL.md的metadata.openclaw.install里,用于安装技能所依赖的二进制,不是skills install的命令行开关。
D.2.6 备份与维护
| 命令 | 说明 |
|---|---|
openclaw backup create |
在当前目录生成带时间戳的备份归档(当前目录位于被备份的目录内时改写到 home) |
openclaw backup create --output <path> |
写入指定的归档路径或已有目录 |
openclaw backup create --verify |
生成后立即校验归档清单 |
openclaw backup create --only-config |
只备份当前生效的配置文件 |
openclaw backup verify <archive> |
单独校验一个归档 |
CLI 只有
create与verify,没有restore子命令——恢复是手工解包回状态目录。
D.2.7 TUI 斜杠命令
| 命令 | 说明 | 分类 |
|---|---|---|
/agent [id] |
切换 Agent(不带参数则打开选择器) | 导航 |
/agents |
打开 Agent 选择器 | 导航 |
/session [key] / /sessions |
切换会话 / 打开会话选择器 | 导航 |
/model [id] / /models |
切换模型 / 打开模型选择器 | 模型控制 |
/think <level> |
设置思考档位(可选值随 Provider 与模型动态变化) | 模型控制 |
/fast <status|on|off> |
开关快速模式 | 模型控制 |
/status |
显示网关状态摘要 | 可观测性 |
/verbose <on|off> |
详细输出开关 | 可观测性 |
/reasoning <on|off> |
推理过程显示开关 | 可观测性 |
/usage <off|tokens|full> |
每条回复后的用量行 | 可观测性 |
/elevated <on|off|ask|full>(别名 /elev) |
提权级别 | 安全 |
/activation <mention|always> |
群聊激活方式 | 安全 |
/abort |
中止当前运行 | 流控 |
/new / /reset |
重置会话 | 流控 |
/btw <问题> |
问一个临时旁支问题,不写入后续会话上下文 | 流控 |
/settings / /help / /exit(/quit) |
设置 / 帮助 / 退出 | 其他 |
另外两个前缀不是斜杠命令但同样重要:!<命令> 在你本机执行 Shell(首次使用需在会话内授权),普通文本则直接发给 Agent。
D.3 关键文件速查
D.3.1 用户工作区文件
这些文件放在工作区根目录(默认 ~/.openclaw/workspace/),由你维护。文件名常量定义在 src/agents/workspace.ts:
| 文件 | 用途 | 是否必需 | 参考章节 |
|---|---|---|---|
SOUL.md |
Agent 的身份与人格定义——"你是谁" | 推荐 | 第 2、6 章 |
AGENTS.md |
Agent 的工作规范与流程——"你的工作流程" | 推荐 | 第 2、6 章 |
USER.md |
用户画像——"你在帮谁" | 推荐 | 第 2 章 |
TOOLS.md |
本地工具配置备注(设备名、SSH 地址等) | 可选 | 第 10 章 |
IDENTITY.md |
Agent 自我认同(名字、emoji、头像) | 可选 | 第 6 章 |
MEMORY.md(或 memory.md) |
Agent 的长期记忆 | 可选 | 第 5 章 |
BOOTSTRAP.md |
新工作区首次运行时的引导模板("你是谁"的初次对话,完成后按模板提示删除) | 可选 | — |
BOOT.md |
Gateway 启动时由内置钩子 boot-md(gateway:startup 事件)交给 Agent 执行的一次性指令;常量在 src/gateway/boot.ts |
可选 | 第 3 章 |
HEARTBEAT.md |
心跳检查清单 | 可选 | 第 12 章 |
skills/*/SKILL.md |
自定义技能定义 | 可选 | 第 16 章 |
单个工作区自举文件的读取上限是 2 MB(
MAX_WORKSPACE_BOOTSTRAP_FILE_BYTES)。
D.3.2 系统文件位置
| 内容 | 位置 | 说明 |
|---|---|---|
| 主配置文件 | ~/.openclaw/openclaw.json |
按 JSON5 解析;OPENCLAW_CONFIG_PATH 可覆盖 |
| 状态目录 | ~/.openclaw/ |
OPENCLAW_STATE_DIR 可覆盖;--profile <name> 切到 ~/.openclaw-<name> |
| 会话存储 | ~/.openclaw/agents/<agentId>/sessions/sessions.json |
路径由 session.store 决定 |
| 运行日志 | /tmp/openclaw/openclaw-YYYY-MM-DD.log |
按天滚动,不在 ~/.openclaw 下;logging.file 可覆盖 |
| 工作区 | ~/.openclaw/workspace/ |
agents.defaults.workspace 可覆盖 |
| 扩展/插件 | ~/.openclaw/extensions/ |
另可通过 plugins.load.paths 追加 |
| 环境变量文件 | ~/.openclaw/.env 与当前目录 .env |
均不覆盖已存在的进程环境变量 |
D.3.3 技能文件结构
skills/
my-skill/
SKILL.md # 技能定义(必需)
references/ # 参考资料(可选)
scripts/ # 辅助脚本(可选)
SKILL.md 的关键字段:
---
name: my-skill
description: "一句话描述。Use when: ... NOT for: ..." # 会进入系统提示的技能目录
user-invocable: true # 是否生成斜杠命令(默认 true):名字规范化为 /my_skill,也可用 /skill my-skill
disable-model-invocation: false # 是否对模型隐藏(默认 false)
metadata:
openclaw:
emoji: "🔧"
os: [darwin, linux] # 平台限制
requires:
bins: [git] # 必需二进制
env: [MY_API_KEY] # 必需环境变量
---
# 技能名称
具体的操作指南和流程说明……
注意 frontmatter 里的调用控制字段用的是连字符形式(
user-invocable/disable-model-invocation),解析见src/agents/skills/frontmatter.ts。
D.4 常见错误速查
| 错误消息 | 解决方案 |
|---|---|
Gateway not running |
已装服务:openclaw gateway start;未装:openclaw gateway install(装完即启动)或前台 openclaw gateway run;一步到位用 openclaw onboard --install-daemon |
ECONNREFUSED 127.0.0.1:18789 |
检查端口占用:openclaw gateway status --deep、lsof -i :18789 |
Config invalid |
按提示运行 openclaw doctor --fix(doctor/logs/health/status 不受配置错误阻断) |
401 Unauthorized(Provider) |
重跑 openclaw onboard 或 openclaw doctor 修复凭证 |
429 Too Many Requests |
等待冷却,或配置 agents.defaults.model.fallbacks 走备用模型 |
Context overflow — … / Context limit exceeded … |
系统已先自动压缩重试;仍报错就 /new 开新会话或缩短输入,必要时手动改用更大窗口的模型(降级链不会因溢出自动换模型);压缩阶段溢出按提示调大 agents.defaults.compaction.reserveTokensFloor |
Blocked hostname or private/internal/special-use IP address |
SSRF 防护拦截,检查目标是否为私有 / 链路本地地址 |
Pairing required |
在设备上重新完成配对 |
multiple gateway processes are listening on port ... |
openclaw gateway status --deep 后清理多余进程再重启 |
ENOSPC |
清理 /tmp/openclaw/ 下的滚动日志(超 24 小时的会自动清理,但突发写入可能来不及) |
D.5 成本观测
本专栏不提供"每次多少 token、每月多少美元"的估算表——这类数字完全取决于你的提示体积、工具输出量、对话长度和所选模型的单价,脱离具体负载没有意义。请直接测量:
openclaw gateway usage-cost --days 30 # 近 30 天的用量成本汇总
openclaw gateway usage-cost --days 7 --json # 机器可读,便于接入自己的看板
在 TUI 里则可以用 /usage tokens 或 /usage full 打开每条回复后的用量行,实时观察单轮开销。
三个影响成本的主要杠杆(前两项机理见第 16 章与第 5 章):技能按需加载让技能数量不再线性推高常驻上下文;上下文压缩在历史逼近窗口时把它摘要收拢,不让它无限增长;prompt caching 按前缀匹配(Anthropic 官方文档:缓存命中要求断点之前的提示逐字相同),前缀里有一处每轮都变的内容(例如时间戳),其后的缓存全部作废。
提示:本手册为快速参考用途。各配置项和命令的完整说明,请参考对应章节与附录 A(配置速查表);仓库内
docs/gateway/configuration-reference.md是配置字段的权威出处。