基于 OpenClaw 官方文档整理的结构化教学文档
版本:2026.3.1
更新日期:2026-03-01
- OpenClaw 简介
- 快速开始
- 核心概念
- 功能特性
- 聊天频道
- 架构原理
- 工具系统
- 实战案例
- 高级配置
- 故障排查
OpenClaw 是一个自托管的网关服务,将你常用的聊天应用(WhatsApp、Telegram、Discord、iMessage 等)连接到 AI 编程助手(如 Claude)。
- ✅ 自托管:运行在你自己的硬件上,数据完全掌控
- ✅ 多频道支持:一个网关同时服务 WhatsApp、Telegram、Discord、iMessage 等
- ✅ Agent 原生:专为 AI Agent 设计,支持工具使用、会话管理、记忆、多 Agent 路由
- ✅ 开源:MIT 许可证,社区驱动
- ✅ 5 分钟上手:Node 22+、API key(推荐 Anthropic)
- 🛠️ 开发者:需要个人 AI 助手,不依赖托管服务
- 👨💻 高级用户:希望掌控自己的数据和工作流
- 🏢 团队协作:多成员、多频道的统一管理
| 要求 | 说明 |
|---|---|
| Node.js | 22+ |
| API Key | Anthropic 推荐 |
| 操作系统 | macOS、Linux、Windows (WSL2) |
| 时间 | 约 5 分钟 |
# macOS/Linux curl -fsSL https://openclaw.ai/install.sh | bash # Windows (PowerShell) iwr -useb https://openclaw.ai/install.ps1 openclaw | iex
openclaw onboard --install-daemon
向导会自动配置:
- ✅ 认证(API Key)
- ✅ 网关设置
- ✅ 可选频道
openclaw gateway status
# 启动 Dashboard openclaw dashboard # 或直接访问 open http://127.0.0.1:18789
运行以下命令验证:
# 检查版本 openclaw --version # 检查状态 openclaw status # 发送测试消息 openclaw message send --target + --message "Hello OpenClaw!"
Gateway 是 OpenClaw 的核心组件,负责:
- 🔗 连接聊天应用(WhatsApp、Telegram、Discord 等)
- 📡 消息路由
- 🔧 管理会话、工具调用
- 🚀 提供统一的 WebSocket API
Session 是一次对话的上下文:
- 📝 每个 Session 有独立的上下文
- 🔄 同一会话内的消息会共享上下文
- 💾 会话结束后自动归档
- 🏢 Groups(群组)中的会话相互隔离
Agent 是 AI 助手的执行者:
- 🤖 可以使用工具(文件操作、网络请求、浏览器等)
- 🎯 有明确的任务和权限
- 🔄 支持多 Agent 协作
- 🧠 可以有不同的能力和配置
Memory 提供持久化的上下文存储:
- 📚 可以跨会话保留信息
- 🔍 支持语义搜索
- 💾 分为长期记忆和短期记忆
OpenClaw 使用 WebSocket 进行所有通信:
- 📡 客户端 → Gateway:发送请求
- 📡 Gateway → 客户端:返回响应
- 🔐 通过 auth token 验证
- 📦 JSON 格式消息
| 功能 | 说明 |
|---|---|
| 多频道支持 | WhatsApp、Telegram、Discord、iMessage 等 |
| 消息路由 | 智能路由到正确的会话 |
| 媒体支持 | 图片、音频、文档的收发 |
| 多 Agent 路由 | 按工作区或发送者隔离会话 |
| 分组支持 | 群聊隔离,mention 激活 |
| 流式输出 | 长回复的分块传输 |
| 重试策略 | 网络中断自动重试 |
| 命令队列 | 异步任务管理 |
| 功能 | 说明 |
|---|---|
| 设备配对 | 设备注册 + 批准 |
| Allowlist 控制 | 指定允许的联系人和群组 |
| Group 限制 | 群聊需要 mention 才能激活 |
| 会话隔离 | Groups 会话完全隔离 |
| OAuth 认证 | Anthropic、OpenAI 的官方认证 |
| 频道 | 协议 | 特点 | 配置难度 |
|---|---|---|---|
| Baileys Web | 最流行,支持媒体 | ⭐⭐⭐ 需 QR 配对 | |
| Telegram | Bot API (grammY) | 支持群组、频道 | ⭐⭐ 简单(Bot Token) |
| Discord | Discord Bot API | 支持服务器、频道 | ⭐⭐ 中等(Bot 配置) |
| Signal | signal-cli | 注重隐私 | ⭐⭐⭐⭐ 复杂 |
| iMessage | imsg CLI (macOS) | 本地集成 | ⭐⭐⭐⭐ macOS 专用 |
| 频道 | 协议 | 特点 | 配置难度 |
|---|---|---|---|
| Slack | Bolt SDK | 企业支持 | ⭐⭐⭐⭐ Bot 配置 |
| Mattermost | Bot API + WebSocket | 开源替代 | ⭐⭐⭐⭐ 插件 |
| Microsoft Teams | Bot Framework | 企业级 | ⭐⭐⭐⭐⭐ Bot 配置 |
| Feishu | Lark Bot (WebSocket) | 企业协作 | ⭐⭐ 简单 |
- IRC、LINE、Matrix、Nextcloud Talk、Nostr、Twitch 等
# 方法 1:使用向导(推荐) openclaw onboard # 方法 2:手动配置 # 1. 生成 Gateway token openclaw gateway create-token # 2. 在手机上配对 # 扫描二维码或输入配对代码 # 3. 测试连接 openclaw message send --target + --message "Test"
# 1. 创建 Bot # 访问 @BotFather,创建新 Bot # 2. 获取 Token # 复制 Bot Token # 3. 配置 OpenClaw openclaw configure --channel telegram \ --token "your-bot-token-here" \ --allow-from "+" # 4. 测试 openclaw message send --channel telegram --message "Hello Telegram!"
# 1. 创建 Bot 和应用 # 访问 Discord Developer Portal # 2. 获取 Bot Token 和 Client ID # 3. 配置 OpenClaw openclaw configure --channel discord \ --bot-token "your-bot-token" \ --client-id "your-client-id" \ --client-secret "your-client-secret" # 4. 配置 Intents # 需要启用:MESSAGE_CONTENT, MESSAGE_READ, SERVERS # 5. 测试 openclaw message send --channel discord --message "Hello Discord!"
┌─────────────────────────────────────┐ │ Messaging Apps │ │ (WhatsApp/Telegram/Discord) │ └─────────────┬───────────────────┘ │ WebSocket │ ┌─────────▼──────────┐ │ Gateway │ │ (single daemon) │ └─────────┬──────────┘ │ ┌────────▼────────┐ │ Provider APIs │ │ (Anthropic/OpenAI)│ └─────────┬────────┘ │ ┌────────▼──────┐ │ AI Agents │ │ (Claude/GPT) │ └────────────────┘
- 📡 维持 Provider 连接
- 🎯 处理会话和路由
- 🔧 管理工具调用
- 📊 提供健康检查和监控
- 🖥️ macOS App:原生应用,完整功能
- 💻 CLI:命令行工具,自动化友好
- 🌐 WebChat:网页聊天界面
- 📱 iOS/Android Nodes:移动端支持
- 🔐 所有客户端通过 WebSocket 连接到 Gateway
- 📍 默认地址:
127.0.0.1:18789 - 🔒 支持通过 Tailscale/VPN 远程访问
| 工具 | 功能 | 用途 |
|---|---|---|
| read | 读取文件内容 | 配置文件、代码读取 |
| write | 写入文件 | 创建新文件、保存结果 |
| edit | 编辑文件 | 精确替换文件内容 |
| apply_patch | 结构化补丁 | 多文件批量编辑 |
| 工具 | 功能 | 用途 |
|---|---|---|
| sessions_list | 列出会话 | 查看所有活跃会话 |
| sessions_history | 会话历史 | 获取过往消息 |
| sessions_send | 发送消息 | 跨会话通信 |
| sessions_spawn | 创建新会话 | 启动子 Agent |
| session_status | 会话状态 | 检查会话健康度 |
| 工具 | 功能 | 用途 |
|---|---|---|
| memory_search | 语义搜索 | 查找相关记忆 |
| memory_get | 获取记忆 | 读取特定记忆片段 |
| 工具 | 功能 | 用途 |
|---|---|---|
| web_search | 网页搜索 | 使用 Brave 搜索 API |
| web_fetch | 网页提取 | HTML → Markdown |
| 工具 | 功能 | 用途 |
|---|---|---|
| browser | 浏览器控制 | 自动化网页操作 |
| canvas | Canvas 展示 | 可视化展示内容 |
| screenshot | 截图 | 捕获页面状态 |
{ "tools": { "allow": ["read", "write", "browser"], "deny": ["exec"] } }
{ "tools": { "profile": "coding" } }
预定义配置文件:
minimal:仅session_statuscoding:文件系统、运行时、会话、记忆、图片messaging:消息相关工具full:无限制
场景: 通过 WhatsApp 和 Telegram 使用 Claude 进行日常对话
配置步骤:
- 安装 OpenClaw
- 配置 WhatsApp(QR 配对)
- 配置 Telegram(Bot Token)
- 设置 Anthropic API Key
使用效果:
- ✅ 多渠道统一对话
- ✅ 上下文在 WhatsApp 和 Telegram 间共享
- ✅ 支持发送图片、文档
- ✅ 数据完全在本地
场景: 团队使用 Discord 和 Slack 共享一个 AI 助手
配置步骤:
- 配置 Discord Bot
- 配置 Slack App
- 设置 Group 规则:需要 mention 才激活
配置示例:
{ "channels": { "discord": { "groups": { "*": { "requireMention": true } } }, "slack": { "allowFrom": ["U", "U0"] } } }
使用效果:
- ✅ 团队成员通过 Discord 提问机器人
- ✅ Slack 成员通过 allowlist 控制
- ✅ 群聊会话完全隔离
- ✅ 记录完整的使用日志
场景: 不同 Agent 负责不同任务
Agent 配置:
{ "agents": { "list": [ { "id": "coder", "tools": { "profile": "coding" } }, { "id": "researcher", "tools": { "allow": ["web_search", "web_fetch", "read"] } }, { "id": "writer", "tools": { "allow": ["write", "edit"] } } ] } }
工作流程:
- 用户请求:”写一个 Python 脚本处理 Excel”
- 主 Agent 识别任务,分配给
coderAgent coderAgent 使用文件工具完成任务- 用户请求:”搜索最新的 AI 趋势”
- 主 Agent 分配给
researcherAgent researcherAgent 使用 Web 工具搜索信息- 用户请求:”写一份报告”
- 主 Agent 分配给
writerAgent writerAgent 使用编辑工具撰写报告
场景: 定时任务 + 条件触发
Cron 配置:
{ "cron": [ { "schedule": "0 9 * * *", "task": "morning-briefing" }, { "schedule": "0 18 * * *", "task": "daily-summary" } ] }
任务脚本:
# morning-briefing.py def morning_briefing(): # 搜索新闻 news = search_ai_news() # 生成简报 brief = generate_briefing(news) # 发送到 Telegram send_to_telegram(brief)
场景: AI 记住用户的偏好和历史
记忆配置:
{ "memory": { "enabled": true, "search": { "enabled": true }, "store": { "onReply": true, "onMessage": true } } }
使用示例:
- 用户: “我不吃辣”
- Agent 存储到记忆
- 用户(2 周后): “帮我推荐个餐厅”
- Agent 搜索记忆:”不辣”
- Agent 返回:不辣的餐厅推荐
- 用户: “我最近在学什么?”
- Agent 搜索记忆
- Agent 返回:最近的学习记录
场景: AI 自动化网页操作
浏览器工具使用:
# 1. 打开网页 openclaw browser open --url "https://example.com" # 2. 导航到登录页 openclaw browser act \ --ref "login-button" \ --request '{ "kind": "click", "ref": "login-button" }' # 3. 填写表单 openclaw browser act \ --ref "username-input" \ --request '{ "kind": "fill", "ref": "username-input", "text": "my-username" }' # 4. 提交表单 openclaw browser act \ --ref "submit-button" \ --request '{ "kind": "click", "ref": "submit-button" }'
高级:截图 + 分析
# 1. 截取当前页面 openclaw browser screenshot # 2. 分析页面内容 openclaw browser act \ --request '{ "kind": "evaluate", "fn": "document.querySelector(\"h1\").textContent" }' # 3. 基于分析导航 openclaw browser act \ --request '{ "kind": "navigate", "url": "https://next-page.com" }'
# OpenClaw 配置目录 export OPENCLAW_HOME="/custom/path" # 状态目录 export OPENCLAW_STATE_DIR="/custom/state" # 配置文件路径 export OPENCLAW_CONFIG_PATH="/custom/config.json"
{ "channels": { "telegram": { "token": "your-bot-token", "allowFrom": ["+"] }, "discord": { "botToken": "your-bot-token", "clientId": "your-client-id", "clientSecret": "your-client-secret" }, "whatsapp": { "gatewayToken": "your-gateway-token", "allowFrom": ["+"], "groups": { "*": { "requireMention": false } } } }, "tools": { "profile": "coding", "allow": ["group:fs", "group:sessions", "group:memory"], "deny": ["exec", "process"] }, "agents": { "list": [ { "id": "assistant", "model": "openai/gpt-4", "tools": { "profile": "full" } } ] }, "memory": { "enabled": true, "search": { "enabled": true } }, "gateway": { "host": "127.0.0.1", "port": 18789, "tls": { "enabled": false } } }
{ "tools": { "byProvider": { "openai/gpt-4": { "profile": "minimal" }, "google-antigravity": { "allow": ["web_search", "web_fetch"] } } } }
{ "agents": { "list": [ { "id": "support", "tools": { "byProvider": { "openai/gpt-4": { "allow": ["message", "sessions_list"] } } } } ] } }
症状:
openclaw gateway status # Error: Gateway is not running
解决方法:
# 1. 检查端口占用 netstat -tuln | grep 18789 # 2. 查看 Gateway 日志 journalctl -u openclaw-gateway -n 50 # 3. 重新启动 openclaw gateway restart # 4. 如果是权限问题 sudo openclaw gateway restart
症状:
# WhatsApp: 提示 "Not paired" # Telegram: 发送消息无响应 # Discord: Bot 不在线
WhatsApp 解决方法:
# 1. 重新配对 openclaw whatsapp unpair openclaw whatsapp pair # 2. 检查 Gateway token openclaw gateway status # 3. 检查网络 ping wa.me
Telegram 解决方法:
# 1. 验证 Bot Token # 访问 @BotFather,检查 Bot 状态 # 2. 检查 Token 配置 openclaw status | grep telegram # 3. 测试连接 openclaw message send --channel telegram --message "Test"
Discord 解决方法:
# 1. 检查 Intents # 访问 Discord Developer Portal # 2. 验证 Bot 权限 # 需要:MESSAGE_CONTENT, MESSAGE_READ, SERVERS # 3. 检查服务器配置 openclaw status | grep discord
症状:
Agent: I'm sorry, I cannot use the browser tool.
解决方法:
# 检查工具策略 openclaw status # 方法 1:全局允许 openclaw configure tools.allow '["browser"]' # 方法 2:按配置文件允许 openclaw configure tools.profile "full" # 方法 3:Agent 级别覆盖 openclaw configure agents.list[].tools.allow '["browser"]'
症状:
# 频繁掉线 openclaw gateway status # 显示大量连接重连
解决方法:
# 1. 检查网络稳定性 ping api.anthropic.com # 2. 检查 Gateway 配置 openclaw configure gateway.keepalive true # 3. 检查 TLS 配置 openclaw configure gateway.tls.enabled true # 4. 使用远程访问(Tailscale) tailscale up
症状:
# Gateway 进程占用大量内存 top | grep openclaw-gateway # 显示 > 1GB 使用量
解决方法:
# 1. 启用会话修剪 openclaw configure session.pruning.enabled true # 2. 限制历史记录长度 openclaw configure session.history.maxMessages 100 # 3. 启用压缩 openclaw configure gateway.compression.enabled true # 4. 重启 Gateway openclaw gateway restart
{ "tools": { "loopDetection": { "enabled": true, "warningThreshold": 10, "criticalThreshold": 20 } } }
作用: 防止 Agent 陷入死循环
{ "gateway": { "streaming": { "enabled": true, "chunkSize": 1000 } } }
作用: 优化长回复的传输效率
{ "gateway": { "cache": { "responses": { "enabled": true, "ttl": 900 } } } }
作用: 缓存常见查询响应,减少 API 调用
- 📖 OpenClaw 官网
- 📚 文档主页
- 📖 GitHub 仓库
- 💬 问题反馈
- 🤖 Anthropic API
- 🤖 OpenAI API
- 💻 Pi 架构
- 🔧 工具参考
- 📱 频道文档
- ✅ 5 分钟上手:安装 → 配置 → 使用
- 🔧 灵活配置:支持多频道、多 Agent、工具策略
- 🚀 高性能:流式输出、缓存、压缩
- 🔒 安全可靠:OAuth 认证、设备配对、会话隔离
- 🌐 全平台支持:WhatsApp、Telegram、Discord、iMessage 等
- 🧠 Agent 原生:专为 AI Agent 设计的工具系统
- 💾 记忆系统:持久化上下文,跨会话保留信息
- 🔌 自动化:Cron、Webhook、多 Agent 协作
- 📖 阅读完整文档:https://docs.openclaw.ai
- 🚀 实战练习:先从单频道、单 Agent 开始
- 🔧 探索高级配置:多 Agent 路由、工具策略
- 💡 优化性能:启用缓存、流式输出、会话修剪
- 🤝 参与社区:GitHub Issues、Discord 社区
版本信息: 2026.3.1
整理日期: 2026-03-01
文档来源: OpenClaw 官方文档
祝使用愉快!🎉
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/258956.html原文链接:https://javaforall.net
