OpenClaw 文档速读:接口导航与数据结构
面向“我想用 OpenClaw 把工具, 自动化, 多端接入跑起来”的快速笔记版说明。内容基于官方文档 https://docs.openclaw.ai/ ,并按接口与数据结构重新编排。
目录
- 1. OpenClaw 是什么
- 2. 文档导航
- 3. 核心概念速记
- 4. 工具接口总览(Tool API)
- 5. 自动化:Cron jobs 深入
- 6. 配置:openclaw.json 的关键字段
- 7. 数据结构速查(JSON Shape Cheatsheet)
1. OpenClaw 是什么
OpenClaw 把“聊天式智能体”落到工程层面,核心在于:
- 有一层 Gateway 常驻进程,负责工具调用, 会话, 定时任务, 以及多渠道适配。
- 智能体通过一组第一类 Tools 来做事,包含文件, 运行命令, 浏览器控制, 节点设备, 定时任务, 发消息等。
- 既能在主会话里连续对话,也能把任务丢到隔离会话或子智能体去跑。
2. 文档导航
建议按“先能跑, 再精调”的顺序读:
- 工具总览: https://docs.openclaw.ai/tools
- 配置入门: https://docs.openclaw.ai/gateway/configuration
- Cron jobs: https://docs.openclaw.ai/automation/cron-jobs
- Session tools: https://docs.openclaw.ai/concepts/session-tool
进阶导航(按需求挑):
- 配置全量参考: https://docs.openclaw.ai/gateway/configuration-reference
- 工具分项: https://docs.openclaw.ai/tools/index.md
- CLI 参考: https://docs.openclaw.ai/cli/index.md
- Hooks 与 Webhooks: https://docs.openclaw.ai/automation/hooks.md
提示:官方提供了全站索引文件 llms.txt,适合用脚本或检索工具直接拉列表。
- 索引: https://docs.openclaw.ai/llms.txt
3. 核心概念速记
- Gateway:常驻服务,维护 sessions, cron, hooks,统一做工具调用与消息投递。
- Session:对话上下文容器。直接聊天通常落在
main,Cron 与子智能体会产出独立 session key。 - Tool:智能体可调用的能力,带结构化参数。工具可被策略限制,防止越权和误用。
- Main vs Isolated:定时任务或子任务常建议用 isolated,减少主会话噪音,并避免上下文污染。
4. 工具接口总览(Tool API)
来源: https://docs.openclaw.ai/tools
OpenClaw 的工具可以理解成一套“受控 RPC”,每个工具都有明确 action 和参数结构。下面按常用度整理。
4.1 工具策略与分组(tools.allow, tools.deny, tools.profile)
核心字段(位于 ~/.openclaw/openclaw.json):
tools.profile:基础工具集模板minimal只开session_statuscoding适合本地文件与命令行messaging适合纯消息型机器人full不限制
tools.allow与tools.deny:二次收紧或放开,deny 优先。group:*:工具组快捷写法,例如group:fs,group:web,group:messaging。
示例:只允许文件工具和 browser。
{
tools: {
allow: ["group:fs", "browser"],
},
}
4.2 exec 与 process(运行命令与后台会话)
exec:执行 shell 命令,支持后台化(yieldMs 后返回 sessionId)。process:管理后台 exec 会话,常用 action 包含poll,log,kill。
你会经常用到的参数:
exec.command必填exec.yieldMs控制多久转后台exec.pty=true给需要 TTY 的 CLI(交互式工具)process(action=poll)用于长任务等待
4.3 web_search 与 web_fetch(联网检索与抓取)
web_search:搜标题与摘要,适合定位页面。web_fetch:抓取并抽取正文(markdown 或 text),适合做“读文档再总结”。
web_fetch 常用:
extractMode: "markdown" | "text"maxChars控制截断上限
4.4 browser(可控浏览器)
适合 JS 重站点, 登录态页面, 或需要交互式点击填表的场景。
关键动作:
snapshot获取可操作引用act对引用执行 click, type, press 等
一个经验:优先用 snapshot(refs="aria") 拿到稳定引用,再做 act。
4.5 nodes 与 canvas(节点能力, 相机与屏幕)
nodes:发现与控制配对节点(macOS companion app 或其它 node host)。- 常用 action:
notify,camera_snap,screen_record,location_get。 canvas:驱动节点 UI 画布,包含 present, eval, snapshot。
4.6 message(跨渠道消息)
message 负责发送文本, 媒体, 以及对渠道做操作(编辑, 删除, react, poll)。
注意点:当 message 工具调用绑定在当前会话时,发送目标会受限,避免跨上下文泄露。
4.7 cron(网关定时器)
cron 是 Gateway 的调度器。
- action:
status,list,add,update,remove,run,runs,wake - 关键概念:job = schedule + payload + delivery
详细见第 5 节。
4.8 gateway(网关控制与配置变更)
gateway.restart:触发网关重启gateway.config.get:读取当前配置gateway.config.patch:合并式更新配置gateway.config.apply:全量替换配置gateway.update.run:更新依赖并重启
提示:配置严格校验,未知字段可能导致 Gateway 起不来,所以改动要有计划。
4.9 sessions_*(会话工具)
来源: https://docs.openclaw.ai/concepts/session-tool
工具集合:
sessions_list:列出会话sessions_history:拉取会话消息sessions_send:向另一个会话发送消息并可等待结果sessions_spawn:启动子智能体(isolated session),完成后可回投递
重要约定:主会话 key 始终是字面量 main。
4.10 pdf(PDF 分析)
pdf 工具用于读 PDF 并做抽取或分析,适合和 SummarizerX 类似的工作流结合。
5. 自动化:Cron jobs 深入
来源: https://docs.openclaw.ai/automation/cron-jobs
Cron 的价值是把“准时发生的事”交给 Gateway,智能体只负责生成和执行逻辑。
5.1 两种执行方式
- Main session job
sessionTarget: "main"payload.kind: "systemEvent"- 本质是往主会话塞一个系统事件,等下一次 heartbeat 执行。
- Isolated job
sessionTarget: "isolated"payload.kind: "agentTurn"- 每次 run 是独立回合,默认可配置 delivery,把结果投递回聊天。
5.2 schedule 三种形态
at:一次性,schedule.at为 ISO8601every:固定间隔,schedule.everyMs毫秒cron:cron 表达式,schedule.expr,可选schedule.tz
5.3 delivery 交付方式
delivery.mode: "announce"直接投递到渠道delivery.mode: "webhook"POST 到delivery.todelivery.mode: "none"不投递
5.4 cron.add 例子(工具调用形态)
一次性提醒,走 main session:
{
"name": "Reminder",
"schedule": { "kind": "at", "at": "2026-02-01T16:00:00Z" },
"sessionTarget": "main",
"wakeMode": "now",
"payload": { "kind": "systemEvent", "text": "Reminder text" },
"deleteAfterRun": true
}
周期任务,走 isolated 并投递:
{
"name": "Morning brief",
"schedule": { "kind": "cron", "expr": "0 7 * * *", "tz": "America/Los_Angeles" },
"sessionTarget": "isolated",
"wakeMode": "next-heartbeat",
"payload": {
"kind": "agentTurn",
"message": "Summarize overnight updates.",
"lightContext": true
},
"delivery": {
"mode": "announce",
"channel": "slack",
"to": "channel:C1234567890",
"bestEffort": true
}
}
6. 配置:openclaw.json 的关键字段
来源: https://docs.openclaw.ai/gateway/configuration
6.1 配置文件与格式
- 路径:
~/.openclaw/openclaw.json - 格式:JSON5(支持注释与尾逗号)
- 校验:严格 schema 校验,字段错了可能导致 Gateway 拒绝启动
6.2 常见配置任务
- channels 连接与访问控制:
channels.<provider> - 模型与 fallback:
agents.defaults.model.primary与fallbacks - 会话策略:
session.* - 工具策略:
tools.* - 自动化:
cron.*,hooks.*,agents.defaults.heartbeat.*
6.3 热加载
配置文件变化通常可热应用,部分 gateway 级别字段可能需要重启。文档里提供了 reload mode:hybrid, hot, restart, off。
7. 数据结构速查(JSON Shape Cheatsheet)
下面把文档里最实用的“结构体”整理成便于复制的形态。
7.1 Tool policy(工具策略)
{
tools: {
profile: "coding",
allow: ["group:fs", "group:web"],
deny: ["browser"],
byProvider: {
"openai/gpt-5.2": { allow: ["group:fs", "sessions_list"] },
},
},
}
7.2 sessions_list 返回行(Row shape)
{
"key": "main",
"kind": "main",
"channel": "telegram",
"displayName": "...",
"updatedAt": 1710000000000,
"sessionId": "...",
"model": "...",
"contextTokens": 0,
"totalTokens": 0,
"thinkingLevel": "low",
"sendPolicy": "allow",
"lastChannel": "telegram",
"lastTo": "884672457",
"deliveryContext": { "channel": "telegram", "to": "884672457", "accountId": "default" }
}
7.3 sessions_send 参数
{
"sessionKey": "main",
"message": "...",
"timeoutSeconds": 30
}
7.4 cron job 核心结构
{
"name": "...",
"schedule": { "kind": "cron", "expr": "0 7 * * *", "tz": "America/Los_Angeles" },
"sessionTarget": "isolated",
"wakeMode": "next-heartbeat",
"payload": { "kind": "agentTurn", "message": "...", "model": "opus", "thinking": "low" },
"delivery": { "mode": "announce", "channel": "telegram", "to": "<chatId>" },
"enabled": true
}
结语
如果你想把这篇笔记升级成“团队可用的 OpenClaw 接入手册”,我建议下一步按你实际要用的能力切两条线写:
- 作为个人助理,重点写 channels, cron, sessions, message。
- 作为工程平台,重点写 tools policy, sandbox, hooks, 以及可观测性与故障排查。