> 📖 **纸质书《OpenClaw超级个体实操手册》已上市!** 清华大学出版社出版,在开源教程基础上全面重写+逐条验证。🛒 [京东专属购买链接(¥42,原价¥59.8)](https://item.jd.com/14669463.html) # 第9章节 多平台集成 > 💡 **本章节目标**:学会将OpenClaw接入飞书、企业微信、钉钉、QQ等国内主流平台,实现随时随地使用AI助手。飞书作为最现代化、开发布友好的平台,将优先介绍。 ## 📱 本章节内内容 - 9.1 飞书Bot配置 - 9.1.1 飞书机器人介绍 - 9.1.2 快速开始 - 9.1.3 创建飞书应用 - 9.1.4 配置 OpenClaw - 9.1.5 启动并测试 - 9.1.6 访问控制 - 9.1.7 群组配置 - 9.1.8 获取群组/用户 ID - 9.1.9 高级配置 - 9.1.10 多账号配置 - 9.1.11 多 Agent 配置 - 9.1.11.1 配合飞书使用 - 9.1.11.2 实战案例:4个专业助手 - 9.1.11.3 配置注意事项 - 9.1.11.4 故障排查 - 9.1.11.5 配置对比 - 9.1.11.6 使用建议 - 9.1.11.7 本地多 Agent 管理(无需绑定 IM 平台)⭐新增 - 9.2 企业微信Bot配置 - 9.3 钉钉Bot配置 - 9.4 QQ Bot配置 - 9.5 微信接入(ClawBot 官方方案)⭐新增 - 9.5.1 ClawBot 是什么 - 9.5.2 安装步骤 - 9.5.3 工作原理 - 9.5.4 与第三方方案对比 - 9.5.5 配置与使用 - 9.5.6 注意事项 - 9.6 浏览器渠道(Dashboard v2)⭐新增 - 9.6.1 什么是浏览器渠道 - 9.6.2 适用场景 - 9.6.3 访问方式与功能 --- ## 9.1 飞书Bot配置 > 💡 **状态**:生产就绪,支持机器人私聊和群组,使用 WebSocket 长连接模式接收消息。 ### 9.1.1 飞书机器人介绍 **飞书的优势**: 1. **现代化怎么办公** - 文档协作 - 多维表格 - 视频会议 2. **高效沟通** - 消息卡片 - 互动组件 - 流式输出 3. **开发布友好** - API设计优秀 - 文档详细 - WebSocket长连接 4. **免费使用** - 功能强大 - 稳定可靠 ### 9.1.2 快速开始 添加飞书渠道有两种方式: **方式一:通过安装向导添加(推荐)** 如果您刚安装完 OpenClaw,可以直接运行向导: ```bash openclaw setup ``` 向导会引导您完成: 1. 创建飞书应用并获取凭证 2. 配置应用凭证 3. 启动网关 ✅ **完成配置后**,您可以使用以下命令检查网关状态: ```bash openclaw gateway status # 查看网关运行状态 openclaw logs --follow # 查看实时日志 ``` **方式二:通过命令行添加** 如果您已经完成了初始安装,可以用以下命令添加飞书渠道: ```bash openclaw channels add ``` 然后根据交互式提示选择 Feishu,输入 App ID 和 App Secret 即可。 ✅ **完成配置后**,您可以使用以下命令管理网关: ```bash openclaw gateway status # 查看网关运行状态 openclaw gateway restart # 重启网关以应用新配置 openclaw logs --follow # 查看实时日志 ``` ### 9.1.3 第一步:创建飞书应用 #### 1. 打开飞书开放平台 访问 [飞书开放平台](https://open.feishu.cn/app),使用飞书账号登录。 > 💡 **Lark(国际版)**:请使用 https://open.larksuite.com/app,并在配置中设置 `domain: "lark"`。 #### 2. 创建应用 1. 点击 **创建企业自建应用** 2. 填写应用名称和描述 3. 选择应用图标 ![飞书开放平台 - 创建企业自建应用](https://upload.maynor1024.live/file/1770734336224_image_1770734318.jpg) #### 3. 获取应用凭证 在应用的 **凭证与基础信息** 页面,复制: - **App ID**(格式如 `cli_xxx`) - **App Secret** ❗ **重要**:请妥善保管 App Secret,不要分分享给他人。 ![飞书应用凭证 - App ID和App Secret](https://upload.maynor1024.live/file/1770734332380_image_1770734319.jpg) #### 4. 配置应用权限 在 **权限管理** 页面,点击 **批量导入** 按钮,粘贴以下 JSON 配置一键导入所需权限: ```json { "scopes": { "tenant": [ "aily:file:read", "aily:file:write", "application:application.app_message_stats.overview:readonly", "application:application:self_manage", "application:bot.menu:write", "cardkit:card:write", "contact:user.employee_id:readonly", "corehr:file:download", "docs:document.content:read", "event:ip_list", "im:chat", "im:chat.access_event.bot_p2p_chat:read", "im:chat.members:bot_access", "im:message", "im:message.group_at_msg:readonly", "im:message.group_msg", "im:message.p2p_msg:readonly", "im:message:readonly", "im:message:send_as_bot", "im:resource", "sheets:spreadsheet", "wiki:wiki:readonly" ], "user": [ "aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read" ] } } ``` ![飞书应用权限配置 - 批量导入JSON权限](https://upload.maynor1024.live/file/1770734343156_image_1770734320.jpg) #### 5. 启用机器人能力 在 **应用能力** > **机器人** 页面: 1. 开启机器人能力 2. 配置机器人名称 ![飞书机器人配置 - 启用机器人功能](https://upload.maynor1024.live/file/1770734349201_image_1770734321.jpg) #### 6. 配置事件订阅 ⚠️ **重要提醒**:在配置事件订阅前,请务必确保已完成以下步骤: 1. 运行 `openclaw channels add` 添加了 Feishu 渠道 2. 网关处于启动状态(可通过 `openclaw gateway status` 检查状态) 在 **事件订阅** 页面: **步骤1:选择长连接模式** 1. 选择 **使用长连接接收事件**(WebSocket 模式) **步骤2:添加事件** 2. 添加事件:`im.message.receive_v1`(接收消息) **步骤3:配置必需权限(重要)** 在配置事件订阅的同时,请确保在 **权限管理** 页面已添加以下权限: | 权限标识 | 权限名称 | 是否必需 | 说明 | |---------|---------|---------|------| | `im:message` | 获取与发布送单聊、群组消息 | ✅ 必需 | 接收和发布送消息 | | `im:message:send_as_bot` | 以应用身份发布消息 | ✅ 必需 | 以机器人身份回复 | | `contact:contact.base:readonly` | 获取通讯附录基本信息 | ✅ 必需 | 识别用户身份 | > 💡 **为什么需要 `contact:contact.base:readonly` 权限?** > > 这个权限用于获取用户的基本信息(如用户名、部门等),OpenClaw需要这些信息来: > - ✅ 识别消息发布送者 > - ✅ 实现访问控制(allowlist/denylist) > - ✅ 提供个性化服务 > - ✅ 记附录对话历史 > > ⚠️ **如果缺少此权限,机器人将无法正常响应消息!** **配置截图示例**: ![飞书权限配置 - 通讯附录权限](https://upload.maynor1024.live/file/1771065454975_image-20260214183727712.png) ⚠️ **注意**:如果网关未启动或渠道未添加,长连接设置将保存失败。 ![飞书事件订阅 - 使用长连接接收消息](https://upload.maynor1024.live/file/1770734352151_image_1770734322.jpg) **常见错误排查:** 如果遇到 "Gateway start blocked: set gateway.mode=local" 错误: ```bash # 确保配置文件中设置了 gateway.mode { "gateway": { "mode": "local" } } ``` 如果遇到 "Gateway auth is set to token, but no token is configured" 错误: ```bash # 方式1:在配置文件中设置 token { "gateway": { "auth": { "mode": "token", "token": "your-secure-token" } } } # 方式2:使用环境变量 export OPENCLAW_GATEWAY_TOKEN="your-secure-token" ``` #### 7. 发布布应用 1. 在 **版本管理与发布布** 页面创建版本 2. 提交审核并发布布 3. 等待管理员审批(企业自建应用通常自动通过) ### 9.1.4 第二步:配置 OpenClaw #### 安装 Feishu 插件 ```bash # 安装 Feishu 插件 openclaw plugins install @openclaw/feishu # 本地 checkout(在 git 仓库内运行) openclaw plugins install ./extensions/feishu ``` #### 通过向导配置(推荐) 运行以下命令,根据提示粘贴 App ID 和 App Secret: ```bash openclaw channels add ``` 选择 **Feishu**,然后输入您在第一步获取的凭证即可。 #### 通过配置文件配置 编辑 `~/.openclaw/openclaw.json`: ```json { "channels": { "feishu": { "enabled": true, "dmPolicy": "pairing", "accounts": { "main": { "appId": "cli_xxx", "appSecret": "xxx", "botName": "我的AI助手" } } } } } ``` #### 通过环境变量配置 ```bash export FEISHU_APP_ID="cli_xxx" export FEISHU_APP_SECRET="xxx" ``` #### Lark(国际版)域名配置 如果您的租户在 Lark(国际版),请设置域名为 `lark`: ```json { "channels": { "feishu": { "domain": "lark", "accounts": { "main": { "appId": "cli_xxx", "appSecret": "xxx" } } } } } ``` ### 9.1.5 第三步:启动并测试 #### 1. 启动网关 ```bash # 安装并启动网关 openclaw gateway install # 检查网关状态 openclaw gateway status # 查看实时日志 openclaw logs --follow ``` **网关启动成功的标志:** ✅ Gateway: running (pid xxxxx, state active) ✅ Gateway target: ws://127.0.0.1:18789 ✅ Source: local loopback #### 2. 发布送测试消息 在飞书中找到您创建的机器人,发布送一条消息,例如:"hi"。 **在日志中应该能看到:** HEARTBEAT_OK hi connected | running agent main | session main (heartbeat) | local-antigravity/gemini-3-pro-high #### 3. 配对授权 默认情况下(`dmPolicy: "pairing"`),机器人会回复一个 **配对码**。您需要批准此代码: ```bash # 查看待审批的配对请求 openclaw pairing list feishu # 批准配对(替换 <配对码> 为实际收到的代码) openclaw pairing approve feishu <配对码> # 示例 openclaw pairing approve feishu ABC123 ``` 批准后即可正常对话。 **如果不想使用配对模式:** ```json { "channels": { "feishu": { "dmPolicy": "open", "allowFrom": ["*"] } } } ``` ### 9.1.6 访问控制 #### 私聊访问 **默认策略**:`dmPolicy: "pairing"`,陌生用户会收到配对码 **批准配对**: ```bash openclaw pairing list feishu # 查看待审批列表 openclaw pairing approve feishu # 批准 ``` **白名单模式**:通过 `channels.feishu.allowFrom` 配置允许的用户 Open ID #### 群组访问 **1. 群组策略**(`channels.feishu.groupPolicy`): - `"open"` = 允许群组中所有人(默认) - `"allowlist"` = 仅允许 `groupAllowFrom` 中的用户 - `"disabled"` = 禁用群组消息 **2. @提及要求**(`channels.feishu.groups..requireMention`): - `true` = 需要 @机器人才响应(默认) - `false` = 无需 @也响应 ### 9.1.7 群组配置示例 #### 允许所有群组,需要 @提及(默认行为) ```json { "channels": { "feishu": { "groupPolicy": "open" // 默认 requireMention: true } } } ``` #### 允许所有群组,无需 @提及 需要为特定群组配置: ```json { "channels": { "feishu": { "groups": { "oc_xxx": { "requireMention": false } } } } } ``` #### 仅允许特定用户在群组中使用 ```json { "channels": { "feishu": { "groupPolicy": "allowlist", "groupAllowFrom": ["ou_xxx", "ou_yyy"] } } } ``` ### 9.1.8 获取群组/用户 ID #### 获取群组 ID(chat_id) 群组 ID 格式为 `oc_xxx`,可以通过以下方式获取: **方法一**(推荐): 1. 启动网关并在群组中 @机器人发布消息 2. 运行 `openclaw logs --follow` 查看日志中的 `chat_id` **方法二**:使用飞书 API 调试工具获取机器人所在群组列表。 #### 获取用户 ID(open_id) 用户 ID 格式为 `ou_xxx`,可以通过以下方式获取: **方法一**(推荐): 1. 启动网关并给机器人发布消息 2. 运行 `openclaw logs --follow` 查看日志中的 `open_id` **方法二**:查看配对请求列表,其中包含用户的 Open ID: ```bash openclaw pairing list feishu ``` ### 9.1.9 高级配置 #### 自定义菜单 添加常用命令在菜单上 ![飞书机器人菜单 - 添加常用命令快捷入口](https://upload.maynor1024.live/file/1770874980945_image-20260212134245771.png) 这里我新建了三个常用命令:新建对话,列出技能,继续。 ![自定义菜单示例 - 新建对话/列出技能/继续](https://upload.maynor1024.live/file/1770874990637_image-20260212134300933.png) #### 多账号配置 OpenClaw 支持同时管理多个飞书机器人,这在以下场景非常有用: - 不同团队使用不同的机器人 - 测试环境和生产环境分离 - 不同功能的专用机器人 - 主备机器人配置 **基础配置示例(2个机器人):** ```json { "channels": { "feishu": { "enabled": true, "dmPolicy": "pairing", "accounts": { "bot1": { "appId": "cli_xxxxxxxxxxxxxxxx", "appSecret": "your-app-secret-1", "botName": "OpenClaw助手1", "enabled": true }, "bot2": { "appId": "cli_yyyyyyyyyyyyyyyy", "appSecret": "your-app-secret-2", "botName": "OpenClaw助手2", "enabled": true } }, "domain": "feishu", "groupPolicy": "open", "connectionMode": "websocket", "requireMention": true, "renderMode": "auto", "streaming": true, "blockStreaming": true, "replyToMode": "all" } }, "gateway": { "port": 18789, "mode": "local", "bind": "lan", "auth": { "mode": "token", "token": "your-secure-token-here" } }, "agents": { "defaults": { "model": { "primary": "your-provider/your-model" }, "workspace": "/path/to/your/workspace", "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } } } } ``` > 💡 **实战提示**:上面的配置示例来自真实的多机器人部署案例。注意 `appSecret` 和 `token` 在生产环境中应该妥善保管,不要提交到代码仓库。 **多机器人配置示例(4个专业助手):** ```json { "channels": { "feishu": { "enabled": true, "dmPolicy": "pairing", "accounts": { "main-assistant": { "appId": "cli_main_xxxxxx", "appSecret": "your-main-secret", "botName": "主助理", "enabled": true }, "content-creator": { "appId": "cli_content_xxxxxx", "appSecret": "your-content-secret", "botName": "内内容创作助手", "enabled": true }, "tech-dev": { "appId": "cli_tech_xxxxxx", "appSecret": "your-tech-secret", "botName": "技术开发布助手", "enabled": true }, "ai-news": { "appId": "cli_news_xxxxxx", "appSecret": "your-news-secret", "botName": "AI资讯助手", "enabled": true } }, "domain": "feishu", "groupPolicy": "open", "connectionMode": "websocket", "requireMention": true, "streaming": true, "blockStreaming": true, "replyToMode": "all" } }, "agents": { "defaults": { "model": { "primary": "anthropic/claude-sonnet-4" }, "workspace": "/path/to/workspace", "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } } } } ``` > ⚠️ **重要提示**:在多账号配置中,不需要使用 `bindings` 来绑定不同的 agent。所有机器人会自动共分享 `agents.defaults` 配置。如果需要不同的模型,可以在对话中使用 `/model` 命令切换。 **配置说明:** | 参数 | 说明 | 必填 | |------|------|------| | `accounts.` | 账号唯一标识符(自定义) | ✅ | | `appId` | 飞书应用的 App ID | ✅ | | `appSecret` | 飞书应用的 App Secret | ✅ | | `botName` | 机器人显示名称 | ❌ | | `enabled` | 是否启用该账号 | ❌ (默认 true) | **多机器人使用场景:** 1. **一人公司/独立开发布者** - 主助理:任务分发布、日程管理 - 内内容创作助手:文章节、视频脚本 - 技术开发布助手:代码开发布、调试 - AI资讯助手:行业动态追踪 2. **团队协作** - 技术团队助手:代码审查、技术讨论 - 产品团队助手:需求分析、用户反馈 - 运营团队助手:数据分析、内内容运营 - 测试助手:测试环境专用 3. **环境分离** - 生产环境助手:正式业务使用 - 测试环境助手:功能测试 - 开发布环境助手:开发布调试 重要 在 **事件订阅** 页面: **步骤1:选择长连接模式** 1. 选择 **使用长连接接收事件**(WebSocket 模式) **步骤2:添加事件** 2. 添加事件:`im.message.receive_v1`(接收消息) **步骤3:配置必需权限** 3. 在 **权限管理** 页面,确保已添加: - ✅ `im:message`(获取与发布送单聊、群组消息) - ✅ `im:message:send_as_bot`(以应用身份发布消息) - ✅ `contact:contact.base:readonly`(获取通讯附录基本信息)⭐ 必需 > 💡 缺少 `contact:contact.base:readonly` 权限会导致机器人无法识别用户,无法正常响应消息。 2. 添加事件:`im.message.receive_v1`(接收消息) ![飞书长连接配置 - WebSocket模式事件订阅](https://upload.maynor1024.live/file/1770880072503_image-20260212150740769.png) ![飞书事件订阅成功 - 长连接已建立](https://upload.maynor1024.live/file/1770880042274_image-20260212150708631.png) **实战场景1:团队分离** 为不同团队创建专用机器人: ```json { "channels": { "feishu": { "accounts": { "tech-team": { "appId": "cli_tech_xxx", "appSecret": "tech_secret", "botName": "技术团队助手", "enabled": true }, "sales-team": { "appId": "cli_sales_xxx", "appSecret": "sales_secret", "botName": "销售团队助手", "enabled": true }, "hr-team": { "appId": "cli_hr_xxx", "appSecret": "hr_secret", "botName": "HR助手", "enabled": true } } } } } ``` **实战场景2:环境分离** 测试环境和生产环境使用不同的机器人: ```json { "channels": { "feishu": { "accounts": { "production": { "appId": "cli_prod_xxx", "appSecret": "prod_secret", "botName": "OpenClaw生产环境", "enabled": true, "dmPolicy": "pairing" }, "staging": { "appId": "cli_staging_xxx", "appSecret": "staging_secret", "botName": "OpenClaw测试环境", "enabled": true, "dmPolicy": "open" }, "development": { "appId": "cli_dev_xxx", "appSecret": "dev_secret", "botName": "OpenClaw开发布环境", "enabled": false } } } } } ``` **实战场景3:功能分离** 不同功能使用专用机器人: ```json { "channels": { "feishu": { "accounts": { "general": { "appId": "cli_general_xxx", "appSecret": "general_secret", "botName": "通用助手", "enabled": true }, "code-review": { "appId": "cli_code_xxx", "appSecret": "code_secret", "botName": "代码审查助手", "enabled": true }, "document": { "appId": "cli_doc_xxx", "appSecret": "doc_secret", "botName": "文档助手", "enabled": true } } } } } ``` **配合多 Agent 使用** 将不同的飞书机器人绑定到不同的 Agent,实现更精细的功能分离: ```json { "agents": { "list": [ { "id": "general-agent", "workspace": "/home/user/general", "agentDir": "/home/user/.openclaw/agents/general/agent" }, { "id": "code-agent", "workspace": "/home/user/code-review", "agentDir": "/home/user/.openclaw/agents/code/agent" }, { "id": "doc-agent", "workspace": "/home/user/document", "agentDir": "/home/user/.openclaw/agents/doc/agent" } ] }, "channels": { "feishu": { "accounts": { "general": { "appId": "cli_general_xxx", "appSecret": "general_secret", "botName": "通用助手" }, "code-review": { "appId": "cli_code_xxx", "appSecret": "code_secret", "botName": "代码审查助手" }, "document": { "appId": "cli_doc_xxx", "appSecret": "doc_secret", "botName": "文档助手" } } } }, "bindings": [ { "agentId": "general-agent", "match": { "channel": "feishu", "account": "general" } }, { "agentId": "code-agent", "match": { "channel": "feishu", "account": "code-review" } }, { "agentId": "doc-agent", "match": { "channel": "feishu", "account": "document" } } ] } ``` **管理多个机器人** ```bash # 查看所有渠道状态 openclaw channels list # 启用/禁用特定账号:通过修改配置文件控制 # 编辑 ~/.openclaw/channels/feishu.json,设置 "enabled": true/false # 重启网关使配置生效 openclaw gateway restart # 查看特定渠道的日志 openclaw channels logs feishu ``` **配置文件位置** ```bash # 主配置文件 ~/.openclaw/openclaw.json # 或者使用独立的渠道配置文件 ~/.openclaw/channels/feishu.json ``` **独立配置文件示例:** ```bash # 创建独立配置文件 mkdir -p ~/.openclaw/channels nano ~/.openclaw/channels/feishu.json ``` ```json { "enabled": true, "accounts": { "main": { "appId": "cli_xxx", "appSecret": "xxx", "botName": "主机器人" }, "backup": { "appId": "cli_yyy", "appSecret": "yyy", "botName": "备用机器人" } } } ``` **注意事项:** 1. **App ID 和 App Secret 必须唯一** - 每个机器人必须使用不同的飞书应用 - 不能多个账号共用同一个 App ID 2. **账号标识符命名规范** - 使用小写字母和连字符 - 避免使用特殊字符 - 建议使用有意义的名称(如 `tech-team`、`production`) 3. **启用/禁用控制** - `enabled: true` - 账号启用,机器人会接收和处理消息 - `enabled: false` - 账号禁用,机器人不会接收消息 - 可以随时通过修改配置文件或命令行切换 4. **网关重启** - 修改配置后需要重启网关:`openclaw gateway restart` 5. **日志查看** - 多账号时,日志会标注账号标识符 - 使用 `openclaw channels logs ` 查看特定渠道日志 **故障排查:** **访问题1:某个机器人收不到消息** ```bash # 检查账号是否启用 openclaw channels status # 查看该账号的日志 openclaw channels logs feishu # 检查配置是否正确 openclaw config get channels.feishu.accounts.main ``` **访问题2:多个机器人冲突** 确保每个机器人使用不同的飞书应用: - 不同的 App ID - 不同的 App Secret - 在飞书开放平台创建多个应用 **访问题3:切换账号不生效** ```bash # 重启网关使配置生效 openclaw gateway restart ``` **访问题4:配置验证失败 - bindings 错误** Error: bindings.0.match: Unrecognized key: "account" **原因**:在多账号配置中,不需要使用 `bindings` 来绑定 agent。 **解决方案**: 1. 删除配置文件中的 `bindings` 部分 2. 所有机器人会自动使用 `agents.defaults` 配置 3. 如果需要不同模型,在对话中使用 `/model` 命令切换 **正确的配置结构**: ```json { "channels": { "feishu": { "accounts": { "bot1": { ... }, "bot2": { ... } } } }, "agents": { "defaults": { "model": { "primary": "your-model" }, "workspace": "/path/to/workspace" } } // ❌ 不需要 bindings } ``` **访问题5:配置后运行 openclaw doctor 报错** ```bash # 运行诊断 openclaw doctor # 如果提示配置访问题,运行自动修复 openclaw update repair openclaw doctor # 验证配置 openclaw doctor # 应该看到:✅ Config valid ``` **最佳实践:** 1. **使用有意义的账号名称** ```json "accounts": { "prod-main": { ... }, // 生产环境主机器人 "prod-backup": { ... }, // 生产环境备份 "test": { ... } // 测试环境 } ``` 2. **为不同环境使用不同的策略** ```json "production": { "dmPolicy": "pairing", // 生产环境需要配对 "groupPolicy": "allowlist" // 群组白名单 }, "development": { "dmPolicy": "open", // 开发布环境开放访问 "groupPolicy": "open" // 群组开放 } ``` 3. **定期备份配置** ```bash # 备份配置文件 cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup # 或使用 OpenClaw 备份命令 openclaw backup create ``` 4. **使用环境变量管理敏感信息** ```bash # 在 ~/.bashrc 或 ~/.zshrc 中设置 export FEISHU_MAIN_APP_ID="cli_xxx" export FEISHU_MAIN_APP_SECRET="xxx" export FEISHU_BACKUP_APP_ID="cli_yyy" export FEISHU_BACKUP_APP_SECRET="yyy" ``` 然后在配置文件中引用: ```json { "channels": { "feishu": { "accounts": { "main": { "appId": "${FEISHU_MAIN_APP_ID}", "appSecret": "${FEISHU_MAIN_APP_SECRET}" } } } } } ``` #### 流式输出 飞书支持通过交互式卡片实现流式输出,机器人会实时更新卡片内内容显示生成进度。 ```json { "channels": { "feishu": { "streaming": true, // 启用流式卡片输出(默认 true) "blockStreaming": true // 启用块级流式(默认 true) } } } ``` 如需禁用流式输出(等待完整回复后一次性发布送),可设置 `streaming: false`。 #### 消息引用 在群聊中,机器人的回复可以引用用户发布送的原始消息,让对话上下文更加清晰。 ```json { "channels": { "feishu": { "replyToMode": "all", // 账户级别配置(默认 "all") "groups": { "oc_xxx": { "replyToMode": "first" // 特定群组可以覆盖 } } } } } ``` `replyToMode` 值说明: - `"off"` = 不引用原消息(私聊默认值) - `"first"` = 仅在第一条回复时引用原消息 - `"all"` = 所有回复都引用原消息(群聊默认值) #### 多 Agent 路由 通过 `bindings` 配置,您可以用一个飞书机器人对接多个不同功能或性格的 Agent: ```json { "agents": { "list": [ { "id": "main" }, { "id": "clawd-fan", "workspace": "/home/user/clawd-fan", "agentDir": "/home/user/.openclaw/agents/clawd-fan/agent" }, { "id": "clawd-xi", "workspace": "/home/user/clawd-xi", "agentDir": "/home/user/.openclaw/agents/clawd-xi/agent" } ] }, "bindings": [ { "agentId": "main", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_28b31a88..." } } }, { "agentId": "clawd-fan", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_0fe6b1c9..." } } }, { "agentId": "clawd-xi", "match": { "channel": "feishu", "peer": { "kind": "group", "id": "oc_xxx..." } } } ] } ``` ### 9.1.10 常用命令 #### 机器人命令 | 命令 | 说明 | |------|------| | `/status` | 查看机器人状态 | | `/reset` | 重置对话会话 | | `/model` | 查看/切换模型 | #### 网关管理命令 | 命令 | 说明 | |------|------| | `openclaw gateway status` | 查看网关运行状态 | | `openclaw gateway install` | 安装/启动网关服务 | | `openclaw gateway stop` | 停止网关服务 | | `openclaw gateway restart` | 重启网关服务 | | `openclaw logs --follow` | 实时查看日志输出 | ### 9.1.11 故障排除 #### 机器人在群组中不响应 1. 检查机器人是否已添加到群组 2. 检查是否 @了机器人(默认需要 @提及) 3. 检查 `groupPolicy` 是否为 `"disabled"` 4. 查看日志:`openclaw logs --follow` #### 机器人收不到消息 **可能原因及解决方案**: 1. **检查应用是否已发布布并审批通过** ```bash # 在飞书开放平台查看应用状态 # 确保应用已通过审核并发布布 ``` 2. **检查事件订阅是否配置正确** - ✅ 已选择"使用长连接接收事件"(WebSocket模式) - ✅ 已添加事件:`im.message.receive_v1` - ✅ 长连接状态显示"已连接" 3. **检查权限配置是否完整**⭐ 重要 缺少权限会导致机器人无法正常工作,请确保已添加以下权限: | 权限标识 | 权限名称 | 检查方法 | |---------|---------|---------| | `im:message` | 获取与发布送单聊、群组消息 | 在权限管理页面查看 | | `im:message:send_as_bot` | 以应用身份发布消息 | 在权限管理页面查看 | | `contact:contact.base:readonly` | 获取通讯附录基本信息 | ⭐ 必需,否则无法识别用户 | **如何检查权限**: 1. 登录飞书开放平台 2. 进入你的应用 3. 点击"权限管理" 4. 确认上述三个权限都已添加 5. 如果缺少,点击"添加权限"补充 ``` **常见错误**: - ❌ 只添加了 `im:message`,忘记添加 `contact:contact.base:readonly` - ❌ 权限添加后未重新发布布应用 - ❌ 权限范围设置不正确 4. **检查网关状态** ```bash # 查看网关是否正常运行 openclaw gateway status # 查看实时日志 openclaw logs --follow ``` 5. **检查渠道配置** ```bash # 查看飞书渠道配置 openclaw channels list # 确认 appId 和 appSecret 正确 openclaw config get channels.feishu ``` 1. 检查应用是否已发布布并审批通过 2. 检查事件订阅是否配置正确(`im.message.receive_v1`) 3. 检查是否选择了 **长连接** 模式 4. 检查应用权限是否完整 5. 检查网关是否正在运行:`openclaw gateway status` 6. 查看实时日志:`openclaw logs --follow` #### 配置文件 JSON 语法错误 **错误示例:** JSON5 parse error at line 443: Python True/False vs JSON true/false **解决方案:** ```bash # 检查 JSON 语法 cat ~/.openclaw/openclaw.json | python -m json.tool # 常见错误: # ❌ "enabled": True (Python 语法) # ✅ "enabled": true (JSON 语法) # ❌ 多余的逗号 # ✅ 最后一项不要逗号 ``` #### 网关启动失败 **错误1:Gateway start blocked** ```bash # 错误信息 Gateway start blocked: set gateway.mode=local (current: unset) # 解决方案:在配置文件中添加 { "gateway": { "mode": "local" } } ``` **错误2:Gateway auth token 未配置** ```bash # 错误信息 Gateway auth is set to token, but no token is configured # 解决方案1:配置文件 { "gateway": { "auth": { "mode": "token", "token": "your-secure-token" } } } # 解决方案2:环境变量 export OPENCLAW_GATEWAY_TOKEN="your-secure-token" ``` **错误3:插件未找到** ```bash # 错误信息 Config validation failed: plugins.entries.qqbot: plugin not found: qqbot # 解决方案:移除未安装的插件配置 { "plugins": { "entries": { "feishu": { "enabled": true } // 移除 qqbot, ddingtalk, wecom 等未安装的插件 } } } ``` **错误4:工作空间路径错误** ```bash # 错误信息 run error: Error: ENOENT: no such file or directory, mkdir '/root' # 解决方案:修正 workspace 路径(macOS 示例) { "agents": { "defaults": { "workspace": "/Users/yourusername/clawd" // 使用正确的 macOS 路径 } } } ``` #### App Secret 泄露怎么怎么办 1. 在飞书开放平台重置 App Secret 2. 更新配置文件中的 App Secret 3. 重启网关:`openclaw gateway restart` #### 发布送消息失败 1. 检查应用是否有 `im:message:send_as_bot` 权限 2. 检查应用是否已发布布 3. 查看日志获取详细错误信息:`openclaw logs --follow` #### 网关端口被占用 ```bash # 错误信息 Port 18789 is already in use # 解决方案1:停止现有网关 openclaw gateway stop # 解决方案2:使用不同端口 { "gateway": { "port": 18790 } } ``` #### 配置修改不生效 ```bash # 修改配置后必须重启网关 openclaw gateway restart # 检查配置是否正确加载 openclaw config get channels.feishu ``` ### 9.1.12 配置参考 | 配置项 | 说明 | 默认值 | |--------|------|--------| | `channels.feishu.enabled` | 启用/禁用渠道 | `true` | | `channels.feishu.domain` | API 域名(`feishu` 或 `lark`) | `feishu` | | `channels.feishu.accounts..appId` | 应用 App ID | - | | `channels.feishu.accounts..appSecret` | 应用 App Secret | - | | `channels.feishu.dmPolicy` | 私聊策略 | `pairing` | | `channels.feishu.allowFrom` | 私聊白名单(open_id 列表) | - | | `channels.feishu.groupPolicy` | 群组策略 | `open` | | `channels.feishu.groupAllowFrom` | 群组白名单 | - | | `channels.feishu.groups..requireMention` | 是否需要 @提及 | `true` | | `channels.feishu.textChunkLimit` | 消息分块大小 | `2000` | | `channels.feishu.mediaMaxMb` | 媒体大小限制 | `30` | | `channels.feishu.streaming` | 启用流式卡片输出 | `true` | | `channels.feishu.blockStreaming` | 启用块级流式 | `true` | #### dmPolicy 策略说明 | 值 | 行为 | |----|------| | `"pairing"` | **默认**。未知用户收到配对码,管理员批准后才能对话 | | `"allowlist"` | 仅 `allowFrom` 列表中的用户可对话,其他静默忽略 | | `"open"` | 允许所有人对话(需在 allowFrom 中加 `"*"`) | | `"disabled"` | 完全禁止私聊 | ### 9.1.13 支持的消息类型 #### 接收 - ✅ 文本消息 - ✅ 图片 - ✅ 文件 - ✅ 音频 - ✅ 视频 - ✅ 表情包 #### 发布送 - ✅ 文本消息 - ✅ 图片 - ✅ 文件 - ✅ 音频 - ⚠️ 富文本(部分支持) ### 9.1.14 与飞书生态集成 **集成飞书文档** 功能: - 创建文档 - 编辑文档 - 分分享文档 - 权限管理 示例: 你:把这段内内容保存到飞书文档 OpenClaw:已保存到飞书文档 ✅ 链接:https://... **集成飞书多维表格** 功能: - 创建表格 - 添加数据 - 查询数据 - 数据分析 示例: 你:把发布票信息添加到多维表格 OpenClaw:已添加3条记附录 ✅ **集成飞书日历** 功能: - 创建日程 - 修改日程 - 删除日程 - 日程提醒 示例: 你:明天下午3点开会 OpenClaw:已添加到飞书日历 ✅ --- ### 9.1.15 实战案例:配置双机器人 > 💡 **真实案例**:本节展示一个实际的双机器人配置案例,适用于需要分离不同功能或团队的场景。 #### 场景说明 某团队需要两个飞书机器人: - **机器人1**:用于日常怎么办公和通用任务 - **机器人2**:用于特定项目或测试环境 #### 完整配置步骤 **1. 在飞书开放平台创建两个应用** 分别创建两个企业自建应用,获取: - 机器人1:App ID `cli_xxxxxxxxxxxxxxxx`,App Secret - 机器人2:App ID `cli_yyyyyyyyyyyyyyyy`,App Secret **2. 配置 OpenClaw** 编辑 `~/.openclaw/openclaw.json`: ```json { "meta": { "lastTouchedVersion": "2026.2.6-3", "lastTouchedAt": "2026-02-08T09:49:58.322Z" }, "channels": { "feishu": { "enabled": true, "dmPolicy": "pairing", "accounts": { "bot1": { "appId": "cli_xxxxxxxxxxxxxxxx", "appSecret": "your-app-secret-1", "botName": "OpenClaw助手1", "enabled": true }, "bot2": { "appId": "cli_yyyyyyyyyyyyyyyy", "appSecret": "your-app-secret-2", "botName": "OpenClaw助手2", "enabled": true } }, "domain": "feishu", "groupPolicy": "open", "connectionMode": "websocket", "requireMention": true, "renderMode": "auto", "streaming": true, "blockStreaming": true, "replyToMode": "all" } }, "gateway": { "port": 18789, "mode": "local", "bind": "lan", "auth": { "mode": "token", "token": "your-secure-random-token-here" } }, "agents": { "defaults": { "model": { "primary": "your-model-provider/your-model" }, "workspace": "/path/to/your/workspace", "compaction": { "mode": "safeguard" }, "maxConcurrent": 4 } }, "plugins": { "entries": { "feishu": { "enabled": true } } } } ``` **3. 配置飞书应用权限** 为两个应用分别配置权限(批量导入 JSON,参见 9.1.3 节)。 **4. 配置事件订阅** 为两个应用分别配置: - 选择 **使用长连接接收事件** - 添加事件:`im.message.receive_v1` **5. 启动网关** ```bash # 启动网关 openclaw gateway install # 检查状态 openclaw gateway status # 应该看到: # ✅ Gateway: running (pid 57344, state active) # ✅ Gateway target: ws://127.0.0.1:18789 ``` **6. 测试机器人** 在飞书中分别给两个机器人发布送消息: 你:hi 机器人:[配对码] 请管理员批准配对 **7. 批准配对** ```bash # 查看配对请求 openclaw pairing list feishu # 批准机器人1 openclaw pairing approve feishu <配对码1> # 批准机器人2 openclaw pairing approve feishu <配对码2> ``` **8. 验证运行** 查看日志确认两个机器人都在正常运行: ```bash openclaw logs --follow # 应该看到: # HEARTBEAT_OK # hi # connected | running # agent main | session main (heartbeat) ``` #### 常见访问题处理 **访问题1:配置文件 JSON 语法错误** ```bash # 错误:JSON5 parse error at line 443 # 原因:使用了 Python 语法(True/False)而非 JSON 语法(true/false) # 检查语法 cat ~/.openclaw/openclaw.json | python -m json.tool # 修正: # ❌ "enabled": True # ✅ "enabled": true ``` **访问题2:网关启动失败** ```bash # 错误:Gateway start blocked: set gateway.mode=local # 解决:确保配置了 gateway.mode { "gateway": { "mode": "local" } } ``` **访问题3:工作空间路径错误** ```bash # 错误:ENOENT: no such file or directory, mkdir '/root' # 原因:配置文件中使用了 Linux 路径,但实际是 macOS # 修正(macOS): { "agents": { "defaults": { "workspace": "/Users/yourusername/clawd" } } } ``` **访问题4:插件未找到** ```bash # 错误:plugin not found: qqbot # 原因:配置文件中引用了未安装的插件 # 解决:只保留已安装的插件 { "plugins": { "entries": { "feishu": { "enabled": true } // 移除 qqbot, ddingtalk, wecom 等 } } } ``` #### 配置检查清单 - [ ] 两个飞书应用已创建 - [ ] App ID 和 App Secret 已获取 - [ ] 配置文件 JSON 语法正确 - [ ] gateway.mode 已设置为 "local" - [ ] gateway.auth.token 已配置 - [ ] workspace 路径正确(macOS/Linux) - [ ] 只配置了已安装的插件 - [ ] 两个应用的权限已配置 - [ ] 两个应用的事件订阅已配置(长连接) - [ ] 两个应用已发布布 - [ ] 网关已启动并运行正常 - [ ] 两个机器人都已配对批准 - [ ] 日志显示正常运行 #### 成功标志 配置成功后,你应该看到: ```bash # 网关状态 $ openclaw gateway status ✅ Gateway: running (pid xxxxx, state active) ✅ Gateway target: ws://127.0.0.1:18789 # 日志输出 $ openclaw logs --follow HEARTBEAT_OK hi connected | running agent main | session main (heartbeat) | your-model-provider/your-model tokens 25k/200k (13%) ``` 两个机器人都可以正常接收和回复消息!🎉 --- ## 9.4 QQ Bot配置 ### 9.4.1 QQ机器人介绍 **QQ的优势**: 1. **用户基础** - 用户量大 - 覆盖面广 - 使用习惯 2. **社交属性** - 群聊活跃 - 互动性强 - 娱乐功能 3. **开放平台** - QQ频道 - QQ群机器人 - API支持 4. **免费使用** - 基础功能免费 - 易于上手 ### 9.4.2 创建QQ机器人 > ⚠️ **重要提示**:QQ开放平台需要先注册账号,不是直接用QQ登录!请务必先完成注册。 **步骤1:注册QQ开放平台账号** 1. **访问QQ开放平台**: https://q.qq.com/ ``` 2. **注册新账号**: - ⚠️ 不是QQ登录,需要单独注册 - 点击"注册"按钮 - 填写注册信息 - 完成邮箱/手机验证 3. **登录平台**: - 使用刚注册的账号登录 - 不要使用QQ扫码登录 **步骤2:创建机器人** 1. **进入机器人管理**: - 登录后点击"机器人" - 点击"创建机器人" 2. **填写机器人信息**: - 机器人名称:自定义(如:我的AI助手) - 机器人头像:上传图片 - 机器人简介:简单描述功能 - 点击"创建" 3. **等待审核**: - 提交后等待审核(通常几分钟) - 审核通过后即可使用 **步骤3:配置机器人** 1. **获取机器人凭证**: - 进入机器人详情页 - 点击"开发布管理" - 记附录以下信息: - **机器人ID**(BotAppID) - **机器人密钥**(Bot Secret) 2. **配置IP白名单**: - 在"开发布管理"页面 - 找到"IP白名单"设置 - 添加你的服务器公网IP地址 - 点击"保存" 3. **添加测试用户**: - 在"管理" → "成员管理" - 点击"添加成员" - 输入你的QQ号 - 将自己添加为测试用户 4. **扫码添加机器人好友**: - 在机器人详情页找到二维码 - 用手机QQ扫码 - 添加机器人为好友 **步骤4:配置 OpenClaw连接** 1. **获取服务器IP地址**: - 如果使用腾讯云,在控制台查看公网IP - 记附录这个IP地址 2. **在腾讯云Lighthouse配置**(如果使用腾讯云): - 登录腾讯云:https://console.cloud.tencent.com/lighthouse - 进入实例详情 - 点击"应用管理"标签 - 找到"QQ机器人配置"区域 - 填入: - 机器人ID(BotAppID) - 机器人密钥(Bot Secret) - 点击"应用配置" 3. **本地配置方式**: ```bash # 运行配置向导 openclaw onboard # 选择 QuickStart # 选择模型(如 Kimi 2.5) # 输入模型 API Key # 选择通道:QQ # 输入机器人ID和密钥 ``` ### 9.4.3 配置 OpenClaw > 💡 **前置要求**:请先完成 OpenClaw 的基础安装和配置,详见 [第2章节:环境搭建](../01-basics/02-installation.md)。 **方式一:使用腾讯云Lighthouse(推荐)** 如果你使用腾讯云Lighthouse部署OpenClaw,配置非常简单: 1. **进入应用管理**: - 登录腾讯云控制台 - 进入轻量应用服务器 - 点击实例 → "应用管理" 2. **配置QQ机器人**: - 找到"QQ机器人配置"区域 - 填入机器人ID和密钥 - 点击"应用配置" - 等待配置生效 3. **验证连接**: - 打开手机QQ - 给机器人发布送消息:"你好" - 如果收到回复,说明配置成功 **方式二:本地配置** 如果你是本地部署或其他云服务器,使用命令行配置: ```bash # 1. 运行配置向导 openclaw onboard # 2. 选择配置选项 # - 选择 Yes 接受风险 # - 选择 QuickStart(快速开始) # 3. 配置模型 # - 选择模型供应商(如 Moonshot AI) # - 输入 API Key # - 选择默认模型(如 kimi-code/kimi-for-codi) # 4. 配置通道 # - 选择通道:QQ # - 输入机器人ID(BotAppID) # - 输入机器人密钥(Bot Secret) # 5. 配置Skills和Hooks # - Skills:选择 Yes,可以先不安装 # - Hooks:选择 session-memory # 6. 重启服务 # - 选择 Yes 重启 gateway 服务 # 7. 测试连接 # - 选择打开 TUI(终端界面) # - 或直接在QQ中测试 ``` **方式三:手动编辑配置文件** ```bash # 编辑配置文件 nano ~/.openclaw/config.json # 添加QQ配置 { "channels": { "qq": { "enabled": true, "botAppId": "你的机器人ID", "botSecret": "你的机器人密钥", "profiles": ["default"] } } } # 重启服务 systemctl --user restart openclaw-gateway.service ``` **启动Gateway服务** ```bash # 方式1:前台运行(用于测试) openclaw gateway --port 18789 --verbose # 方式2:后台运行(推荐) nohup openclaw gateway --port 18789 --verbose > /dev/null 2>&1 & # 方式3:使用systemd(最稳定) systemctl --user enable openclaw-gateway.service systemctl --user start openclaw-gateway.service ``` **验证配置** ```bash # 查看服务状态 systemctl --user status openclaw-gateway.service # 查看日志 journalctl --user -u openclaw-gateway.service -f # 测试连接 # 在QQ中给机器人发布送消息:"你好" ``` ### 9.4.4 实战案例 **案例1:个人助手** 功能: - 日常对话 - 信息查询 - 任务提醒 - 娱乐互动 使用示例: 你:今天天气怎么样? OpenClaw:今天晴天,15-25°C 你:提醒我明天交作业 OpenClaw:已设置提醒 ✅ **案例2:群管理** 功能: - 群公告 - 成员管理 - 消息统计 - 自动回复 使用示例: 管理员:@OpenClaw 发布布公告 OpenClaw:公告已发布布 ✅ 成员:@OpenClaw 查询群规 OpenClaw:群规如下... **案例3:娱乐互动** 功能: - 聊天对话 - 讲笑话 - 猜谜语 - 玩游戏 使用示例: 你:讲个笑话 OpenClaw:好的,听我说... 你:猜谜语 OpenClaw:什么东西... ### 9.4.5 限制和注意事项 **功能限制**: ⚠️ QQ机器人有以下限制: - 消息频率限制 - 功能权限限制 - 审核要求严格 - 部分API需要申请 - 目前不支持主动发布送消息(2026.2.6测试) **注意事项**: ✅ 遵守平台规则 ✅ 不发布送违规内内容 ✅ 合理使用API ✅ 及时响应用户 ✅ 定期检查服务状态 **常见访问题**: 1. **机器人不回复消息**: - 检查IP白名单是否正确 - 检查机器人ID和密钥是否正确 - 查看Gateway服务是否运行 - 检查服务器日志 2. **配置后无法连接**: - 确认已添加为测试用户 - 确认已添加机器人好友 - 重启Gateway服务 - 检查防火墙设置 3. **消息延迟**: - 检查网络连接 - 检查服务器负载 - 考虑升级服务器配置 --- ## 9.6 Discord Bot配置(参考) > ⚠️ **过时提示**:本节内内容编写于2026年1月,当时OpenClaw还叫Clawbot/Moltbot。虽然部分命令已过时,但配置流程仍可作为参考。 ### 9.5.1 Discord机器人介绍 **Discord的优势**: 1. **国际化平台** - 全球用户基础 - 多语言支持 - 社区活跃 2. **开发布友好** - API完善 - 文档详细 - 权限灵活 3. **功能丰富** - 支持语音频道 - 支持富文本 - 支持自定义表情 **适用场景**: - ✅ 国际团队协作 - ✅ 游戏社区 - ✅ 开源项目 - ✅ 技术交流 ### 9.5.2 创建Discord机器人 **步骤1:访问开发布者门户** https://discord.com/developers/applications **步骤2:创建应用** 1. 点击"New Application" 2. 输入应用名称(如:My OpenClaw Bot) 3. 点击"Create" **步骤3:创建Bot** 1. 在左侧菜单选择"Bot" 2. 点击"Add Bot" 3. 点击"Reset Token" → "Copy" 4. ⚠️ **保存Token**,后续无法再查看 **步骤4:配置Bot权限** 1. 在Bot页面下滑 2. 开启"Message Content Intent" 3. 点击"Save Changes" **步骤5:生成邀请链接** 1. 在左侧菜单选择"OAuth2" → "URL Generator" 2. 在"Scopes"中勾选:`bot` 3. 在"Bot Permissions"中勾选: - Send Messages - Read Message History 4. 复制生成的URL **步骤6:邀请Bot到服务器** 1. 在浏览器中打开刚才复制的URL 2. 选择你的Discord服务器 3. 点击"授权" 4. 完成验证 ### 9.5.3 配置 OpenClaw(旧版命令参考) > ⚠️ **注意**:以下命令使用的是旧版本的`clawdbot`命令,新版本应使用`openclaw`。 **配置步骤**(需要更新为新命令): ```bash # 旧版命令(仅供参考) clawdbot onboard # 新版命令(推荐) openclaw onboard # 配置流程: # 1. 选择 Yes 接受风险 # 2. 选择 QuickStart # 3. 配置模型(如 GLM 4.7) # 4. 选择通道:Discord # 5. 输入 Bot Token # 6. 配置 Skills 和 Hooks ``` **启动服务**: ```bash # 旧版命令 clawdbot gateway --port 18789 --verbose # 新版命令 openclaw gateway --port 18789 --verbose # 后台运行 nohup openclaw gateway --port 18789 --verbose > /dev/null 2>&1 & ``` **配对连接**: ```bash # 1. 在Discord中私聊Bot,获取配对码 # 2. 停止Gateway服务(Ctrl+C) # 3. 运行配对命令(旧版) clawdbot pairing approve discord # 新版命令(需要确认) openclaw pairing approve discord # 4. 重新启动Gateway openclaw gateway --port 18789 --verbose ``` ### 9.5.4 使用Discord Bot **私聊模式**: 1. 在Discord中找到你的Bot 2. 点击Bot头像 3. 点击"发布送消息" 4. 直接发布送消息即可 **群聊模式**: 1. 在频道中@Bot 2. 输入你的访问题 3. Bot会回复你 示例: @MyBot 今天天气怎么样? ### 9.5.5 注意事项 **命令更新**: - 本节使用的`clawdbot`命令已过时 - 新版本统一使用`openclaw`命令 - 配置流程基本相同,但命令需要更新 **配置参考**: - Discord的配置流程仍然有效 - Bot创建步骤没有变化 - 主要是OpenClaw 命令需要更新 **推荐做法**: - 优先使用国内平台(飞书、QQ、企微) - Discord适合国际团队 - 如需使用Discord,请参考最新官方文档 --- ## 9.5 微信接入(ClawBot 官方方案) > 💡 **状态**:公测中(2026年3月随橙皮书 v1.4 发布),基于 WeChatFerry 开源项目。 ### 9.5.1 ClawBot 是什么 **ClawBot** 是 OpenClaw 官方提供的微信接入插件,让你可以在**个人微信**中直接与 OpenClaw 智能体对话。 **核心特点**: - **官方维护**:由 OpenClaw 团队开发和维护,质量有保障 - **基于 WeChatFerry**:使用成熟的 WeChatFerry 开源 hook 方案 - **插件式安装**:一行命令即可安装,无需手动编译 - **实时收发消息**:支持私聊和群聊消息的监听与回复 **适用人群**: - 微信重度用户,希望在微信中使用 AI 助手 - 需要微信群自动化运营(如客户群自动回复) - 已有 OpenClaw 部署环境,想扩展微信渠道 ### 9.5.2 安装步骤 **前提条件**: 1. 已完成 OpenClaw 基础安装(参考第2章) 2. Windows 系统已登录微信 PC 客户端 3. 微信版本需与 WeChatFerry 兼容(查看官方文档获取支持的版本列表) **第一步:安装 ClawBot 插件** ```bash # 安装官方微信插件 openclaw plugins install @openclaw/wechat-clawbot # 验证安装 openclaw plugins list | grep wechat ``` **第二步:配置微信连接** ```bash # 编辑配置文件 openclaw config edit # 或直接设置 openclaw config set channels.wechat.enabled true ``` **第三步:启动并测试** ```bash # 启动 Gateway(会自动加载已安装的插件) openclaw gateway --port 18789 # 在另一个终端查看日志 openclaw gateway logs --follow ``` 启动成功后,在微信中给"文件传输助手"发送测试消息,确认 ClawBot 正常工作。 ### 9.5.3 工作原理 ``` 微信PC客户端 │ ↓ (WeChatFerry Hook) ┌──────────────┐ │ ClawBot 插件 │ ← 监听微信消息事件 └──────┬───────┘ │ ↓ (WebSocket) ┌──────────────┐ │ OpenClaw核心 │ ← AI推理 + Skills处理 └──────┬───────┘ │ ↓ (消息回复) ┌──────────────┐ │ ClawBot 插件 │ ← 通过微信API发送回复 └──────┬───────┘ │ ↓ 微信PC客户端 ``` **流程说明**: 1. ClawBot 通过 WeChatFerry 库 hook 微信 PC 客户端的消息接口 2. 当收到新消息时,ClawBot 将消息转发给 OpenClaw 核心 3. OpenClaw 核心调用 AI 模型生成回复(支持所有已配置的模型) 4. 回复通过 ClawBot 发送回微信 ### 9.5.4 与第三方方案对比 | 特性 | ClawBot(官方) | WeChatFerry(原始) | ComWeChatBot | wxbot | |------|----------------|-------------------|-------------|-------| | **维护方** | OpenClaw 官方 | 社区 | 社区 | 社区 | | **安装难度** | ⭐(一行命令) | ⭐⭐⭐(手动编译) | ⭐⭐⭐ | ⭐⭐ | | **与 OpenClaw 集成** | ✅ 原生集成 | ❌ 需自行开发 | ❌ 需自行开发 | ❌ 需自行开发 | | **Skills 支持** | ✅ 完整支持 | ❌ | ❌ | ❌ | | **稳定性** | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | | **更新频率** | 跟随 OpenClaw | 社区驱动 | 较低 | 社区驱动 | | **推荐度** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | **推荐使用 ClawBot 的理由**: - 原生集成,无需额外开发 - 完整支持 OpenClaw 的 Skills 和 Agent 能力 - 官方维护,更新及时 - 一行命令安装,配置简单 ### 9.5.5 配置与使用 **基本配置**: ```yaml # config.yaml 中的微信渠道配置 channels: wechat: enabled: true # 监听的群聊(留空则监听所有群) groups: - "群名称1" - "群名称2" # 是否响应私聊 private_chat: true # 自动回复的前缀(用于区分AI回复) reply_prefix: "[AI] " ``` **使用技巧**: 1. **群聊场景**:在群聊中 @机器人 或使用特定关键词触发回复 2. **私聊场景**:直接发送消息即可获得 AI 回复 3. **多群管理**:可以为不同群配置不同的 Agent 人设(通过 SOUL.md) 4. **消息格式**:支持 Markdown 格式回复,包含代码块、表格等 ### 9.5.6 注意事项 > ⚠️ **重要风险提示** 1. **个人微信风险** - ClawBot 基于 hook 方案,本质上是对微信客户端的逆向操作 - 虽然基于成熟的开源项目,但仍存在被封号的风险 - **强烈建议使用小号或专用微信号**,不要使用主力微信号 2. **封号风险** - 频繁自动回复可能触发微信的风控机制 - 建议设置回复频率限制(如每分钟最多回复 10 条) - 避免在群聊中发送大量相同内容 3. **合规建议** - 仅用于个人学习和研究用途 - 不要用于商业营销、垃圾消息发送等违规用途 - 遵守微信平台的使用条款 4. **技术限制** - 目前仅支持 Windows 平台(依赖微信 PC 客户端) - 微信版本更新可能导致兼容性问题,需及时关注更新 --- ## 9.6 浏览器渠道(Dashboard v2) > 💡 **状态**:稳定可用,随橙皮书 v1.3 发布 Dashboard v2 全新管理后台。 ### 9.6.1 什么是浏览器渠道 浏览器渠道是 OpenClaw 提供的最简单的使用方式——**直接在浏览器中使用 OpenClaw,无需安装任何客户端或 IM 平台**。 只需在浏览器中打开 Dashboard 地址,就可以: - 与 AI 智能体对话 - 管理理 Skills 和配置 - 查看运行日志和状态 - 上传文件和知识库 ### 9.6.2 适用场景 | 场景 | 说明 | |------|------| | **临时使用** | 在别人电脑或公共电脑上临时使用,不想安装软件 | | **公司电脑受限** | 公司电脑无法安装新软件,但浏览器可以上网 | | **多设备切换** | 在不同电脑上通过浏览器统一访问 | | **团队演示** | 通过浏览器向同事演示 OpenClaw 的功能 | | **快速体验** | 想快速体验 OpenClaw,不想折腾客户端安装 | ### 9.6.3 访问方式与功能 **访问地址**: ``` http://127.0.0.1:18789/ ``` 如果是远程服务器部署,将 `127.0.0.1` 替换为服务器 IP: ``` http://你的服务器IP:18789/?token=你的访问令牌 ``` **Dashboard v2 新功能**(橙皮书 v1.3 发布): - **全新 UI 设计**:更直观的数据展示和配置界面 - **实时对话**:支持流式输出,体验更流畅 - **Skills 管理**:直接在浏览器中安装、启用、禁用 Skills - **模型切换**:可视化切换不同 AI 模型 - **知识库管理**:上传和管理知识库文件 - **日志查看**:实时查看 Gateway 运行日志 - **多用户支持**:支持多用户同时在线使用 **安全建议**: - 本地使用无需特别配置 - 远程访问务必设置 token 认证 - 生产环境建议配置 HTTPS - 使用防火墙限制访问来源 IP --- ## 9.7 平台对比与选择 ### 9.7.1 功能对比 | 功能 | 飞书 | 企业微信 | 钉钉 | QQ | 微信(ClawBot) | |------|------|---------|------|-----|----------------| | 企业怎么办公 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐ | | 即时通讯 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | 文档协作 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐ | ⭐ | | 开发布友好 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | | 用户基础 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | 免费额度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ### 9.7.2 使用场景推荐 **飞书**: ✅ 适合场景: - 现代化怎么办公 - 文档协作 - 知识管理 - 团队协作 - 技术团队 ❌ 不适合: - 传统企业 - 简单需求 **企业微信**: ✅ 适合场景: - 企业内部使用 - 需要与微信互通 - 客户服务 - 营销推广 ❌ 不适合: - 纯个人使用 - 需要复杂文档协作 **钉钉**: ✅ 适合场景: - 企业怎么办公 - 考勤管理 - 审批流程 - 项目管理 ❌ 不适合: - 个人娱乐 - 社交互动 **QQ**: ✅ 适合场景: - 个人使用 - 社交互动 - 娱乐功能 - 学生群体 ❌ 不适合: - 企业怎么办公 - 正式场合 **微信(ClawBot)**: ✅ 适合场景: - 个人微信自动化 - 微信群智能回复 - 客户群运营 - 微信重度用户 ❌ 不适合: - 企业正式办公 - 大规模商业运营(有封号风险) - 对稳定性要求极高的场景 ### 9.7.3 多平台组合策略 **策略1:工作+生活分离** 工作:飞书/企业微信/钉钉 生活:QQ 优势: - 工作生活分离 - 专注度更高 - 管理更方便 **策略2:全平台覆盖** 同时接入所有平台 优势: - 覆盖所有用户 - 随时随地使用 - 功能互补 劣势: - 维护成本高 - 消息分散 **策略3:主次搭配(推荐)** 主平台:飞书(日常使用) 辅平台:企业微信(客户沟通) 优势: - 重点突出 - 成本可控 - 易于管理 --- ## 📝 本章节小结 本章节学习了OpenClaw的多平台集成功能: ### 核心内内容 1. **飞书Bot配置** - 创建飞书应用 - 配置 OpenClaw - 实战案例(个人助手、项目管理) - 与飞书生态集成 - 高级功能(流式输出、多Agent路由) 2. **企业微信Bot配置** - 注册和创建应用 - 配置 OpenClaw - 实战案例(个人助手、团队协作、客户服务) - 手机端使用技巧 3. **钉钉Bot配置** - 创建钉钉应用 - 配置 OpenClaw - 实战案例(工作助手、审批流程) 4. **QQ Bot配置** - 创建QQ机器人 - 配置 OpenClaw - 实战案例(个人助手、群管理、娱乐互动) - 限制和注意事项 5. **微信接入(ClawBot 官方方案)** - 官方插件安装与配置 - 基于 WeChatFerry 的工作原理 - 与第三方方案对比 - 风险提示与注意事项 6. **浏览器渠道(Dashboard v2)** - 零安装使用 OpenClaw - Dashboard v2 全新功能 - 适用场景与安全建议 ### 平台选择 - **飞书**:现代化怎么办公、文档协作、技术团队(推荐优先) - **企业微信**:企业怎么办公、客户服务 - **钉钉**:考勤管理、审批流程 - **QQ**:个人使用、社交互动 - **微信**:微信重度用户、群自动化(注意封号风险) - **浏览器**:临时使用、受限环境、快速体验 ### 实战技巧 - ✅ 选择合适的平台 - ✅ 合理配置权限 - ✅ 优化使用体验 - ✅ 多平台组合使用 - ✅ 遵守平台规则 ### 下一步 - 学习第10章节:API服务封装 - 掌握Banana绘图、Notion同步等 - 构建多功能AI工具箱 --- ## 🎯 实战练习 ### 练习1:配置飞书Bot 1. 注册飞书开放平台 2. 创建应用 3. 配置 OpenClaw 4. 测试文档集成 ### 练习2:配置企业微信Bot 1. 注册企业微信 2. 创建应用 3. 配置 OpenClaw 4. 测试基本功能 ### 练习3:多平台对比 1. 分别体验4个平台 2. 对比功能差异 3. 选择适合自己的平台 --- ## 💡 常见访问题 **Q1:哪个平台最好用?** A:看使用场景。技术团队推荐飞书(开发布友好、功能强大),企业用飞书/钉钉,个人用QQ,客户服务用企业微信。 **Q2:可以同时接入多个平台吗?** A:可以,OpenClaw支持同时接入多个平台。 **Q3:配置复杂吗?** A:云端部署很简单,参考官方教程即可。飞书配置最简单,支持WebSocket长连接。 **Q4:免费吗?** A:平台基础功能都免费,OpenClaw也免费。 **Q5:手机上能用吗?** A:可以,所有平台都支持手机端。飞书的移动端体验最好。 --- ## 📚 参考资源 ### 官方教程 **飞书**: - 快速接入指南:https://cloud.tencent.com/developer/article/2626151 - 视频教程:https://cloud.tencent.com/developer/video/85055 **企业微信**: - 快速接入指南:https://cloud.tencent.com/developer/article/2625147 - 视频教程:https://cloud.tencent.com/developer/video/85003 **钉钉**: - 快速接入指南:https://cloud.tencent.com/developer/article/2626553 - 视频教程:https://cloud.tencent.com/developer/video/85055 **QQ**: - 快速接入指南:https://cloud.tencent.com/developer/article/2626045 - 视频教程:https://cloud.tencent.com/developer/video/85003 ### 社区资源 - OpenClaw社区:https://docs.openclaw.ai - 交流群:扫码加入 - 访问题反馈:GitHub Issues --- **下一章节预告**:第10章节将学习API服务封装,包括Banana绘图集成、Notion数据同步、视频生成服务、语音合成接入等内内容。 ## 9.1.16 多机器人多 Agent 模式:打造你的 AI 助手团队 > 💡 **完整教程**:本节详细介绍如何使用多 Gateway + 多飞书机器人架构,打造专业的 AI 助手团队。 ### 9.1.16.1 为什么需要多 Agent? 作为超级个体创业者,你可能需要不同类型的 AI 助手来处理不同的工作: - **主助理**:使用最强大的模型(Claude Opus)处理复杂任务 - **内内容创作助手**:专注于文章节写作、文案创作 - **技术开发布助手**:处理代码开发布、技术访问题 - **AI 资讯助手**:快速获取和整理 AI 行业动态 传统的单 Agent 模式需要频繁切换模型和上下文,效率低下。多 Agent 模式让你可以同时拥有多个专业助手,各司其职。 ![多Agent架构](https://i-blog.csdnimg.cn/img_convert/d9d0d47052a8dbef500c9ceab133ee7e.png) ### 9.1.16.2 实现方案对比 #### 方案一:单 Gateway + Bindings(不推荐) ```json { "bindings": [ { "agentId": "main-agent", "match": { "channel": "feishu", "peer": { "kind": "group", "id": "oc_xxx" } } } ] } ``` **访问题**: - ❌ OpenClaw 2026.3.2 的 bindings 功能不稳定 - ❌ peer.id 匹配经常失败 - ❌ 所有群组都路由到同一个 agent - ❌ 需要 `/reset` + `/agent` 命令手动切换 #### 方案二:多 Gateway + 多飞书机器人(推荐)✅ **核心思路**: - 创建 4 个飞书机器人应用 - 启动 4 个独立的 OpenClaw Gateway - 每个 Gateway 连接一个飞书机器人 - 每个 Gateway 使用不同的 Agent 和模型 **优势**: - ✅ 完全独立,互不干扰 - ✅ 直接私聊不同机器人即可切换 agent - ✅ 不需要群组配置 - ✅ 不需要手动切换命令 - ✅ 配置清晰,易于管理 - ✅ 可以独立重启某个 Gateway ### 9.1.16.3 架构设计 #### 整体架构 ┌─────────────────────────────────────────────────────────┐ │ 飞书 (Feishu) │ ├─────────────────────────────────────────────────────────┤ │ 机器人1: 主助理 机器人2: 内内容创作助手 │ │ 机器人3: 技术开发布助手 机器人4: AI资讯助手 │ └─────────────────────────────────────────────────────────┘ ↓ WebSocket ┌─────────────────────────────────────────────────────────┐ │ OpenClaw Gateway 层 │ ├──────────────┬──────────────┬──────────────┬────────────┤ │ Gateway 1 │ Gateway 2 │ Gateway 3 │ Gateway 4 │ │ 端口: 18789 │ 端口: 18790 │ 端口: 18791 │ 端口: 18792│ │ Profile: │ Profile: │ Profile: │ Profile: │ │ main- │ content- │ tech-dev │ ai-news │ │ assistant │ creator │ │ │ └──────────────┴──────────────┴──────────────┴────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ Agent 层 │ ├──────────────┬──────────────┬──────────────┬────────────┤ │ main-agent │ content-agent│ tech-agent │ainews-agent│ │ Claude Opus │ Claude Sonnet│ Claude Sonnet│ Gemini 2.5 │ │ 4.6 Thinking │ 4.5 │ 4.5 Thinking │ Flash │ └──────────────┴──────────────┴──────────────┴────────────┘ #### Profile 隔离机制 使用 `--profile ` 参数,OpenClaw 会: - 配置文件:`~/.openclaw-/openclaw.json` - 状态数据:`~/.openclaw-/` - 独立端口:18789, 18790, 18791, 18792 - 独立会话:完全隔离的上下文 ### 9.1.16.4 配置步骤 #### 第一步:创建飞书机器人应用 在飞书开放平台创建 4 个机器人应用: 1. **主助理** - 应用名称:主助理 - 描述:处理复杂任务的主力助手 - 获取 App ID 和 App Secret 2. **内内容创作助手** - 应用名称:内内容创作助手 - 描述:专注内内容创作和文案写作 - 获取 App ID 和 App Secret 3. **技术开发布助手** - 应用名称:技术开发布助手 - 描述:处理代码开发布和技术访问题 - 获取 App ID 和 App Secret 4. **AI资讯助手** - 应用名称:AI资讯助手 - 描述:快速获取 AI 行业资讯 - 获取 App ID 和 App Secret **重要配置**: - 启用机器人能力 - 配置事件订阅:选择"长连接"模式 - 添加权限:消息接收、消息发布送 #### 第二步:配置 Agent 创建 4 个 Agent 配置目附录: ```bash mkdir -p agent-configs/{main-agent,content-agent,tech-agent,ainews-agent} ``` 为每个 Agent 创建配置文件: **agent-configs/main-agent/USER.md**: ```markdown # 用户信息 - 姓名:Maynor - 职业:超级个体创业者 - 工作领域:AI 技术、内内容创作、技术开发布 ``` **agent-configs/main-agent/SOUL.md**: ```markdown # Agent 身份 你是 Maynor 的主助理,负责处理各类复杂任务。使用 Claude Opus 4.6 Thinking 模型,提供最高质量的服务。 ``` 类似地为其他 3 个 Agent 创建配置文件。 #### 第三步:运行配置脚本 使用自动化脚本创建多 Gateway 配置: ```bash # 下载配置脚本 curl -O https://example.com/setup-multi-gateway.sh chmod +x setup-multi-gateway.sh # 运行配置脚本 ./setup-multi-gateway.sh ``` 脚本会自动: 1. 停止当前 Gateway 2. 备份现有配置 3. 创建 4 个独立的 Profile 配置 4. 生成管理脚本 #### 第四步:启动所有 Gateway ```bash # 启动所有 Gateway ./start-all-gateways.sh # 检查状态 ./check-gateways.sh # 验证配置 ./verify-setup.sh ``` ### 9.1.16.5 使用方法 #### 直接私聊机器人 这是最简单的使用方式: 1. **处理复杂任务** - 在飞书中搜索"主助理"机器人 - 直接发布送消息 - 自动使用 Claude Opus 4.6 Thinking 2. **创作内内容** - 搜索"内内容创作助手"机器人 - 发布送写作需求 - 自动使用 Claude Sonnet 4.5 3. **开发布代码** - 搜索"技术开发布助手"机器人 - 发布送技术访问题 - 自动使用 Claude Sonnet 4.5 Thinking 4. **获取资讯** - 搜索"AI资讯助手"机器人 - 请求最新动态 - 自动使用 Gemini 2.5 Flash(快速响应) #### 在群组中使用(可选) 如果需要在群组中使用: 1. 将对应的机器人添加到群组 2. @ 机器人发布送消息 3. 每个群组可以添加多个机器人,灵活切换 **建议**: - 工作群:添加主助理 + 技术开发布助手 - 内内容创作群:添加内内容创作助手 - 资讯群:添加 AI资讯助手 ### 9.1.16.6 管理和维护 #### 日常管理 ```bash # 查看所有 Gateway 状态 ./check-gateways.sh # 查看实时日志 tail -f logs-main-assistant.log tail -f logs-content-creator.log tail -f logs-tech-dev.log tail -f logs-ai-news.log # 查看所有日志 tail -f logs-*.log ``` #### 重启 Gateway ```bash # 重启所有 ./stop-all-gateways.sh sleep 2 ./start-all-gateways.sh # 重启单个 ps aux | grep "openclaw.*--profile main-assistant" kill ./start-main-assistant.sh ``` #### 修改配置 ```bash # 编辑配置 vim ~/.openclaw-main-assistant/openclaw.json # 验证配置 jq . ~/.openclaw-main-assistant/openclaw.json # 重启生效 # (停止并重启对应的 Gateway) ``` #### 监控资源 ```bash # 查看内存占用 ps aux | grep openclaw-gateway | awk '{print $4, $11}' # 查看 CPU 占用 ps aux | grep openclaw-gateway | awk '{print $3, $11}' # 查看端口占用 lsof -i :18789 lsof -i :18790 lsof -i :18791 lsof -i :18792 ``` ### 9.1.16.7 实战案例 #### 案例一:内内容创作工作流 **场景**:写一篇技术文章节 1. **构思阶段** - 私聊"主助理":讨论文章节主题和大纲 - 使用 Claude Opus 进行深度思考 2. **写作阶段** - 私聊"内内容创作助手":撰写文章节内内容 - 使用 Claude Sonnet 快速生成 3. **代码示例** - 私聊"技术开发布助手":编写代码示例 - 使用 Claude Sonnet Thinking 确保代码质量 4. **资讯补充** - 私聊"AI资讯助手":获取最新技术动态 - 使用 Gemini Flash 快速检索 #### 案例二:技术开发布工作流 **场景**:开发布一个新功能 1. **需求分析** - 主助理:分析需求,设计架构 2. **代码实现** - 技术开发布助手:编写代码,调试访问题 3. **文档编写** - 内内容创作助手:编写技术文档 4. **技术调研** - AI资讯助手:查找相关技术资料 #### 案例三:日常工作场景 **上午 9:00 - 规划工作** - 主助理:制定今天的工作计划 **上午 10:00 - 写作** - 内内容创作助手:撰写文章节 **下午 2:00 - 开发布** - 技术开发布助手:编写代码 **下午 4:00 - 学习** - AI资讯助手:了解行业动态 **晚上 8:00 - 总结** - 主助理:总结今天的工作 ### 9.1.16.8 性能和成本 #### 资源占用 - **内存**:每个 Gateway 约 400MB - **总内存**:4 个 Gateway 约 1.6GB - **CPU**:空闲时几乎为 0,处理时根据任务而定 - **磁盘**:配置文件和日志约 100MB #### 成本分析 假设使用自建 API 代理: | Agent | 模型 | 用途 | 月使用量 | 月成本 | |-------|------|------|----------|--------| | main-agent | Claude Opus 4.6 | 复杂任务 | 100万 tokens | $15 | | content-agent | Claude Sonnet 4.5 | 内内容创作 | 200万 tokens | $6 | | tech-agent | Claude Sonnet 4.5 | 技术开发布 | 150万 tokens | $4.5 | | ainews-agent | Gemini 2.5 Flash | 资讯获取 | 300万 tokens | $0 | | **总计** | - | - | 750万 tokens | **$25.5** | **成本优化建议**: - 简单任务使用 Gemini Flash(免费) - 复杂任务才使用 Claude Opus - 内内容创作使用 Claude Sonnet(性价比高) ### 9.1.16.9 故障排查 #### Gateway 启动失败 **症状**:运行 `./start-all-gateways.sh` 后,`./check-gateways.sh` 显示进程未运行 **排查步骤**: ```bash # 1. 查看日志 tail -50 logs-main-assistant.log # 2. 检查配置 jq . ~/.openclaw-main-assistant/openclaw.json # 3. 检查端口占用 lsof -i :18789 # 4. 运行 doctor openclaw --profile main-assistant doctor ``` **常见访问题**: - 配置文件格式错误:运行 `jq` 验证 - 端口被占用:更换端口或停止占用进程 - 飞书配置错误:检查 App ID 和 App Secret #### 机器人无响应 **症状**:在飞书中 @ 机器人,没有回复 **排查步骤**: ```bash # 1. 检查 Gateway 是否运行 ./check-gateways.sh # 2. 查看实时日志 tail -f logs-main-assistant.log # 3. 检查飞书连接 grep "WebSocket client started" logs-main-assistant.log ``` **常见原因**: - Gateway 未启动:运行 `./start-all-gateways.sh` - 飞书连接断开:检查网络,重启 Gateway - 配置错误:验证飞书 App ID 和 Secret #### 使用了错误的 Agent **症状**:私聊"内内容创作助手",但使用的是 Claude Opus 模型 **原因**:配置文件中 Agent 设置错误 **解决**: ```bash # 检查配置 jq '.agents.list[0].id, .agents.list[0].model.primary' \ ~/.openclaw-content-creator/openclaw.json # 应该输出: # "content-agent" # "local-antigravity/claude-sonnet-4-5" ``` ### 9.1.16.10 高级技巧 #### 技巧一:使用 tmux 管理 ```bash # 创建 tmux 会话 tmux new -s openclaw # 分割窗口 Ctrl+b % # 垂直分割 Ctrl+b " # 水平分割 # 在不同窗口中运行不同的 Gateway ./start-main-assistant.sh ./start-content-creator.sh ./start-tech-dev.sh ./start-ai-news.sh # 查看所有日志 tail -f logs-*.log ``` #### 技巧二:配置开机自启动 使用 launchd(macOS): ```bash # 创建 plist 文件 cat > ~/Library/LaunchAgents/com.openclaw.main-assistant.plist << 'EOF' Label com.openclaw.main-assistant ProgramArguments /usr/local/bin/openclaw --profile main-assistant gateway run RunAtLoad KeepAlive EOF # 加载服务 launchctl load ~/Library/LaunchAgents/com.openclaw.main-assistant.plist ``` #### 技巧三:日志轮转 ```bash # 创建日志轮转脚本 cat > rotate-logs.sh << 'EOF' #!/bin/zsh for log in logs-*.log; do if [ -f "$log" ] && [ $(stat -f%z "$log") -gt 10485760 ]; then mv "$log" "$log.$(date +%Y%m%d_%H%M%S)" touch "$log" fi done EOF chmod +x rotate-logs.sh # 添加到 crontab(每小时执行) crontab -e # 添加:0 * * * * /path/to/rotate-logs.sh ``` ### 9.1.16.11 总结 多 Gateway + 多飞书机器人的方案是目前最稳定、最简单的多 Agent 实现方式: **核心优势**: - ✅ 直接私聊不同机器人,自动使用对应 agent - ✅ 完全独立,互不干扰 - ✅ 不需要复杂的 bindings 配置 - ✅ 不需要手动切换命令 - ✅ 配置清晰,易于管理 **适用场景**: - 超级个体创业者 - 需要多个专业助手 - 不同任务使用不同模型 - 追求稳定性和可靠性 **下一步**: 1. 创建飞书机器人应用 2. 运行配置脚本 3. 启动所有 Gateway 4. 开始使用你的 AI 助手团队! --- ## 9.1.17 多 Agent 配置(传统方式) > ⚠️ **注意**:本节介绍的是传统的单 Gateway + Bindings 方式,推荐使用上面的多 Gateway 方案。 ### 什么是多 Agent? 多 Agent 配置允许: - 每个飞书机器人使用不同的 Agent - 每个 Agent 使用不同的模型 - 每个 Agent 使用独立的工作空间 - 每个 Agent 有独立的配置和上下文 ### 9.1.17.1 配置结构(传统方式) ```json { "agents": { "list": [ { "id": "agent-id", "workspace": "/path/to/workspace", "model": { "primary": "provider/model" } } ], "defaults": { "compaction": { "mode": "safeguard" }, "maxConcurrent": 4 } }, "channels": { "feishu": { "accounts": { "bot-name": { ... } } } }, "bindings": [ { "agentId": "agent-id", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_user_id" } } } ] } ``` ### 9.1.17.2 实战案例:4个专业助手(传统方式) **场景**:一人公司,需要不同的专业助手处理不同任务。 **配置示例**: ```json { "agents": { "list": [ { "id": "main-agent", "workspace": "/Users/username/clawd", "model": { "primary": "anthropic/claude-sonnet-4" } }, { "id": "content-agent", "workspace": "/Users/username/clawd/content", "model": { "primary": "anthropic/claude-sonnet-4" } }, { "id": "tech-agent", "workspace": "/Users/username/clawd/tech", "model": { "primary": "anthropic/claude-sonnet-4" } }, { "id": "ainews-agent", "workspace": "/Users/username/clawd/ainews", "model": { "primary": "google/gemini-2-flash" } } ], "defaults": { "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } } }, "channels": { "feishu": { "accounts": { "main-assistant": { "appId": "cli_main_xxx", "appSecret": "xxx", "botName": "主助理" }, "content-creator": { "appId": "cli_content_xxx", "appSecret": "xxx", "botName": "内内容创作助手" }, "tech-dev": { "appId": "cli_tech_xxx", "appSecret": "xxx", "botName": "技术开发布助手" }, "ai-news": { "appId": "cli_news_xxx", "appSecret": "xxx", "botName": "AI资讯助手" } } } }, "bindings": [ { "agentId": "main-agent", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_xxx1" } } }, { "agentId": "content-agent", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_xxx2" } } }, { "agentId": "tech-agent", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_xxx3" } } }, { "agentId": "ainews-agent", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_xxx4" } } } ] } ``` ### 9.1.17.3 获取用户 ID(传统方式) **方法1:通过日志获取(推荐)** ```bash # 1. 启动网关并查看日志 openclaw gateway restart openclaw logs --follow # 2. 在飞书中给每个机器人发布送消息 # 3. 在日志中查找 open_id # 格式:ou_xxxxxxxxxxxxxxxx ``` **日志示例**: [feishu] Received message from ou_18d36d8a49c010dfe20ace2a29250c04 [feishu] Bot: 主助理 **方法2:通过配对请求获取** ```bash openclaw pairing list feishu # 输出示例: # Pending pairing requests: # - Code: ABC123, User: ou_xxx, Bot: 主助理 ``` ### 9.1.17.4 配置步骤(传统方式) **步骤1:创建工作空间目附录** ```bash mkdir -p /Users/username/clawd/content mkdir -p /Users/username/clawd/tech mkdir -p /Users/username/clawd/ainews ``` **步骤2:获取所有用户 ID** 按照上面的方法,获取每个机器人对应的用户 ID。 **步骤3:更新配置文件** 将获取到的用户 ID 填入 `bindings` 部分。 **步骤4:应用配置** ```bash # 备份现有配置 cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup # 应用新配置 cp your-config.json ~/.openclaw/openclaw.json # 验证配置 openclaw doctor # 重启网关 openclaw gateway restart ``` **步骤5:验证运行** ```bash # 查看 Agent 状态 openclaw doctor # 应该看到: # Agents: main-agent (default), content-agent, tech-agent, ainews-agent # Session store: 4 entries # 查看日志 openclaw logs --follow | grep bindings # 应该看到: # [bindings] Matched agent: main-agent for user ou_xxx ``` ### 9.1.17.5 配置注意事项 **⚠️ 重要:agents.list 配置限制** 这是最常见的配置错误!`agents.list` 中的每个 Agent 只能包含以下字段: ```json { "id": "agent-id", // ✅ Agent 标识符(必填) "workspace": "/path", // ✅ 工作空间路径(必填) "model": { "primary": "" } // ✅ 使用的模型(可选) // ❌ 不能包含 compaction // ❌ 不能包含 maxConcurrent // ❌ 不能包含 subagents // ❌ 不能包含 models } ``` **错误示例(会导致配置验证失败)**: ```json { "agents": { "list": [ { "id": "main-agent", "workspace": "/path", "compaction": { "mode": "safeguard" }, // ❌ 错误! "maxConcurrent": 4 // ❌ 错误! } ] } } ``` **正确示例**: ```json { "agents": { "list": [ { "id": "main-agent", "workspace": "/path", "model": { "primary": "provider/model" } // ✅ 正确 } ], "defaults": { "compaction": { "mode": "safeguard" }, // ✅ 在这里配置 "maxConcurrent": 4, // ✅ 在这里配置 "subagents": { "maxConcurrent": 8 } // ✅ 在这里配置 } } } ``` **2. 通用配置必须放在 agents.defaults**: 所有 Agent 共分享的配置项必须放在 `agents.defaults` 中,包括: - `compaction` - 上下文压缩策略 - `maxConcurrent` - 最大并发布数 - `subagents` - 子 Agent 配置 - `models` - 额外的模型配置 ```json { "defaults": { "model": { "primary": "default-provider/default-model" }, "workspace": "/default/workspace", "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } } } ``` **3. Bindings 顺序很重要**: OpenClaw 会按顺序匹配 bindings,第一个匹配的规则会被使用。 ```json "bindings": [ // 1. 最具体的匹配(特定用户) { "agentId": "main-agent", "match": { "peer": { "id": "ou_xxx" } } }, // 2. 较具体的匹配(特定群组) { "agentId": "tech-agent", "match": { "peer": { "kind": "group" } } }, // 3. 最后是默认匹配 { "agentId": "default-agent", "match": { "channel": "feishu" } } ] ``` **4. 用户 ID 是唯一的**: 每个飞书用户只能绑定到一个 Agent。 ### 故障排查 **访问题1:配置验证失败 - agents.list 包含不支持的字段** ```bash # 错误信息 Config invalid File: ~/.openclaw/openclaw.json Problem: - agents.list.0: Unrecognized keys: "compaction", "maxConcurrent" - agents.list.1: Unrecognized keys: "compaction", "maxConcurrent" - agents.list.2: Unrecognized keys: "compaction", "maxConcurrent" - agents.list.3: Unrecognized keys: "compaction", "maxConcurrent" Run: openclaw update repair openclaw doctor ``` **原因**:`agents.list` 中的 Agent 配置包含了只能在 `agents.defaults` 中使用的字段。 **解决方案**: ```bash # 方法1:自动修复(推荐) openclaw update repair openclaw doctor # 方法2:手动修复 # 编辑配置文件,将 compaction 和 maxConcurrent 从 agents.list 移到 agents.defaults ``` **修复前**: ```json { "agents": { "list": [ { "id": "main-agent", "workspace": "/path", "compaction": { "mode": "safeguard" }, // ❌ 错误位置 "maxConcurrent": 4 // ❌ 错误位置 } ] } } ``` **修复后**: ```json { "agents": { "list": [ { "id": "main-agent", "workspace": "/path", "model": { "primary": "provider/model" } } ], "defaults": { "compaction": { "mode": "safeguard" }, // ✅ 正确位置 "maxConcurrent": 4 // ✅ 正确位置 } } } ``` **验证修复**: ```bash # 验证配置 openclaw doctor # 应该看到: # ✅ Config valid # ✅ 4 agents configured # ✅ 4 bindings configured ``` **访问题2:Bindings 不生效** ```bash # 检查用户 ID 是否正确 openclaw logs --follow | grep "ou_" # 查看 bindings 匹配情况 openclaw logs --follow | grep bindings ``` **访问题3:找不到用户 ID** ```bash # 使用 debug 级别日志 openclaw logs --follow --level debug # 或查看配对请求 openclaw pairing list feishu ``` **访问题4:配置修改后运行 openclaw doctor 报错** ```bash # 错误信息 Unknown config keys: - agents.list[0].compaction - agents.list[0].maxConcurrent - agents.list[1].compaction - agents.list[1].maxConcurrent ... Run `openclaw update repair` and then `openclaw doctor` to remove these keys. ``` **解决方案**: ```bash # 运行自动修复 openclaw update repair openclaw doctor # 验证配置 openclaw doctor # 重启网关 openclaw gateway restart # 查看状态 openclaw gateway status ``` **访问题5:版本不匹配警告** ```bash # 警告信息 Config was last written by a newer OpenClaw (2026.2.6-3); current version is 2026.2.1-zh.3. Run `openclaw update repair` and then `openclaw doctor` to apply changes. ``` **说明**:这是正常的版本提示,不影响使用。如果想消除警告: ```bash openclaw update repair openclaw doctor ``` ### 9.1.17.6 配置对比 | 特性 | 单 Agent 模式 | 多 Agent 模式 | |------|--------------|--------------| | 配置复杂度 | 简单 | 复杂 | | 模型选择 | 所有机器人相同 | 每个机器人不同 | | 工作空间 | 共分享 | 隔离 | | 需要 bindings | ❌ | ✅ | | 需要用户 ID | ❌ | ✅ | | 适用场景 | 简单使用 | 专业分工 | ### 9.1.17.7 使用建议 **推荐使用多 Agent 的场景**: - ✅ 需要不同机器人使用不同模型 - ✅ 需要隔离工作空间 - ✅ 需要独立配置和上下文 - ✅ 专业分工明确 **推荐使用单 Agent 的场景**: - ✅ 配置简单易维护 - ✅ 所有机器人使用相同模型 - ✅ 不需要隔离工作空间 - ✅ 快速开始使用 --- ## 9.1.18 本地多 Agent 管理(无需绑定 IM 平台) > 💡 **重要提示**:多 Agent 管理不仅可以用于飞书等 IM 平台,也完全支持本地使用。如果你不需要绑定飞书机器人,可以通过 Web UI、命令行或 TUI 界面直接使用多个 Agent。 ![本地多Agent管理界面 - Web UI/命令行/TUI三种方式](https://upload.maynor1024.live/file/1770944487857_image-20260213090121654.png) ### 本地使用方式 OpenClaw 提供了多种本地使用方式,无需配置任何 IM 平台: #### 方式一:Web UI(推荐) ```bash # 打开 Web 界面 openclaw dashboard # 或直接访问 http://127.0.0.1:18789/?token=你的token ``` **优势**: - ✅ 图形化界面,操作直观 - ✅ 支持文件上传和下载 - ✅ 实时显示 Token 消耗 - ✅ 支持多轮对话历史 #### 方式二:命令行对话 ```bash # 直接发布送消息 openclaw agent --message "你好,帮我分析一下这个项目" # 使用管道输入 echo "帮我总结这个文件的内内容" | openclaw agent --message # 指定输出文件(使用重定向) openclaw agent --message "生成项目文档" > docs.md ``` **优势**: - ✅ 快速执行单次任务 - ✅ 适合脚本自动化 - ✅ 可以集成到工作流中 #### 方式三:TUI 终端界面 ```bash # 启动终端交互界面 openclaw tui ``` **优势**: - ✅ 终端内交互式对话 - ✅ 支持多轮对话 - ✅ 适合服务器环境使用 ### 本地多 Agent 配置 配置文件位置:`~/.openclaw/openclaw.json` **配置示例**: ```json { "agents": { "list": [ { "id": "main-agent", "workspace": "/Users/username/work", "model": { "primary": "anthropic/claude-sonnet-4" } }, { "id": "content-agent", "workspace": "/Users/username/content", "model": { "primary": "anthropic/claude-sonnet-4" } }, { "id": "code-agent", "workspace": "/Users/username/code", "model": { "primary": "deepseek/deepseek-chat" } }, { "id": "research-agent", "workspace": "/Users/username/research", "model": { "primary": "google/gemini-2-flash" } } ], "defaults": { "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } } } } ``` **配置说明**: 1. **agents.list**:定义所有可用的 Agent - `id`:Agent 标识符(必填) - `workspace`:工作空间路径(必填) - `model.primary`:使用的模型(可选) 2. **agents.defaults**:所有 Agent 共分享的配置 - `compaction`:上下文压缩策略 - `maxConcurrent`:最大并发布数 - `subagents`:子 Agent 配置 ### Agent 管理命令 #### 列出所有 Agent ```bash openclaw agents list # 输出示例: # Available agents: # - main-agent (default) # Workspace: /Users/username/work # Model: anthropic/claude-sonnet-4 # - content-agent # Workspace: /Users/username/content # Model: anthropic/claude-sonnet-4 # - code-agent # Workspace: /Users/username/code # Model: deepseek/deepseek-chat # - research-agent # Workspace: /Users/username/research # Model: google/gemini-2-flash ``` #### 切换 Agent ```bash # 切换到指定 Agent openclaw agents switch content-agent # 输出: # Switched to agent: content-agent # Workspace: /Users/username/content # Model: anthropic/claude-sonnet-4 ``` #### 查看当前 Agent ```bash # 查看当前使用的 Agent openclaw agents current # 输出: # Current agent: content-agent # Workspace: /Users/username/content # Model: anthropic/claude-sonnet-4 ``` #### 查看 Agent 配置 ```bash # 查看指定 Agent 的配置 openclaw agents config content-agent # 查看当前 Agent 的配置 openclaw agents config ``` #### 查看 Agent 状态 ```bash # 查看所有 Agent 的状态 openclaw doctor # 输出示例: # ✅ Config valid # ✅ 4 agents configured # ✅ Gateway running # ✅ Session store: 12 entries ``` ### 实战案例:4个专业助手 **场景**:个人开发布者,需要不同的专业助手处理不同任务。 **配置步骤**: **步骤1:创建工作空间目附录** ```bash mkdir -p ~/work/main mkdir -p ~/work/content mkdir -p ~/work/code mkdir -p ~/work/research ``` **步骤2:编辑配置文件** ```bash # 备份现有配置 cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup # 编辑配置 nano ~/.openclaw/openclaw.json ``` 将上面的配置示例粘贴进去,修改路径为你的实际路径。 **步骤3:验证配置** ```bash # 验证配置是否正确 openclaw doctor # 应该看到: # ✅ Config valid # ✅ 4 agents configured ``` **步骤4:重启网关** ```bash # 重启网关使配置生效 openclaw gateway restart # 查看状态 openclaw gateway status ``` **步骤5:使用不同的 Agent** ```bash # 使用主助手处理通用任务 openclaw agents switch main-agent openclaw agent --message "帮我整理今天的待怎么办事项" # 使用内内容助手创作文章节 openclaw agents switch content-agent openclaw agent --message "帮我写一篇关于 AI 的文章节" # 使用代码助手开发布项目 openclaw agents switch code-agent openclaw agent --message "帮我优化这段 Python 代码" # 使用研究助手搜集资料 openclaw agents switch research-agent openclaw agent --message "帮我搜集关于量子计算的最新研究" ``` ### 使用场景对比 | 场景 | 推荐方式 | Agent 配置 | 优势 | |------|---------|-----------|------| | 个人本地使用 | Web UI + 多 Agent | 不同任务用不同 Agent | 工作空间隔离,模型灵活 | | 团队协作 | 飞书 + 多 Agent | 不同机器人绑定不同 Agent | 团队成员各用各的助手 | | 快速测试 | 命令行 + 单 Agent | 使用默认 Agent | 配置简单,快速上手 | | 服务器环境 | TUI + 多 Agent | 不同项目用不同 Agent | 终端内交互,资源隔离 | ### 典型工作流 **场景:一人公司的日常工作流** ```bash # 早上:使用主助手查看日程 openclaw agents switch main-agent openclaw agent --message "显示今天的日程安排" # 上午:使用代码助手开发布项目 openclaw agents switch code-agent openclaw agent --message "帮我实现用户登录功能" # 中午:使用研究助手学习新技术 openclaw agents switch research-agent openclaw agent --message "搜集 Rust 语言的学习资料" # 下午:使用内内容助手写文章节 openclaw agents switch content-agent openclaw agent --message "写一篇关于今天开发布经验的博客" # 晚上:使用主助手总结一天 openclaw agents switch main-agent openclaw agent --message "生成今日工作总结" ``` ### 配置技巧 **技巧1:为不同任务使用不同模型** ```json { "agents": { "list": [ { "id": "chat-agent", "workspace": "/Users/username/chat", "model": { "primary": "anthropic/claude-sonnet-4" } }, { "id": "code-agent", "workspace": "/Users/username/code", "model": { "primary": "deepseek/deepseek-chat" } }, { "id": "fast-agent", "workspace": "/Users/username/fast", "model": { "primary": "google/gemini-2-flash" } } ] } } ``` **说明**: - Claude Sonnet 4:通用对话和复杂任务 - DeepSeek:代码生成和技术访问题 - Gemini Flash:快速响应和简单任务 **技巧2:使用别名简化切换** ```bash # 在 ~/.zshrc 或 ~/.bashrc 中添加别名 alias oc-main='openclaw agents switch main-agent' alias oc-code='openclaw agents switch code-agent' alias oc-content='openclaw agents switch content-agent' alias oc-research='openclaw agents switch research-agent' # 使用别名快速切换 oc-code openclaw agent --message "帮我写一个排序算法" ``` **技巧3:为每个 Agent 配置独立的 Skills** ```bash # 为代码助手安装开发布相关的 Skills openclaw agents switch code-agent clawhub install github-integration clawhub install code-review # 为内内容助手安装写作相关的 Skills openclaw agents switch content-agent clawhub install grammar-check clawhub install seo-optimizer ``` ### 常见访问题 **访问题1:切换 Agent 后工作空间没变** ```bash # 检查当前 Agent openclaw agents current # 检查配置 openclaw agents config # 重启网关 openclaw gateway restart ``` **访问题2:找不到 Agent** ```bash # 列出所有 Agent openclaw agents list # 检查配置文件 cat ~/.openclaw/openclaw.json | grep -A 5 "agents" ``` **访问题3:Agent 配置验证失败** ```bash # 运行诊断 openclaw doctor # 自动修复 openclaw update repair openclaw doctor ``` ### 最佳实践 1. **工作空间隔离** - 为每个 Agent 创建独立的工作空间 - 避免不同任务的文件混在一起 2. **模型选择** - 根据任务类型选择合适的模型 - 代码任务用 DeepSeek,通用任务用 Claude 3. **定期备份** - 定期备份配置文件 - 使用版本控制管理配置 4. **命名规范** - Agent ID 使用有意义的名称 - 工作空间路径清晰明确 5. **资源管理** - 合理设置 maxConcurrent - 定期清理不用的会话 --- ## 9.12 OpenClaw Manager - 可视化管理工具 > 💡 **现代化管理界面**:OpenClaw Manager 是一个基于 React + Tailwind CSS 的 Web 管理界面,用于可视化管理多个 OpenClaw Gateway 实例。 ### 9.12.1 为什么需要 OpenClaw Manager? 当你使用多 Gateway 架构(每个飞书机器人对应一个独立的 Gateway 实例)时,传统的命令行管理方式会变得繁琐。OpenClaw Manager 提供了: **核心价值**: - 📊 **实时监控**:一目了然查看所有 Gateway 的运行状态 - 🎮 **一键控制**:启动/停止/重启服务,无需记忆命令 - ➕ **图形化创建**:通过表单创建新 Gateway,无需手动编辑配置 - ✏️ **在线编辑**:可视化编辑 Gateway 配置和 Agent 人格 - ⚙️ **保活配置**:一键配置 launchd 保活服务 - 📝 **日志查看**:实时查看每个服务的运行日志 - 💻 **美观界面**:现代化设计,响应式布局 ### 9.12.2 功能特性 #### 1. 自动发布现 Gateway 实例 🔍 系统会自动扫描 `~/.openclaw-*` 目附录,读取配置文件并显示所有 Gateway 实例。 **特性**: - 自动读取端口、模型、Agent 信息 - 缓存机制(1分钟 TTL)提升性能 - 支持手动刷新发布现 #### 2. 创建新 Gateway ➕ 通过图形界面创建新的 Gateway 实例,无需手动编辑配置文件。 **配置项**: **基础信息**: - Profile ID:唯一标识符(如 `my-assistant`) - 机器人名称:显示名称(如 `我的助手`) - 端口号:Gateway 监听端口(建议 18789-18799) **Agent 配置**: - Agent ID:Agent 标识符(如 `main-agent`) - AI 模型: - 预设模型:Claude Opus 4.6、Claude Sonnet 4.5、Gemini 2.5 Pro 等 - 自定义模型:输入任意模型 ID(如 `gpt-4o`, `deepseek-chat`) **飞书配置**: - App ID:飞书应用 ID(`cli_xxxxxxxxxxxxxxxx`) - App Secret:飞书应用密钥 **人格设定 📝**: - SOUL.md 编辑器:使用 Markdown 定义 Agent 的角色、性格、专业领域、回答风格 **示例 SOUL.md**: ```markdown # 技术顾访问 Agent ## 角色定位 你是一个资深的技术顾访问,专注于软件架构和系统设计。 ## 性格特点 - 严谨、专业 - 注重细节和最佳实践 - 善于分析复杂访问题 ## 专业领域 - 微服务架构 - 云原生技术 - DevOps 实践 - 性能优化 ## 回答风格 - 先理解需求,再提供方案 - 给出具体可行的建议 - 必要时提供代码示例和架构图 - 考虑可扩展性和维护性 ``` #### 3. 编辑 Gateway ✏️ 修改现有 Gateway 的配置和人格设定。 **可修改项**: - 机器人名称 - 端口号 - Agent ID - AI 模型(预设或自定义) - 飞书 App ID 和 Secret(可选) - SOUL.md 人格设定 **注意事项**: - Profile ID 不可修改 - 飞书密钥留空则不修改 - 修改后需要重启 Gateway 才能生效 #### 4. 删除 Gateway 🗑️ 完全移除 Gateway 实例及其所有配置。 **删除内内容**: - Gateway 配置文件 - Agent 配置目附录 - SOUL.md 人格文件 - launchd 保活配置(如果存在) ⚠️ **警告**:删除操作不可恢复,建议先备份重要配置。 #### 5. 服务控制 🎮 **批量操作**: - ⚙️ 配置保活:配置 launchd 保活服务(开机自启、崩溃重启) - ▶️ 启动所有:启动所有 Gateway 实例 - ⏹️ 停止所有:停止所有 Gateway 实例 - 🔄 重启所有:重启所有 Gateway 实例 **单个操作**: - ✏️ 编辑:编辑 Gateway 配置 - 🗑️ 删除:删除 Gateway - 📝 日志:查看运行日志 #### 6. 实时状态监控 📊 **显示信息**: - 运行状态(运行中/已停止) - 端口号 - 使用的 AI 模型 - launchd 保活状态 **状态指示**: - 🟢 绿色:运行中 - 🔴 红色:已停止 - ⚪ 灰色:未知 **自动刷新**:每 10 秒自动刷新状态,可手动点击"刷新状态"按钮。 ### 9.12.3 安装和使用 #### 安装步骤 ```bash # 1. 克隆项目 git clone https://github.com/xianyu110/openclaw-manager.git cd openclaw-manager # 2. 安装依赖 npm install # 3. 启动服务(前端 + 后端) npm start ``` 应用将在以下地址启动: - 前端:http://localhost:3000 - 后端 API:http://localhost:3001 #### 首次使用 1. **启动应用** ```bash npm start ``` 2. **打开浏览器** 访问 http://localhost:3000 3. **配置保活服务** - 点击"⚙️ 配置保活"按钮 - 等待配置完成 - 服务将自动开机启动并在崩溃后重启 #### 日常操作 **查看服务状态**: - 界面会自动每 10 秒刷新状态 - 点击"刷新状态"按钮手动刷新 - 绿色指示灯表示运行中,红色表示已停止 **控制服务**: - 启动所有:一键启动所有 Gateway - 停止所有:一键停止所有 Gateway - 重启所有:一键重启所有 Gateway - 单个控制:在服务卡片中点击"重启"按钮 **查看日志**: - 点击服务卡片中的"查看日志"按钮 - 显示最近 100 行日志 - 支持实时刷新 ### 9.12.4 使用场景 #### 场景 1:创建专业领域助手 **需求**:创建一个专注于前端开发布的技术助手 **步骤**: 1. 点击"➕ 新建 Gateway" 2. 填写基础信息: - Profile ID: `frontend-expert` - 机器人名称: `前端专家` - 端口: `18793` 3. 配置 Agent: - Agent ID: `frontend-agent` - 模型: `Claude Sonnet 4.5 Thinking` 4. 展开人格编辑器,定义专业领域: ```markdown # 前端开发布专家 ## 角色定位 你是一个资深的前端开发布工程师,精通现代前端技术栈。 ## 专业领域 - React / Vue / Angular - TypeScript - Webpack / Vite - CSS-in-JS / Tailwind CSS - 性能优化 - 浏览器兼内容性 ## 回答风格 - 提供最新的最佳实践 - 给出可运行的代码示例 - 考虑性能和可维护性 - 推荐合适的工具和库 ``` 5. 填写飞书配置 6. 点击"创建" #### 场景 2:使用自定义模型 **需求**:使用 OpenAI 的 GPT-4o 模型 **步骤**: 1. 在创建或编辑 Gateway 时 2. 勾选"使用自定义模型" 3. 输入模型 ID: `gpt-4o` 4. 确保在 OpenClaw 主配置中已设置 OpenAI API Key **支持的自定义模型**: - OpenAI: `gpt-4o`, `gpt-4o-mini`, `gpt-4-turbo` - Anthropic: `claude-3-opus-20240229`, `claude-3-sonnet-20240229` - Google: `gemini-2.5-pro`, `gemini-2.5-flash` - DeepSeek: `deepseek-chat`, `deepseek-coder` - 其他兼内容 OpenAI API 的模型 #### 场景 3:创建多个专业助手 **需求**:为不同团队创建专属助手 **助手配置**: 1. **产品经理助手** - Profile: `product-manager` - 模型: `Claude Opus 4.6` - 人格: 注重用户体验、数据分析、产品规划 2. **设计师助手** - Profile: `designer` - 模型: `Claude Sonnet 4.5` - 人格: 关注视觉设计、用户界面、交互体验 3. **运维工程师助手** - Profile: `devops-engineer` - 模型: `Claude Sonnet 4.5 Thinking` - 人格: 专注系统稳定性、自动化、监控告警 4. **数据分析师助手** - Profile: `data-analyst` - 模型: `Gemini 2.5 Pro` - 人格: 擅长数据处理、可视化、统计分析 ### 9.12.5 高级技巧 #### 1. 人格设定最佳实践 **结构化定义**: ```markdown # Agent 名称 ## 角色定位 明确定义 Agent 的角色和定位 ## 性格特点 - 列出 3-5 个核心性格特点 - 保支持一致性 ## 专业领域 - 列出专业技能 - 明确擅长的领域 ## 回答风格 - 描述回答的方式 - 设定语气和风格 ## 工作流程 1. 步骤化的工作方式 2. 确保逻辑清晰 3. 提供可操作的建议 ## 限制和边界 - 明确不擅长的领域 - 设定合理的期望 ``` #### 2. 模型选择建议 **Claude Opus 4.6**: - 最强推理能力 - 适合复杂访问题分析 - 成本较高 **Claude Sonnet 4.5**: - 平衡性能和成本 - 适合日常对话 - 推荐用于大多数场景 **Claude Sonnet 4.5 Thinking**: - 增强的思考过程 - 适合需要深度分析的场景 - 会显示思考步骤 **Gemini 2.5 Flash**: - 响应速度快 - 成本低 - 适合简单查询和快速响应 **DeepSeek Chat**: - 国产模型,成本极低 - 中文能力强 - 适合日常对话和简单任务 #### 3. 端口分配建议 **推荐范围**:18789-18799 **示例分配**: - 18789: 主助理 - 18790: 内内容创作 - 18791: 技术开发布 - 18792: 数据分析 - 18793: 产品设计 - 18794: 运维支持 - 18795: 客户服务 - 18796-18799: 预留 ### 9.12.6 故障排查 #### 访问题 1:创建 Gateway 失败 **可能原因**: - Profile ID 已存在 - 端口已被占用 - 缺少必填字段 **解决方法**: 1. 检查错误提示 2. 使用不同的 Profile ID 3. 选择未被占用的端口 4. 确保所有必填字段已填写 #### 访问题 2:Gateway 无法启动 **可能原因**: - 配置文件格式错误 - 飞书账号配置错误 - 端口被其他程序占用 **解决方法**: 1. 检查配置文件语法 2. 验证飞书 App ID 和 Secret 3. 使用 `lsof -i :端口号` 检查端口占用 4. 查看日志文件件排查错误 #### 访问题 3:人格设定不生效 **可能原因**: - SOUL.md 文件未保存 - Gateway 未重启 - Agent ID 不匹配 **解决方法**: 1. 确认 SOUL.md 已保存 2. 重启 Gateway 服务 3. 检查 Agent ID 是否正确 4. 查看 `~/.openclaw-{profile}/agent-configs/{agent}/SOUL.md` #### 访问题 4:后端无法连接 ```bash # 检查端口占用 lsof -i :3001 # 手动启动后端 npm run server ``` #### 访问题 5:前端无法访问 ```bash # 检查端口占用 lsof -i :3000 # 清除缓存重新启动 rm -rf node_modules/.vite npm start ``` ### 9.12.7 API 文档 #### 状态查询 **GET /api/status** 获取所有服务的状态信息 响应示例: ```json { "services": [ { "id": "main-assistant", "name": "主助理", "port": 18789, "status": "running", "model": "Claude Opus 4.6", "launchd": true } ] } ``` #### 批量操作 - `POST /api/start-all` - 启动所有 Gateway 服务 - `POST /api/stop-all` - 停止所有 Gateway 服务 - `POST /api/restart-all` - 重启所有 Gateway 服务 - `POST /api/setup-launchd` - 配置 launchd 保活服务 #### 单个服务操作 - `POST /api/start/:serviceId` - 启动指定的 Gateway 服务 - `POST /api/stop/:serviceId` - 停止指定的 Gateway 服务 - `POST /api/restart/:serviceId` - 重启指定的 Gateway 服务 - `GET /api/logs/:serviceId` - 获取指定服务的日志(最近 100 行) #### Gateway 管理 - `GET /api/gateways` - 获取所有 Gateway 配置 - `POST /api/gateways` - 创建新的 Gateway - `PUT /api/gateways/:profileId` - 更新 Gateway 配置 - `DELETE /api/gateways/:profileId` - 删除 Gateway ### 9.12.8 最佳实践 #### 1. 命名规范 **Profile ID**: - 使用小写字母和连字符 - 描述性命名 - 例如: `tech-support`, `content-writer` **Agent ID**: - 与 Profile ID 保支持一致 - 添加 `-agent` 后缀 - 例如: `tech-support-agent` #### 2. 人格设定 **清晰明确**: - 使用简洁的语言 - 避免模糊的描述 - 提供具体的例子 **保支持一致**: - 人格特点要统一 - 回答风格要稳定 - 避免矛盾的设定 **定期优化**: - 根据使用反馈调整 - 不断完善人格设定 - 测试不同的配置 #### 3. 安全建议 **保护敏感信息**: - 不要在 SOUL.md 中包含密钥 - 定期更换飞书 App Secret - 限制 Gateway 的网络访问 **备份配置**: - 定期备份 `~/.openclaw-*` 目附录 - 保存重要的 SOUL.md 文件 - 记附录配置变更 ### 9.12.9 项目信息 **GitHub 仓库**:https://github.com/xianyu110/openclaw-manager **技术栈**: - 前端:React 18 + Tailwind CSS + Vite - 后端:Express + Node.js - 状态管理:React Hooks - 样式:Tailwind CSS **许可证**:MIT **作者**:Maynor (@xianyu110) **贡献**: 欢迎提交 Issue 和 Pull Request! --- ## 9.13 更多 OpenClaw 可视化管理工具 除了 OpenClaw Manager,社区还有以下两款优秀的可视化工具可选: --- ### 9.13.1 ClawX —— 开源 AI 研究助手 > 项目地址:https://clawx.dev/ | GitHub:https://github.com/ValueCell-ai/ClawX **ClawX** 是由 ValueCell 团队开发布的开源桌面应用,在本地运行,专注于 AI 自主任务执行和多平台通知推送。 **核心功能**: | 功能 | 说明 | |------|------| | 24/7 自主运行 | 支持续监控和执行任务,无需人工干预 | | 20+ 通讯平台通知 | 支持 WhatsApp、Telegram、Slack、Discord 等 | | 数据聚合 | 跨多个来源进行网页抓取和数据收集 | | 计划任务 | 基于 Cron 的定时监控功能 | | 多 AI 供应商 | 兼内容 OpenAI、Anthropic、Google 等 10+ 个提供商 | **技术特点**: - TypeScript + React 开发布,支持 macOS / Windows / Linux - 本地优先存储,数据不上云 - 兼内容 OpenClaw 生态 55+ 扩展技能 - MIT 开源,完全免费,只需支付 AI 提供商 API 费用 **获取方式**:访问 [GitHub Releases](https://github.com/ValueCell-ai/ClawX/releases) 下载对应平台安装包。 --- ### 9.13.2 ClawPanel —— OpenClaw 可视化管理面板 > 项目地址:https://claw.qt.cool/ | GitHub:https://github.com/qingchencloud/clawpanel **ClawPanel** 是基于 Tauri v2 构建的跨平台桌面管理面板(当前版本 v0.7.0),专为 OpenClaw Gateway 和多 Agent 日常管理而设计。 **核心功能**: | 功能 | 说明 | |------|------| | Dashboard 监控 | 实时查看 Gateway 状态、服务状态、Agent 数量、模型池 | | AI 对话界面 | 多模型流式对话,WebSocket 连接 Gateway | | 模型配置 | 统一管理 OpenAI、DeepSeek、Kimi 等多个 AI 服务商 | | 记忆管理 | 可视化编辑 Agent 工作记忆、归档、核心配置文件 | | 多 Agent 管理 | 创建和管理多个 Agent,工作空间隔离 | | 工具权限控制 | 细粒度工具权限管理,Token/密码认证 | | 内置 AI 助手 | 一键安装 OpenClaw、配置诊断、自动化故障排查 | **平台支持**: - macOS(Apple Silicon + Intel) - Windows(.exe / .msi) - Linux(AppImage / .deb) **获取方式**:访问 [GitHub Releases](https://github.com/qingchencloud/clawpanel/releases/latest) 下载,MIT 开源免费。 --- ### 9.13.3 三款工具对比 | 工具 | 定位 | 适合场景 | |------|------|---------| | OpenClaw Manager | Web 管理界面,多 Gateway 管理 | 多飞书机器人、多 Gateway 场景 | | ClawX | 桌面应用,自主任务 + 多平台通知 | 定时任务、数据监控、推送通知 | | ClawPanel | 桌面管理面板,全功能可视化 | 日常管理 Gateway、多 Agent、模型配置 | 三款工具均免费开源,可以根据自己的使用场景选择或组合使用。 --- ## 📝 本章节小结 通过本章节学习,你已经掌握: 1. **飞书Bot配置**:完整的飞书机器人创建和配置流程 2. **企业微信Bot**:企业微信机器人的配置方法 3. **钉钉Bot配置**:钉钉机器人的接入步骤 4. **QQ Bot配置**:QQ机器人的详细配置 5. **Discord Bot**:Discord机器人的参考配置 6. **平台对比**:各平台的功能对比和选择建议 7. **多Agent配置**:高级的多Agent管理和配置 8. **本地多Agent**:无需绑定IM平台的本地使用 9. **OpenClaw Manager**:可视化管理工具的使用 10. **ClawX / ClawPanel**:更多开源可视化管理工具选择 ## 🎯 实战练习 1. 配置一个飞书机器人并测试基本功能 2. 尝试配置多个Agent,为不同场景使用不同模型 3. 使用 OpenClaw Manager创建和管理多个Gateway 4. 为每个Agent定制专属的人格设定 5. 配置launchd保活服务,实现开机自启 6. 试用 ClawPanel 或 ClawX,找到最适合自己的管理方式 ## 💡 进阶建议 1. 探索更多IM平台的集成方式 2. 优化Agent的人格设定,提升使用体验 3. 使用 OpenClaw Manager / ClawPanel 简化日常管理 4. 为团队成员创建专属的AI助手 5. 定期备份配置,避免数据丢失 --- **下一章节预告**:第10章节将学习API集成,包括如何对接各种第三方服务,实现更强大的自动化功能。 **返回目附录**:[README](../../README.md) --- ## 🌐 在线阅读 📖 **想在线阅读此章节节?** [🔗 在线阅读此章节节](https://awesome.tryopenclaw.asia/docs/03-advanced/09-multi-platform-integration/) 访问网站获取更好的阅读体验: - 📱 响应式设计,支持手机、平板、电脑 - 支持黑暗模式,保护眼睛 - 🔍 内置搜索功能,快速定位内内容 - 📋 目附录导航,轻松跳转章节节 [🏠 访问完整教网站](https://awesome.tryopenclaw.asia)