先把这几个词搞懂
- API Key
- 一串像
sk-ant-xxx...的密码。大模型公司靠它认人、计费。OpenClaw 用它替你调用模型。别泄露、别上传 GitHub。 - 终端 / 命令行
- 一个"打字让电脑干活"的黑窗口。Win 叫 PowerShell,Mac/Linux 叫 Terminal。OpenClaw 的命令都在这里敲。
- Node.js
- 一个能跑 JavaScript 的运行时。OpenClaw 是用它写的,所以你得先装它(免费、开源)。
- 端口(如 18789)
- 电脑上程序的"门牌号"。OpenClaw Gateway 默认开在 18789 号门,控制台从这门进出。
- 守护进程 / daemon
- 一直在后台跑的程序。Gateway 就是个守护进程——开机自启、默默常驻。
- WebSocket
- 一种"长连接"网络协议。控制台、手机节点和 Gateway 之间靠它实时通信。
终端怎么打开
PowerShell,右键"以管理员身份运行"。Terminal(终端),回车打开。Ctrl+Alt+T,或应用菜单找 Terminal / Konsole。node --version 回车,能显示版本号说明 Node 装好了。去哪搞一个 API Key
| 提供商 | 注册地 | 特点 |
|---|---|---|
| Anthropic(Claude) | console.anthropic.com | 官方推荐,理解力强 |
| OpenAI | platform.openai.com | GPT 系列 |
| Google(Gemini) | aistudio.google.com | 有免费额度 |
| DeepSeek | platform.deepseek.com | 便宜,国内友好 |
| Ollama(本地) | ollama.com(本机跑) | 免费、离线、需显卡 |
这本册子怎么用
- 1按章节顺序学入门 → 进阶 → 高手 → 自测。每章开头有"学完你能",结尾有"动手实验室"。
- 2动手做,别只看每章实验室的任务都真的去做一遍,看到"预期结果"才算过关。
- 3跟着主线项目走每章末尾的"主线进度"会告诉你,你的私人助手 Molty 现在会什么了。
- 4每章做完点"本章小测"巩固检验;全部学完做最后的总测,80% 以上算通关。
什么是 OpenClaw?
OpenClaw 是一个开源的多渠道 AI Agent 网关——一个常驻的 Gateway 进程,把 WhatsApp、Telegram、Discord、Slack、iMessage 等 30+ 聊天 App 接到一个会调工具、有记忆、能多 Agent 路由的 AI 助手上。由非营利组织 OpenClaw Foundation 开源(MIT),mascot 是太空龙虾 🦞。
它怎么工作?(一图看懂)
和 Claude Code / 普通聊天机器人有啥区别?
| 能力 | 普通 Chatbot | OpenClaw |
|---|---|---|
| 对话 | ✓ | ✓ |
| 执行 Shell / 读写文件 | ✗ | ✓ |
| 控制浏览器 | ✗ | ✓ |
| 多聊天渠道接入 | ✗ | ✓ 30+ |
| 跨会话记忆 | 有限 | ✓ 文件化 |
| 切换任意大模型 | ✗ | ✓ 65+ |
| 多 Agent 隔离路由 | ✗ | ✓ |
| 定时/后台任务 | ✗ | ✓ Cron |
| 数据自托管 | ✗ | ✓ |
学习路线图
动手实验室
前置要求
- Node.js
- 22.22.3+ / 24.15+ / 25.9+(推荐 24)。
node --version检查 - API Key
- 任一模型提供商(Anthropic / OpenAI / Google / DeepSeek …),onboard 时会问
- 内存
- 最低 4GB,推荐 8GB;跑本地大模型需 16GB+ / GPU
- 端口
- 18789(Gateway 默认,仅本机)
按系统安装
- 1装 Node.js 22+官网下载 LTS 安装包,或用
winget install OpenJS.NodeJS.LTS。新手最省事的是直接装 OpenClaw Windows Hub 桌面应用(自带运行时)。 - 2一键安装 OpenClawPowerShell(管理员)
iwr -useb https://openclaw.ai/install.ps1 | iex
- 3(可选)WSL2 方案想用完整 Linux 体验:
wsl --install,进 WSL 后走下面的 Linux 步骤。
- 1装 Node.js(推荐 Homebrew)Terminal
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install node@22
- 2一键安装 OpenClawbash
curl -fsSL https://openclaw.ai/install.sh | bash
- 3或装 macOS 菜单栏 App官方有原生菜单栏伴侣应用,适合不想开终端的用户。
- 1装 Node.js 22+(NodeSource)bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt install -y nodejs
- 2一键安装 OpenClawbash
curl -fsSL https://openclaw.ai/install.sh | bash
- 3(服务器)配 swap + systemd小内存 VPS 建议
sudo fallocate -l 4G /swapfile加 swap;用 systemd 让 Gateway 开机自启、崩溃重启。
引导初始化 & 发第一条消息
- 1运行 onboard 向导bash
openclaw onboard --install-daemon
向导带你:选模型提供商 → 填 API Key → 配 Gateway → 装守护进程。可选步骤可跳过,之后用openclaw configure回来补。 - 2确认 Gateway 在跑bash
openclaw gateway status # 应看到监听 18789
- 3打开控制台发消息bash
openclaw dashboard # 浏览器打开 http://127.0.0.1:18789
在 WebChat 里打一句话,收到 AI 回复 = 成功!🎉
openclaw onboard 引导、openclaw gateway status 验活、openclaw dashboard 发消息。能发能收就算入门成功。动手实验室
openclaw onboard --install-daemon → openclaw dashboard → 网页里打"你好,介绍下你自己"。渠道总览
核心内置 3 个:iMessage、Telegram、WebChat。其余 30+ 都是官方插件,一行命令装:openclaw plugins install @openclaw/<id>,或在 openclaw onboard / openclaw channels add 时按需装。
实战:5 分钟接 Telegram
- 1找 @BotFather 创建机器人Telegram 里搜 BotFather →
/newbot→ 起名 → 拿到123456:ABC-DEF...形式的 token。 - 2写进配置~/.openclaw/openclaw.json
{ "channels": { "telegram": { "enabled": true, "botToken": "123456:ABC-DEF...", "dmPolicy": "pairing" } } } - 3重启 & 私聊bash
openclaw gateway restart
去 Telegram 找你的 bot 发消息。首次会收到配对码(因为 dmPolicy=pairing),在终端openclaw pairing approve批准后即可对话。
DM 访问策略(谁能跟它聊)
| dmPolicy | 行为 | 适用 |
|---|---|---|
pairing(默认) | 陌生人首次发消息收到配对码,需审批 | 推荐 |
allowlist | 只允许 allowFrom 名单里的人 | 固定用户 |
open | 谁都能聊(需 allowFrom:["*"]) | 慎用 |
disabled | 关闭 DM | 只跑群/cron |
:thread:<id> / :topic:<id> 到会话 key。多账号:一个渠道多个号
支持多账号的渠道(WhatsApp/Discord/Telegram/Slack…)用 accountId 区分。每个号可路由到不同 Agent:
openclaw channels login --channel whatsapp --account biz
动手实验室
openclaw gateway restart → 手机私聊它,用配对码 approve。会话(Session)是什么
OpenClaw 把每条入站消息路由到一个会话。会话是上下文 + 历史 + 并发控制的容器。默认 DM 都汇入一个 main 会话,群按群隔离,cron 每次新建。
| 来源 | 会话行为 |
|---|---|
| 私聊 DM | 默认共享 main 会话 |
| 群聊 | 按群隔离 |
| 频道/房间 | 按房间隔离 |
| Cron 定时任务 | 每次运行新建 |
| Webhook | 按 hook 隔离 |
多用户必须开 DM 隔离
{
"session": { "dmScope": "per-channel-peer" }
}dmScope 取值:main(默认共享) / per-peer(按人) / per-channel-peer(按渠道+人,推荐) / per-account-channel-peer(再加账号)。
必会命令(聊天里直接打)
| 命令 | 作用 |
|---|---|
/status | 看上下文占用、当前模型、开关状态 |
/context list | 看注入了哪些文件、各占多少 token |
/context detail | 更细:每个工具 schema、每个 skill 的大小 |
/compact | 把旧历史压缩成摘要,腾出上下文空间 |
/new 或 /reset | 开新会话(/new <model> 顺便切模型) |
/model <ref> | 切换模型 |
/think /fast /verbose | 调思考深度/速度/详尽度 |
/queue steer|followup|interrupt | 运行中再来消息时的队列策略 |
上下文 ≠ 记忆
dmScope。/status 看占用,/compact 腾空间,/new 开新篇。上下文是当下,记忆是持久。动手实验室
/status 看占用 → /context list 看注入 → /compact 压缩 → /new 开新篇。工作区文件全景
每个 Agent 一个工作区(默认 ~/.openclaw/workspace/)。首次会话时这些用户可编辑文件被注入系统提示:
MEMORY.md 要保持精炼,详细内容放 memory/*.md 按需检索。SOUL.md:让 Agent 有性格
这是最该认真写的文件。它决定 Agent 听起来像不像个真人。原则:短 > 长,锋利 > 含糊;放语气/态度/边界,别放流水账/安全政策堆砌。
其他文件速写
- USER.md
- "我叫 XX,前端工程师,偏好 TypeScript,作息晚睡晚起。"——让 Agent 认识你
- IDENTITY.md
- 名字/emoji/一句话定位,比 SOUL 更轻
- AGENTS.md
- 操作规则:"每次改代码前先跑测试"、"提交用 conventional commits"
- TOOLS.md
- 工具使用偏好,不是工具开关(开关在 openclaw.json)
动手实验室
~/.openclaw/workspace/SOUL.md → /new 开新会话试探它。三类记忆文件
记忆工具与检索
- memory_search
- 混合检索(向量语义 + 关键词)。措辞不同也能找到
- memory_get
- 读指定记忆文件或行范围
配了 embedding provider 即可用。默认用 OpenAI embeddings,也支持 Gemini/Voyage/Mistral/Bedrock/Ollama 等。
后端:内置 SQLite(默认,开箱即用)/ QMD(本地+重排)/ Honcho(跨会话用户建模)/ LanceDB。
openclaw memory status # 看索引状态和 provider openclaw memory search "部署相关" # 命令行检索 openclaw memory index --force # 重建索引
自动刷写 & Dreaming
/compact 压缩前,会静默跑一轮提醒 Agent 把重要上下文存盘,防压缩丢信息。可 agents.defaults.compaction.memoryFlush.enabled:false 关闭。动手实验室
/new 开新会话 → 问"我用什么语言、几点起"。provider/model 格式
模型引用统一写 provider/model,例如 anthropic/claude-sonnet-4-6、openai/gpt-5、ollama/qwen3:8b。模型名带斜杠(如 OpenRouter 风格)要带 provider 前缀:openrouter/moonshotai/kimi-k2。
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-sonnet-4-6",
"fallbacks": ["openai/gpt-5.4", "ollama/qwen3:8b"]
}
}
}
}65+ 提供商一览
Failover:主备自动切换
配了 fallbacks 后,主模型请求失败(限流/宕机/超时)会自动按序试备用。还能做鉴权轮转。
/model <ref> 切模型;openclaw models list 看全部可用;openclaw status --usage 看 Anthropic/OpenAI/Codex 等的配额剩余。本地模型:接 Ollama
- 1装 Ollama 并拉模型bash
ollama pull qwen3:8b # 或 llama3.3 / deepseek-r1 等
- 2配 provider(Ollama 默认跑在 11434)~/.openclaw/openclaw.json
{ "models": { "providers": { "ollama": { "baseUrl": "http://127.0.0.1:11434" } } } } - 3混合策略(推荐)日常用云端快模型省钱,深度任务用大模型,离线兜底用本地。靠 failover 串起来。
models.providers.ollama.timeoutSeconds 调高(如 600),否则会被空闲看门狗误杀。provider/model 格式;配 fallbacks 抗故障;本地用 Ollama 注意超时;/model 随时切。动手实验室
openclaw models list 看可用 → 配 fallbacks → /model 切一个试试 →(可选)接 Ollama。内置工具一览
| 类别 | 代表工具 | 用途 |
|---|---|---|
| 运行时 | exec / process / terminal | 跑命令、管进程 |
| 文件 | read / write / edit / apply_patch | 读写改文件 |
| 浏览器 | browser | 自动化网页操作 |
| 网络 | web_search / web_fetch | 搜索、抓取网页 |
| 消息 | message | 发回复/渠道动作 |
| 媒体 | image / image_generate / tts | 看图、生图、配音 |
| 自动化 | cron / heartbeat_respond | 定时、心跳 |
| 会话 | sessions_* / subagents | 委派、编排、查状态 |
工具策略:allow / deny
{
"agents": {
"entries": {
"family": {
"tools": {
"allow": ["read", "exec", "sessions_list"],
"deny": ["write", "edit", "browser", "cron"]
}
}
}
}
}tools.allow/deny 控的是工具,不是 skill。Exec 审批 & 沙箱
rm/sudo/git push 时先问你(HITL)。渠道有原生按钮就用按钮,否则用 /approve。sandbox.mode: "all" 总是沙箱;scope: "agent" 每 Agent 一个容器。动手实验室
ls)体验 exec → 给危险命令配审批 →(可选)给家庭 Agent 进沙箱。Tools / Skills / Plugins 三层
ClawHub 技能市场(按类筛选)
装/管/写
openclaw skills search 日历 # 搜技能 openclaw skills install @oc/daily # 装 openclaw plugins list # 看已装插件 openclaw plugins install @openclaw/discord
Skills 加载层级(高优先在前):工作区 skills/ → 项目 .agents/skills → 个人 ~/.agents/skills → 托管 ~/.openclaw/skills → 内置。Skill 用 frontmatter 的 flat name 暴露,放嵌套目录只是组织。
动手实验室
openclaw skills search/install 装一个技能 → 在工作区 skills/ 下写一个最小 SKILL.md(如"代码审查")→ 试用它。四种自动化手段
实战:每天早 8 点发日报
openclaw cron add \ --name "早报" \ --schedule "0 8 * * *" \ --prompt "给我今天的日历、天气、待办和重要新闻简报" \ --channel telegram
openclaw cron list/run/rm/enable/disable 管理。重要:让 Agent 干"以后的事"(提醒、轮询)用 cron,别让它 exec sleep 死循环——系统提示词已明确这么引导。常用插件 Hook
| Hook | 触发时机 |
|---|---|
before_prompt_build | 组装提示词前,注入上下文 |
before_tool_call | 调工具前,可拦截/改参数 |
agent_end | 一轮结束,拿到最终消息 |
message_received/sent | 收/发消息时 |
session_start/end | 会话边界 |
动手实验室
openclaw cron add 一个"每天早 8 点发简报"(日历/天气/待办)的任务到你的 Telegram。三层概念
- agentId
- 一个"大脑"——独立工作区 + agentDir + 会话库 + 人格
- accountId
- 一个渠道账号实例(如 WhatsApp 的 personal / biz 两个号)
- binding
- 把 (渠道, 账号, peer) 路由到某个 agentId
openclaw agents add work --workspace ~/.openclaw/workspace-work。每个 Agent 独立人格、独立记忆、独立工具策略。路由优先级(最具体胜出)
同 tier 内按配置顺序,第一个匹配的赢。binding 里写了多个 match 字段要全部满足(AND)。
典型玩法
{
"agents": {
"list": [
{ "id": "chat", "workspace": "~/.openclaw/workspace-chat",
"model": { "primary": "anthropic/claude-sonnet-4-6" } },
{ "id": "deep", "workspace": "~/.openclaw/workspace-deep",
"model": { "primary": "anthropic/claude-opus-4-6" } }
]
},
"bindings": [
{ "agentId": "chat", "match": { "channel": "whatsapp", "accountId": "*" } },
{ "agentId": "deep", "match": { "channel": "telegram", "accountId": "*" } }
]
}动手实验室
openclaw agents add work → 配一个工作助手(不同人格/模型)→ binding 把某渠道/群路由给它。配置体系
配置在 ~/.openclaw/openclaw.json(JSON5,支持注释)。严格校验——未知键/类型错 Gateway 直接拒启,只有诊断命令可用。
- 改配置
openclaw onboard/openclaw configure/openclaw config get|set|unset/ 网页 Config 标签 / 直接编辑- 热重载
- 改文件自动生效;校验失败则保留旧配置,错误存
.rejected.<ts> - 修复
openclaw doctor --fix诊断+修复,保留 last-known-good- 两桶规则
- 根级放基础设施,
agents.defaults放 Agent 行为
远程访问(别裸暴露端口)
ssh -N -L 18789:127.0.0.1:18789 user@gateway-host
或用 Tailscale 组私有网络,更省心。远程仍需握手 + auth token。
Docker 部署
services:
openclaw:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw
restart: unless-stopped
ports:
- "127.0.0.1:18789:18789" # 只绑本机!
volumes:
- ./data:/root/.openclaw # 持久化配置/工作区/会话
environment:
- TZ=Asia/Shanghaigateway.auth 开共享密钥或 Tailscale 鉴权,别用 mode:"none" 暴露公网。移动节点 & 多平台
openclaw dashboard 打开。动手实验室
① 写一个自己的 Skill
Skill 就是一个 SKILL.md 指令包:frontmatter(名字、描述、触发场景)+ 正文步骤。Agent 在匹配场景时按需 read 它,照着干。
---
name: code-review
description: 审查 Git 改动,给出可执行的改进建议。在用户提交 PR 或说"review 一下"时使用。
---
# 代码审查流程
1. 先跑 git diff 看全部改动
2. 按风险排序:安全 > 数据丢失 > 逻辑 > 风格
3. 每条问题给:文件:行号 + 问题 + 具体改法
4. 别啰嗦风格问题,除非会引发 bug
5. 最后一句总评:能不能合并skills/<名字>/SKILL.md 即自动加载(无需重启)。Agent 在系统提示里看到它的"名字+描述+路径",用到时自己 read 全文。② 用 Sub-agents / Swarm 编排多任务
一个大任务拆成几个独立子任务并行干(如:调研 + 实现 + 验证),用 sessions_spawn 派子 agent——它是推式完成,干完自动回来汇报,不用你轮询。
agents.defaults.subagents.delegationMode 设 "prefer" 可让主 agent 更倾向委派。帮我调研 3 个竞品的功能、同时实现一个 demo 页面、再写测试。 三个子任务并行,完成后汇总结果给我。
③ 写一个最小插件
插件能加工具 / 渠道 / 模型 provider / Hook。比 Skill 更底层——Skill 是提示词,插件是真代码。
openclaw plugins init my-plugin # 生成脚手架
# 在 src/index.ts 里:
# api.registerTool("hello", { ...schema }, async (params) => {
# return { text: "你好," + params.name };
# });
openclaw plugins build
openclaw plugins install ./dist # 装本地包manifest(声明提供哪些工具/钩子)+ 代码组成。详见官方 plugins/sdk-overview、plugins/building-plugins。④ 读懂 Gateway 协议
想写自己的客户端、做深度集成,得懂协议底层:
- 传输
- WebSocket(默认 127.0.0.1:18789),文本帧 + JSON
- 握手
- 第一帧必须是
connect,含设备身份 + auth;否则直接断 - 三类帧
req→res(请求响应)、event(服务端推送:agent/chat/presence/health…)- 校验
- TypeBox 定义 schema → 生成 JSON Schema → 生成 Swift 模型
- 幂等
send/agent需带幂等 key,便于安全重试
⑤ Prompt Caching 省钱
动手实验室
doctor --fix → 写一个自己的 Skill →(进阶)用 sub-agents 编排一个多步任务。必背命令速查
| 命令 | 作用 |
|---|---|
openclaw onboard | 引导初始化 |
openclaw gateway status|start|stop|restart | 管 Gateway |
openclaw status | 总览:会话、模型、健康 |
openclaw doctor [--fix] | 诊断 / 自动修复 |
openclaw config get|set|unset <path> | 读写配置 |
openclaw agents list --bindings | 看 Agent 和路由 |
openclaw channels status --probe | 渠道连通性 |
openclaw sessions --json | 看所有会话 |
openclaw models list|set|fallbacks | 管模型 |
openclaw skills|plugins ... | 管技能/插件 |
openclaw cron|tasks ... | 管定时/任务 |
openclaw logs | 看日志 |
openclaw backup create|verify | 备份 |
openclaw update | 升级 |
--dev(隔离到 ~/.openclaw-dev)、--profile <name>(多实例)、--container <name>(在容器里跑)、--json(机器可读输出)。常见问题速答
openclaw doctor 看具体错误,openclaw doctor --fix 自动修复,会回退到 last-known-good。openclaw status 看配额,openclaw models auth 重登,或配 fallbacks 自动切备用。models.providers.ollama.timeoutSeconds(如 600),并保证 agent 运行时超时不低于它。openclaw sessions cleanup。session.dmScope: "per-channel-peer" 后重启。openclaw channels status --probe 查连通;检查 token/允许名单;openclaw logs 看入站事件。进阶:诊断与可观测
openclaw audit 看操作溯源,不含 prompt/消息/工具参数。可观测:支持 OpenTelemetry、Prometheus 指标导出。自测验收(点选项即出答案)
覆盖入门 / 进阶 / 精通三档,答完看总分。题库可持续扩充(改 QUIZ 数组即可)。