1. 🦞OpenClaw 是什么
1.1 核心理念
OpenClaw : 一个24h工作的牛马,一个智能终端,可以无限拓展的业务团队,而我们是作为这个团队的调度中枢 ,未来我们更需要有全局和系统性思维 去构建自己的AI团队实现自己的业务目标,人人都是管理者,提高自身工作效率。当然需要一个好的基础模型,也就意味着更多的💰~~
| 特性 | 说明 |
|---|---|
| 🏠 本地运行 | Gateway 运行在你的设备上(macOS/Linux/WSL2) |
| 🌐 多渠道接入 | 支持 钉钉、Telegram、微信、QQ、飞书 等 |
| ⚡ 功能丰富 | 浏览器爬取、定时任务、文件整理、终端控制等 |
1.2 架构一览
钉钉 / Telegram / 飞书 / QQ / ...
│
▼
┌───────────────────────┐
│ Gateway │ ← 控制平面核心
│ (127.0.0.1:18789) │
└───────────┬───────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
Agents CLI 命令行 浏览器控制
1.3 学习路线
基础:
安装部署 -> config.json配置 -> channel配置(接入手机/电脑端通讯软件)
进阶:
多Agent协作 -> 拓展skill配置
2. 本地部署教程
2.1 系统要求
| 要求 | 最低版本 |
|---|---|
| Node.js | ≥ 22 ✅ |
| 操作系统 | macOS / Linux / Windows WSL2 |
| 包管理器 | npm / pnpm / bun |
⚠️ Node.js 22 是必须项!
2.2 一键安装(推荐)
bash
# macOS / Linux
curl -fsSL https://openclaw.ai/install.sh | bash
# Windows (PowerShell)
iwr -useb https://openclaw.ai/install.ps1 | iex
# 或者使用 npm
npm install -g openclaw@latest
2.3 配置向导
bash
# 完整安装向导 + 安装系统服务
openclaw onboard --install-daemon
按照下面的配置一步一步来安装(首次配置像模型供应商以及模型还有skill这些我们暂时都skip掉,后面再详细配置)


下面这个是因为我本地已经安装过openclaw了,有一个本地的配置,这里我选择使用已有的参数

这里第一次配置供应商给暂时先不配置,我们跳过

供应商同样跳过

这一步模型第一次配置选默认的直接回车就行,后面选好供应商以后配置会自动刷新

渠道选择这里也是skip掉,我们后面会配置飞书

配置skill选择No

下面这个hook可以全选也可以全部跳过,第一次就建议跳过,这个就是一些事件触发的机制,比如保存session的记忆等
细节可以看下链接:https://docs.openclaw.ai/zh-CN/cli/hooks


最后还是配置下sudo免密,开放自己实体机全部权限
1.1 编辑 sudoers 配置
bash
sudo visudo
1.2 添加免密权限
bash
# 在文件末尾添加以下内容(将 lixushi 替换为你实际的用户名):
lixushi ALL=(ALL) NOPASSWD: ALL
# 保存并退出
nano 编辑器:按 Ctrl+O 保存,Enter 确认,Ctrl+X 退出
vim 编辑器:输入 :wq 保存退出
2.4 国内 API 配置
如果你在国内,建议使用国产大模型 API:
| 服务商 | 地址 | 特点 |
|---|---|---|
| MiniMax | https://platform.minimaxi.com/subscribe/coding-plan | 量大便宜效果略差 |
| Kimi | https://www.kimi.com/code?track_id=dc6d610c-0f2f-4ace-b2e6-e27d547a5a71 | 长上下文缓存命中有优惠,复杂任务处理能力强,性价比高 |
| GLM | https://bigmodel.cn/glm-coding | 编程能力强?编程相关agent可以考虑 |
了解一下kimi的缓存命中优势(prefix cache):https://mp.weixin.qq.com/s/c_PFWVJ1ebIJJfXWBwC0Hw
关键点:(1)prefix 命中率越大,命中部分计价远低于未命中部分 (2)mooncake池化管理系统保证高命中率
如果我们已经购买好了上面对应厂商的API,我们以minimax为例(有完善的部署教程,适合新手小白,而且便宜玩玩,建议新入坑还是从minimax玩起):https://platform.minimaxi.com/docs/coding-plan/openclaw
bash
# 配置新模型
openclaw configure





下面选好模型就ok了,config文件会自动刷新

bash
# 查看可用模型
openclaw models list

2.5 验证安装
bash
# 查看版本
openclaw --version
# 查看 Gateway 状态
openclaw gateway status
# 打开控制面板
openclaw dashboard
# 或访问 http://127.0.0.1:18789
3. 快速开始
3.1 启动 Gateway
bash
openclaw gateway start
一定要确保网页端的token和本地的openclaw.json内的token对齐,否则网关的状态会是不正常的


在网页端输入指令确认一下模型是否正常接入 --- 简单介绍下网址的界面内容

3.2 工作空间结构
~/.openclaw/
├── openclaw.json # 核心配置文件
├── workspace/
│ ├── AGENTS.md # 操作指令、连续性规则
│ ├── SOUL.md # 人格定义
│ ├── TOOLS.md # 工具说明
│ ├── USER.md # 用户信息
│ ├── IDENTITY.md # 助手身份
│ ├── MEMORY.md # 长期记忆
│ └── skills/ # 技能目录
└── credentials/ # 凭证存储
3.3 skills市场(claude hub)
bash
https://clawhub.ai/skills?sort=downloads

安装 ClawHub CLI
首先确保已安装 ClawHub 命令行工具:
bash
npm install -g clawhub
几个推荐下载的skill
bash
# 查找技能
clawhub install find-skills
# 访问github,爬取github相关信息,包括pr,commit_id等
clawhub install github
# 恶意skill拦截
clawhub install skill-vetter
# 对不同类型的文件内容总结,包括PDF,图片,yutube等网页或文件信息
clawhub install summarize
# 主动持续改进
clawhub install proactive-agent
# 自我进化,丰富定义文件结构,纠错过程也会记录
clawhub install self-improving
# 人性化
clawhub install humanizer
# skill创建
clawhub install skill-creator
# 自动更新技能
clawhub install auto-updater
# 能点击和输入内容到界面
clawhub install agent-browser
下载的话记得先登录,然后需要创建token,否则会遇到报错,然后报错的具体解决方式就参考下面的github链接:
bash
https://github.com/openclaw/clawhub/issues/589#issuecomment-4005372368
4. 飞书 Channel 实战
本节以飞书为例,详细讲解如何配置多渠道接入。其他渠道(Telegram、Discord 等)配置方式类似。
4.1 为什么选飞书?
- ✅ 国内生态完善
- ✅ 支持群组、单聊
- ✅ WebSocket 长连接,实时性好
- ✅ 支持卡片消息、流式输出
- ✅ 功能丰富(文档、云盘、任务等)
4.2 配置步骤
在正式步骤之前我们需要安装一下飞书的插件,其实和我内网小鲁班配置过程一样,类似会有一个extension的文件夹
新的版本好像内置了飞书插件,我一直没更新,所以得手动安装一下
bash
openclaw plugins install @openclaw/feishu
第一步:创建飞书应用
-
打开 飞书开放平台
-
点击 创建企业自建应用

-
填写应用名称和描述(随便填一下就好)

-
发布应用



-
添加机器人应用能力

-
权限管理,配置机器人权限



这里的json文件可以直接用我的批量导入
bash
{
"scopes": {
"tenant": [
"base:app:copy",
"base:app:create",
"base:app:read",
"base:app:update",
"base:collaborator:create",
"base:collaborator:delete",
"base:collaborator:read",
"base:dashboard:copy",
"base:dashboard:read",
"base:field:create",
"base:field:delete",
"base:field:read",
"base:field:update",
"base:form:read",
"base:form:update",
"base:record:create",
"base:record:delete",
"base:record:read",
"base:record:retrieve",
"base:record:update",
"base:role:create",
"base:role:delete",
"base:role:read",
"base:role:update",
"base:table:create",
"base:table:delete",
"base:table:read",
"base:table:update",
"base:view:read",
"base:view:write_only",
"bitable:app",
"bitable:app:readonly",
"board:whiteboard:node:create",
"board:whiteboard:node:delete",
"board:whiteboard:node:read",
"board:whiteboard:node:update",
"cardkit:card:write",
"contact:contact.base:readonly",
"contact:user.base:readonly",
"contact:user.employee_id:readonly",
"contact:user.employee_number:read",
"contact:user.id:readonly",
"docs:doc",
"docs:doc:readonly",
"docs:document.comment:create",
"docs:document.comment:read",
"docs:document.comment:update",
"docs:document.comment:write_only",
"docs:document.content:read",
"docs:document.media:download",
"docs:document.media:upload",
"docs:document.subscription",
"docs:document.subscription:read",
"docs:document:copy",
"docs:document:export",
"docs:document:import",
"docs:event.document_deleted:read",
"docs:event.document_edited:read",
"docs:event.document_opened:read",
"docs:event:subscribe",
"docs:permission.member",
"docs:permission.member:auth",
"docs:permission.member:create",
"docs:permission.member:delete",
"docs:permission.member:readonly",
"docs:permission.member:retrieve",
"docs:permission.member:transfer",
"docs:permission.member:update",
"docs:permission.setting",
"docs:permission.setting:read",
"docs:permission.setting:readonly",
"docs:permission.setting:write_only",
"docx:document",
"docx:document.block:convert",
"docx:document:create",
"docx:document:readonly",
"drive:drive",
"drive:drive.metadata:readonly",
"drive:drive.search:readonly",
"drive:drive:readonly",
"drive:drive:version",
"drive:drive:version:readonly",
"drive:export:readonly",
"drive:file",
"drive:file.like:readonly",
"drive:file.meta.sec_label.read_only",
"drive:file:download",
"drive:file:readonly",
"drive:file:upload",
"drive:file:view_record:readonly",
"event:ip_list",
"im:app_feed_card:write",
"im:biz_entity_tag_relation:read",
"im:biz_entity_tag_relation:write",
"im:chat",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.announcement:read",
"im:chat.announcement:write_only",
"im:chat.chat_pins:read",
"im:chat.chat_pins:write_only",
"im:chat.collab_plugins:read",
"im:chat.collab_plugins:write_only",
"im:chat.managers:write_only",
"im:chat.members:bot_access",
"im:chat.members:read",
"im:chat.members:write_only",
"im:chat.menu_tree:read",
"im:chat.menu_tree:write_only",
"im:chat.moderation:read",
"im:chat.tabs:read",
"im:chat.tabs:write_only",
"im:chat.top_notice:write_only",
"im:chat.widgets:read",
"im:chat.widgets:write_only",
"im:chat:create",
"im:chat:delete",
"im:chat:moderation:write_only",
"im:chat:operate_as_owner",
"im:chat:read",
"im:chat:readonly",
"im:chat:update",
"im:datasync.feed_card.time_sensitive:write",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.group_msg",
"im:message.p2p_msg:readonly",
"im:message.pins:read",
"im:message.pins:write_only",
"im:message.reactions:read",
"im:message.reactions:write_only",
"im:message.urgent",
"im:message.urgent.status:write",
"im:message.urgent:phone",
"im:message.urgent:sms",
"im:message:readonly",
"im:message:recall",
"im:message:send_as_bot",
"im:message:send_multi_depts",
"im:message:send_multi_users",
"im:message:send_sys_msg",
"im:message:update",
"im:resource",
"im:tag:read",
"im:tag:write",
"im:url_preview.update",
"im:user_agent:read",
"sheets:spreadsheet",
"sheets:spreadsheet.meta:read",
"sheets:spreadsheet.meta:write_only",
"sheets:spreadsheet:create",
"sheets:spreadsheet:read",
"sheets:spreadsheet:readonly",
"sheets:spreadsheet:write_only",
"space:document.event:read",
"space:document:delete",
"space:document:move",
"space:document:retrieve",
"space:document:shortcut",
"space:folder:create",
"wiki:member:create",
"wiki:member:retrieve",
"wiki:member:update",
"wiki:node:copy",
"wiki:node:create",
"wiki:node:move",
"wiki:node:read",
"wiki:node:retrieve",
"wiki:node:update",
"wiki:setting:read",
"wiki:setting:write_only",
"wiki:space:read",
"wiki:space:retrieve",
"wiki:space:write_only",
"wiki:wiki",
"wiki:wiki:readonly"
]
}
}
-
再发布版本一次

-
获取 App ID 和 App Secret

至此,飞书基本配置已经完成,获取到了机器人的 App ID 和 App Secret,后面开始配置openclaw
第二步:配置openclaw以及飞书长链接,保障手机APP和PC端联通
- 配置 OpenClaw
bash
# 命令行添加(推荐)
openclaw config



选择 Feishu ,输入 App ID 和 App Secret 即可。


输入 App ID 和 App Secret




- 订阅方式选择 使用长连接接收事件(WebSocket 模式)
- 添加事件:全都选上就行

- 发布版本: 记得发布一下版本
- 启动与测试
bash
# 启动网关
openclaw gateway start
在飞书中找到机器人,发送消息测试。
第一次发消息会有报错,记得复制一下下面的user_id

然后我们打开openclaw.json的配置文件,下图中框选的部分都要按照我的配置,其次就是 allowFrom里面记得加上上面自己的user_id,可以支持自己和机器人会话

| 配置项 | 说明 |
|---|---|
| groupPolicy: "open" | 允许群组中所有人 |
| groupPolicy: "allowlist" | 仅允许白名单群组 |
| requireMention: true | 需要 @机器人才响应(默认) |
| requireMention: false | 无需 @也响应 |
至此我们的飞书机器人就部署完毕了

5. 多 Agent 玩法
这是 OpenClaw 最强大的特性之一!可以用一个飞书机器人对接多个不同功能的 Agent。
5.1 场景示例
| Agent | 功能 | 用途 |
|---|---|---|
| main | 通用助手 | 日常问答 |
| recruiter | 招聘主管 | 帮你招人 |
| coder | 编程专家 | 代码审查 |
5.2 创建群聊
我们以招聘小助手为例

首先我们要获取群组的群id,用来绑定到不同的agent以及不同的模型上
同样是飞书开放平台
bash
https://open.feishu.cn/api-explorer/cli_a92439e312e39bd1?apiName=add_managers&project=im&resource=chat.managers&version=v1
首先就是需要开通下群组权限

按照下图的方式获取即可,比较简单

复制下面的群id,即 oc_xxxxxxxx的id

5.3 创建agent并绑定群聊
这里我们就通过agent创建一个专门用来招聘的agent就行,这里模型不建议用minimax,成功不了。

记得把机器人拉进群,这样子我们第一个子agent就创建完毕了,根据他的定义是个招聘的HR,我们给他的定义就是可以帮我们创建不同角色的agent

我们尝试一下用他的技能去做些事情,如下图,成功创建了相关agent,符合他的职业内容

配置文件也是正确的,并且能正常工作


8. 参考资料
官方资源
| 资源 | 链接 |
|---|---|
| 官网 | https://openclaw.ai |
| 文档 | https://docs.openclaw.ai |
| GitHub | https://github.com/openclaw/openclaw |
| 技能市场 | https://clawhub.com |