OpenClaw
# OpenClaw
项目地址:https://github.com/openclaw/openclaw (opens new window)
官网地址:https://openclaws.io/zh/ (opens new window)
文档测试机器: Apple Mac mini/M1/16GB
# 介绍
OpenClaw 是开源、可本地部署的 AI 助手/Agent 平台,支持多系统、多入口。不是你聊一句它回一句的“聊天机器人”,而是把对话入口(各种 Channel)和“能真干活”的执行层(Tools + 多模型)接到一起的编排运行时。2025 年底开源后热度很高,适合当“自己的私人 Agent 中枢”,前提是理解其安全边界(见下风险节)。
# 本质
- 定位:基础设施/编排层,不是模型层。模型负责“决定做什么”(推理、规划、选工具),OpenClaw 负责“在哪儿接消息、怎么路由、谁可以执行、执行什么、结果怎么回”。
- 一句话:多入口、单内核(multi-ingress, single-kernel)——不管从 Telegram、Discord、Web UI 还是 Webhook 进来,都走同一套 Gateway → Agent → Tools,会话用
sessionKey隔离,执行用同一套策略(沙箱/审批/权限)。 - 和 Cursor/Claude Code 的区别:后者偏“IDE 内 + 单会话”;OpenClaw 偏“多端接入 + 多会话 + 可插 Skill”,更像自建 Agent 中台。
# 功能概览
| 层面 | 能力 |
|---|---|
| 入口(Channels) | WhatsApp / Telegram / Discord / Slack / Web UI / Webhook / Cron 等,消息统一进 Gateway |
| 控制面(Gateway) | 会话路由、并发(lane/queue)、认证、WebSocket/HTTP API、事件广播 |
| 执行面(Agent) | Agentic loop:收消息 → 组上下文 → 调模型 → 调工具 → 流式输出 → 持久化会话 |
| 能力层 | Providers:多模型 + failover(Claude/GPT/Gemini/Ollama/自建等);Tools:Shell、浏览器、HTTP、文件、邮件、日历等;Skills:可插拔扩展(ClawHub 等) |
| 数据与安全 | 会话 JSONL 持久化、日志与审计、沙箱/工具策略/审批、谁可连(token/pairing) |
开发者视角:你装一个 Gateway,配好模型和 Skill,就能从多个端(包括自己写的客户端)发任务,由同一个 Agent 在本机或受控环境里执行,结果再通过对应 Channel 回给你。
# 工作原理(数据流)
整体是 ingress → control plane → execution,一条消息的路径大致如下:
- Ingress:某 Channel 收到消息(或 Webhook/Cron 触发),按账号/群/线程等生成
sessionKey,避免跨会话串话。 - 路由:Gateway 按
sessionKey把消息丢进对应会话队列;同 session 串行,不同 session 可并行。 - Control plane:Gateway 协调会话、鉴权、把“待处理”交给执行面,并对外暴露 WS/HTTP、广播事件(方便 Control UI 观测)。
- Execution:Agent 取到消息后进入 agentic loop:组上下文(含历史)→ 调 Provider 拿模型输出 → 若含 tool call 则交给 Tools 层执行(Shell/浏览器/API 等)→ 结果再喂回模型,直到模型产出最终回复或结束。
- Egress:最终回复经 Channel 回给用户;会话状态(含本轮)持久化到 JSONL。
排查时可在 Control UI 或日志里按同一 runId 跟完上述几步;安全上要同时看 ingress 边界(谁可连)、执行边界(沙箱/工具策略/审批)、以及审计(日志别漏敏感信息)。
# 风险
- 基础设计偏“实验性”,默认不安全
- 默认网关开放 + 默认弱/无认证,等价于在本机挂一个“能执行任意命令的 HTTP 代理”。
- Web UI 支持通过
gatewayUrl等参数自动连接,如果被钓鱼页面劫持(XSS / 恶意跳转),有远程命令被代为执行的风险。
- 远程代码执行(RCE)相关 CVE 披露
- 2026 年前后社区披露过多起严重漏洞(含一键 RCE / WebSocket 劫持等),部分标注为高危 CVSS(8.x+)。
- 结论:不要把 OpenClaw 面向公网暴露,也不要直接跑在生产服务器上当“自动运维工具”。
- 技能(Skill)生态存在恶意包
- 第三方 Skill 具备“代码执行 + 网络访问”能力,本质上和安装随机 npm/py 包没差。
- 安装前至少看仓库 Star / 提交记录 / 代码结构,能自己过一眼核心逻辑更好。
- 系统权限过大
- 给到主机文件、Shell、SSH、云 API 等权限时,要当作“给另一个有完整 root/管理员权限的人”在本机操作。
- 建议:日常只给最低权限(只读代码仓库 + 只读配置),需要高危操作时再临时提权。
- 个人规避策略(自用准则)
- 只在本机 / 内网环境使用,网关端口不暴露公网,不穿透。
- 尽量跑在隔离环境:本地 VM / Docker / 专门用户;重要 SSH key、云凭证不要放同一环境。
- 所有 Skill 默认不信任,遇到“自动修改生产资源”的一律关掉;涉及删库/销毁资源的操作必须人工二次确认。
- 把 OpenClaw 当作“高级脚本生成器 + 本地助手”,而不是“全自动 Agent 托管生产系统”。
# 安装
以下以 macOS + 本地开发环境 为例,仅记录自己使用的最小可用路径,具体以官方文档为准。
# 依赖
- Node.js 20+(推荐使用
fnm/nvm管理) - Python 3.10+(如需 Python 相关 Skill)
- Docker(可选,用来跑隔离的代理 / 工具)
# 基本安装流程
# 方式一:源码克隆(开发/贡献)
适合需要改源码、调试或参与贡献时使用。
# 1. 克隆仓库
git clone https://github.com/openclaw/openclaw.git
cd openclaw
# 2. 安装依赖
pnpm install # 或 yarn / npm,按官方推荐
# 3.(可选)复制示例配置
cp .env.example .env.local
2
3
4
5
6
7
8
9
# 方式二:官方一键脚本(推荐日常使用)
自动安装 Node.js、Python 和 OpenClaw CLI,适合本机快速体验。
- macOS / Linux:
curl -sSL https://openclaw.ai/install.sh | bash1 - Windows(PowerShell):
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag beta1
安装完成后运行 openclaw onboard --install-daemon 按向导完成配置(API Key、Channel、可选 Skill)。
# 方式三:npm / pnpm 全局安装
需已安装 Node.js 22+。
# 任选其一
npm install -g openclaw@latest
# 或
pnpm add -g openclaw@latest
# 首次配置(API Key、Channel、守护进程等)
openclaw onboard --install-daemon
2
3
4
5
6
7
# 方式四:Docker
若官方提供镜像,可容器化部署,便于隔离与迁移。具体镜像名、端口映射以 官方文档 (opens new window) 为准;卸载示例:docker rm -f openclaw。
# Ollama 适配
用 Ollama 跑本地模型时,无需云端 API Key,数据不出本机,适合隐私或离线场景。
前置条件
- 安装 Ollama (opens new window),并拉取所需模型,例如:
ollama pull llama3.2 ollama pull qwen2.5:7b1
2 - 确认 Ollama 服务可访问:本机一般为
http://127.0.0.1:11434,可用curl http://127.0.0.1:11434/api/tags检查。
OpenClaw 侧配置
- 在
~/.config/openclaw/openclaw.json5(或~/.openclaw/openclaw.json)的models.providers中增加:"ollama": { "baseUrl": "http://127.0.0.1:11434/v1", "api": "openai-responses" }1
2
3
4 - 必须 设置
"api": "openai-responses",否则容易出现 0 tokens / 无响应。 - 设默认模型为 Ollama 模型:
openclaw models set ollama/llama3.2 openclaw gateway restart1
2
Docker 内访问本机 Ollama
若 OpenClaw 跑在 Docker 里、Ollama 跑在宿主机,baseUrl 需指向宿主机:
- Mac/Windows Docker Desktop:
http://host.docker.internal:11434/v1 - Linux:可用
--add-host=host.docker.internal:host-gateway或宿主机实际 IP,例如http://172.17.0.1:11434/v1
常见问题
- 0 tokens / 无回复:检查是否已设
"api": "openai-responses",并确认 Ollama 版本较新、模型已成功拉取。 - 连接超时:防火墙或 Docker 网络是否放行 11434 端口;容器内用
host.docker.internal或宿主机 IP。
# 本地只开本机访问
# 网关绑定 127.0.0.1,避免意外暴露局域网/公网
OPENCLAW_GATEWAY_HOST=127.0.0.1 \
OPENCLAW_GATEWAY_PORT=8288 \
pnpm dev
2
3
4
浏览器访问:http://localhost:xxxx(按实际配置),确认仅自己机器可访问。
# 彻底卸载与清理
以下按顺序执行,可移除主程序并清空所有相关数据与配置;若只打算「保留数据、仅卸 CLI」,可只做「步骤 1 + 步骤 2」。
步骤 1:停止所有服务
# 若曾用 onboard 安装过守护进程,先停掉
openclaw daemon stop
# 若曾用 gateway install 装成系统服务,先卸载服务再停
openclaw gateway uninstall
# 或仅停止:openclaw gateway stop
2
3
4
5
6
确认本机没有 openclaw 相关进程(如网关、UI)在跑,必要时 kill 残留进程或重启后再做步骤 2。
步骤 2:卸载主程序(按你的安装方式选一种)
| 安装方式 | 操作 |
|---|---|
| npm 全局 | npm uninstall -g openclaw |
| pnpm 全局 | pnpm remove -g openclaw |
| 一键脚本 | 同上,脚本本质也是装全局 CLI,用对应包管理器卸 |
| 仅源码运行 | 无需卸包,直接删源码目录(见步骤 3 末尾) |
步骤 3:删除数据与配置目录
数据与配置可能分布在两处,建议都检查并删除:
- 默认数据目录(会话、技能、日志、soul.md、.env 等)
- macOS/Linux:
rm -rf ~/.openclaw - Windows:在资源管理器中删除
%USERPROFILE%\.openclaw,或在 PowerShell 中:Remove-Item -Recurse -Force $env:USERPROFILE\.openclaw
- macOS/Linux:
- XDG 配置目录(部分版本把 openclaw.json5 放这里)
- macOS/Linux:
rm -rf ~/.config/openclaw - Windows:删除
%APPDATA%\openclaw或%USERPROFILE%\.config\openclaw(若存在)
- macOS/Linux:
若你设置过 OPENCLAW_HOME,数据实际在 $OPENCLAW_HOME(或 %OPENCLAW_HOME%)下,请同样删除该目录。
步骤 4:Docker 部署的清理
若 OpenClaw 是跑在容器里的:
docker rm -f openclaw # 容器名以你实际为准,如 openclaw-gateway
docker rmi openclaw # 需要时再删镜像
docker volume ls # 若有挂载的 volume,用 docker volume rm <name> 删除
2
3
步骤 5:源码克隆方式的额外清理
若曾用「方式一」在本地克隆过仓库并跑过:
- 直接删掉整个克隆目录即可(内含
node_modules、.env.local等),例如:
rm -rf /path/to/openclaw
验证
which openclaw(Windows 下为where openclaw)应无输出或报错。- 再次安装时不会读到旧配置与数据,等同于全新环境。
删除
~/.openclaw会丢失会话历史、已装 Skill、soul.md 及本地配置;若有需要请先备份再删。
# 配置
这里只记个人使用时关注的最小配置项,完整字段参考官方文档。
# 环境变量(示例思路)
- 网关与 UI 安全相关
OPENCLAW_GATEWAY_HOST=127.0.0.1:强制只监听本机。OPENCLAW_UI_ORIGIN=http://localhost:xxxx:限制 Web UI 来源。
- 日志与审计
- 开启详细日志,方便出问题时回溯(但注意不要在日志里输出密钥)。
- 模型与 API Key
- LLM / 向量库等 API Key 统一集中在
.env.local或系统密钥管理中,不要硬编码到 Skill 里。
- LLM / 向量库等 API Key 统一集中在
# 模型切换与多 Provider
- 配置位置:
~/.config/openclaw/openclaw.json5或~/.openclaw/openclaw.json(因版本/安装方式而异,以官方文档为准)。 - 快速改默认模型:改完后一般要
openclaw models set anthropic/claude-sonnet-4-20250514 openclaw models set openai/gpt-4o openclaw models set ollama/llama3.2 # 本地 Ollama1
2
3openclaw gateway restart才生效。 - 交互式配置:
openclaw configure或openclaw onboard,按提示选 provider、填 API Key。 - 配置结构(思路):
{ "models": { "defaults": { "provider": "anthropic", "model": "claude-sonnet-4-20250514" }, "providers": { "anthropic": { "apiKey": "$ANTHROPIC_API_KEY" }, "openai": { "apiKey": "$OPENAI_API_KEY" }, "ollama": { "baseUrl": "http://127.0.0.1:11434/v1", "api": "openai-responses" } } }, "agents": { "defaults": { "model": { "primary": "anthropic/claude-sonnet-4-20250514", "fallbacks": ["openai/gpt-4o"] } } } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 - Ollama 注意:必须设
"api": "openai-responses",否则容易 0 tokens / 无响应;Docker 里用http://host.docker.internal:11434/v1。 - 多 Provider:支持 Anthropic、OpenAI、Google Gemini、vLLM、AWS Bedrock、Ollama 等;自定义需
baseUrl+apiKey。
# 权限划分建议
- 单独创建系统用户(如
openclaw),只给到代码目录读写权限。 - 高危目录(
~/.ssh、生产 kubeconfig、云 CLI 配置等)尽量不让该用户直接访问。 - 对接外部系统时,优先使用“最小权限的专用账号”,不要共用个人高权限凭证。
# 控制台命令(CLI)
常用的一坨,详细
openclaw --help/ 官方 CLI 文档。
# Gateway
openclaw gateway # 前台跑网关(默认端口多为 18789)
openclaw gateway run # 同上
openclaw gateway --port 8288 --bind 127.0.0.1 # 指定端口 + 只监听本机
openclaw gateway health # 健康检查
openclaw gateway status # 服务状态 + 可选 RPC 探测
openclaw gateway probe # 探测本机/远程网关(含 --ssh user@host)
openclaw gateway install # 装成系统服务
openclaw gateway start|stop|restart|uninstall
2
3
4
5
6
7
8
9
10
常用选项:--verbose 打日志,--force 杀占口进程再起,--password/--token 覆盖认证(别在命令行长期写密码)。
# Models
openclaw models status # 当前默认/fallback + 各 provider 认证概览
openclaw models list # 可用模型列表
openclaw models set <provider/model> # 设默认模型
openclaw models scan # 扫描/刷新模型
openclaw models auth add # 添加认证
openclaw models auth login --provider <id>
2
3
4
5
6
改配置或改默认模型后,一般要 openclaw gateway restart。
# 会话内快捷(Web UI / 终端会话)
/model— 打开模型选择器/model list— 列出可选模型/model <编号>— 按编号切/model openai/gpt-4o— 按 provider/model 切/model status— 当前模型详情
# 使用
仅记录个人顺手的使用方式,偏“人肉控制的 Agent”,而不是全自动编排。
# 基本工作流
- 在本地启动网关与 UI。
- 在当前项目根目录运行代理/工具,让 OpenClaw 对当前仓库有上下文。
- 在 Web UI 里:
- 明确写清“项目结构 + 当前目标 + 约束”;
- 控制粒度:一次只让它完成 1 个小任务(函数/模块级),方便 review。
- 所有涉及写文件 / git 操作的建议必须先过一眼 diff,再决定是否接受。
# 和 Cursor / 其它工具的配合
- OpenClaw 更像是“跨项目 / 跨资源的自动化脚本 + Agent 中枢”;
- Cursor 偏 IDE 内代码编辑器 + 代码理解;
- 实际使用时可以:
- 让 OpenClaw 帮忙跑脚本、调度外部服务;
- 在 Cursor 里做最后的代码修改和 review,避免 OpenClaw 直接改大仓库。
# 训练
目前官方能力变化比较快,这里只写通用思路,实际接口以最新文档为准。
- 将“任务拆分 + 约束 + 外部系统交互”抽象为 Skill,尽量做成可复用的组合块。
- Skill 内只放必要的业务逻辑,把模型 Prompt 单独抽出来,方便迭代。
- 对每个 Skill 建最小集的单测 / 集成测试,至少覆盖“误删 / 误操作”的边界。
- 高危操作(删库、销毁资源、批量变更)必须内置“dry-run 模式 + 人工确认开关”。
# SKILL
# 推荐与来源
- ClawHub:官方/社区技能仓库(https://clawhub.ai (opens new window) 等),数量多,安装前看 Star、更新日期、源码再装。
- 安装方式:或通过 Web 一键安装;Skill 按需加载,装多了不会拖慢简单请求。
clawhub search "关键词" clawhub install <skill-name>1
2
# 推荐方向(自用备忘)
- 自动分配模型 / 按任务选模型:
用「按复杂度路由到不同模型」的 Skill,可省成本(简单任务走便宜模型,复杂再上 Claude/GPT-4)。- 例如:
model-hierarchy-skill(zscole/model-hierarchy-skill (opens new window))、openclaw-model-router、intelligent-router、smart-router等,思路都是把任务分档(简单/中等/复杂/推理/关键),再配 primary + fallbacks。 - 配置好 fallback 链后,主模型不可用时会自动切备用;装前看 SKILL.md 和配置项,确认支持的 provider。
- 例如:
- Web 搜索:Brave Search 等集成,查实时信息、文档、报错用,建议装一个。
- 其它:按需选(图生、Gmail、日历、GitHub PR 等),一律当不可信插件,最小权限。
# 自建与审查原则
- 给自己写的 Skill 起清晰的命名和说明,方便以后回头看:
xxx-audit-*:只读、审计类,默认安全。xxx-ops-*:运维变更类,要额外小心。
- 每次引入第三方 Skill 前,至少做:
- 快速过一遍代码里是否有
rm -rf/DROP TABLE/ 大范围写文件等; - 检查是否把云凭证、数据库密码等写死在代码里。
- 快速过一遍代码里是否有
- 原则:把所有 Skill 当作“不受信任插件”,只给到完成当前任务所需的最小权限。