OpenClaw 自学笔记 2026.3.15
概述
人工智能的发展正在经历从“信息检索”到“任务执行”的范式转移。早期的LLM(大语言模型)应用主要集中在内容生成与问答,而下一代AI应用的核心在于“Agency”——即AI感知环境、规划路径并执行操作的能力。然而,主流的云端Agent解决方案面临着数据隐私不可控、上下文记忆碎片化以及与本地环境交互受限等根本性挑战。
Clawd Bot应运而生。它不仅仅是一个聊天机器人,更是一个跨平台的个人AI操作系统。Clawd提出了一种“自带设备(BYOD)”的运行模式,核心组件运行在用户控制的Mac Mini、Linux服务器或树莓派上,而将推理任务通过API外包给Claude Opus、GPT-4或本地开源模型。这种架构不仅确保了用户对记忆和数据的完全掌控,还赋予了AI深度访问本地文件系统、Shell和浏览器的能力,使其成为真正意义上的“数字副驾驶”。

Clawd采用了以网关为中心(Gateway-Centric)的分布式微服务架构。这种设计不仅解耦了通信通道与智能体逻辑,还实现了对多模态输入输出的统一管理。主要将其划分为三部分:

- 神经中枢:Gateway (网关)
Gateway是Clawd系统的核心心脏,是一个基于Node.js(要求v22+)构建的长运行守护进程。它充当了所有外部通信与内部逻辑之间的总线。
单一事实来源(Single Source of Truth): 设计上,Gateway被定义为系统的单一控制平面。它独占管理所有的Channel连接(如飞书的WebSocket连接、Telegram的Bot API轮询)。这种单例模式(Singleton)至关重要,因为许多即时通讯协议(特别是基于Web模拟的协议如飞书 Web)不允许并发会话。Gateway通过维护这些持久连接,确保了消息收发的稳定性和状态的一致性。
网络模型与环回优先(Loopback-First): 安全性是本地Agent的首要考量。Gateway默认绑定在本地环回地址(127.0.0.1:18789),这意味着它不直接向公网暴露端口。这种“环回优先”的网络模型强制要求所有外部访问——无论是来自移动端的Node连接,还是远程管理——必须通过安全的隧道技术(如SSH Tunnel或Tailscale)进行。这从根本上减少了攻击面,防止了未授权的公网扫描和入侵。
协议与控制平面:
Gateway暴露了一个类型化的WebSocket API,用于处理请求/响应(Req/Resp)和服务器推送事件(Server Push Events)。
控制客户端:CLI命令行工具、macOS原生应用、Web管理后台(Dashboard)均作为WebSocket客户端连接至Gateway。
事件总线:Gateway负责分发agent(代理状态)、chat(聊天消息)、presence(在线状态)、health(系统健康)、heartbeat(心跳检测)和cron(定时任务)等核心事件。这种事件驱动的架构使得系统能够实时响应环境变化,例如当用户在手机端上线时,Gateway能立即感知并调整消息路由策略。
- 感知触手:Nodes (节点)
如果说Gateway是Clawd的大脑,那么Nodes就是它的手脚和感官。Node是运行在iOS、Android或macOS等终端设备上的轻量级客户端程序,它们通过WebSocket连接回Gateway,将设备的物理能力虚拟化为可供Agent调用的工具
- 能力虚拟化与远程调用:
Node的设计体现了“端云协同”的思想(这里的“云”指用户的私有服务器)。Agent无需运行在手机上,却能通过Gateway远程调用手机的硬件能力:
视觉能力 (camera.*):Agent可以调用camera.snap指令,触发Android或iOS Node拍摄照片;或调用camera.clip录制短视频。这使得Agent具备了“看见”物理世界的能力。例如,用户可以询问“我的冰箱里还剩什么?”,Agent随即调用摄像头拍摄并分析图像。
地理感知 (location.get):Node能够获取设备的GPS坐标,使得Agent能够提供基于位置的服务(LBS),如“我现在的坐标天气如何?”或“帮我记录停车位置”。
屏幕交互 (screen.record):在Android端,Node甚至支持屏幕录制,为未来的UI自动化操作奠定了基础。
🏷️ 连接机制: Node通过WebSocket与Gateway建立持久连接。为了穿透复杂的网络环境(如从蜂窝网络连接到家中的服务器),Clawd深度集成了Tailscale。Node可以利用Tailscale构建的Mesh网络,直接以内网IP访问Gateway,既保证了连接的稳定性,又维持了端到端的加密安全。
- 交互界面:Canvas (画布)
为了突破传统Chatbot纯文本交互的局限,Clawd引入了Canvas概念,这是一种由Agent驱动的动态视觉界面。
技术实现: Gateway内置了一个HTTP文件服务器(默认监听端口18793),专门用于服务Canvas内容。Canvas本质上是一个由Agent生成的HTML/JavaScript应用,运行在Node端的WebView容器中。
动态交互范式:
- 传统的RAG或Agent通常只能返回文本或静态图片。而Clawd的Canvas允许Agent编写代码来渲染交互式图表、实时地图、看板或复杂的表单。
场景示例:当用户要求“分析本周的服务器负载”时,Agent不仅能返回文字总结,还能在Canvas上绘制一个可缩放的ECharts折线图,用户可以在手机上直接交互查看细节。这种能力将Clawd从一个“对话框”升级为了一个“动态应用生成器” 。
在安全的Docker环境下安装和使用OpenClaw(适用于MacOS)with 飞书
1. 部署位置:你的本地工作电脑既然你需要它读取你当前的屏幕画面(Screen Capture)并处理你电脑里的 Github 项目,它就必须运行在你当前的电脑上,而不是云端服务器。
2. 安装方式:Gateway 走 Docker,Node 走受限本地运行
Gateway(网关): 使用 Docker 安装。这样可以把它的核心大脑、记忆数据库和你的 API 密钥完全隔离在一个虚拟容器里,即使出现漏洞,也无法影响你的宿主机系统。
Node(节点): 在本地原生环境运行,但必须通过配置文件锁死工作目录。
第一步:准备源码目录与工作目录
在终端中执行以下命令,分别创建一个用来放程序的目录,和一个用来给 AI 干活的安全沙盒目录(如果你之前已经建了可以忽略):
# 这个目录专门用来装 OpenClaw 的程序代码
mkdir -p ~/OpenClaw-App
# 这个目录是你用来放特定文件、允许 AI 访问的安全工作区
mkdir -p ~/OpenClaw-Workspace第二步:克隆官方源码
进入程序目录,并将官方仓库下载到本地:
cd ~/OpenClaw-App
git clone https://github.com/openclaw/openclaw.git .第三步:运行官方Docker的安装脚本
在 ~/OpenClaw-App 目录下,依次执行:
# 运行官方的一键安装脚本
./docker-setup.sh第四步:跟着终端向导完成初始化
执行脚本后,会触发完整的官方自动化安装流程:
脚本会自动执行
docker build编译本地镜像(根据网络情况可能需要几分钟)。构建完毕后,终端会自动运行新手引导向导 (onboard)。
向导中的所有内容尽量先跳过,不要着急配置,我们第一步先解决OpenClaw的打开和启动的问题,不着急配置。
在向导中配置完模型和参数后,脚本会通过 Docker Compose 启动 Gateway 网关,并在当前目录下生成
.env文件写入安全令牌。最终,终端会打印出一个本地控制台地址(通常是
http://127.0.0.1:18789/)。
第五步:修改openclaw.json文件,解决鉴权和Docker的网络共享问题
这是 OpenClaw 的一种自我保护(安全隔离)机制。 因为你是用 Docker 运行的 Gateway,对于 OpenClaw 程序来说,它侦听的是 Docker 分配的虚拟网络 IP(例如 0.0.0.0),而不是原生的本机地址(127.0.0.1)。 OpenClaw 发现“咦?访问控制台的请求来源不是最安全的本地回环地址!为了防止局域网里的其他人或黑客越权劫持你的 AI 核心,我必须罢工,除非主人在配置文件里明确给我授权!”
所以,它不断抛出这个安全拦截错误,导致容器无限重启。
- 打开配置文件:在 Mac 的终端里运行下面这条命令。这会使用你系统自带的“文本编辑”App 打开 OpenClaw 生成在本地的配置文件:
open -e ~/.openclaw/openclaw.json- 在
gateway里面找到"bind": "loopback"这一行,把它改成"bind": "lan"。
然后你要做的,就是把这里面的token对应的值记下来,稍后要用。
{
"gateway": {
"port": 18789,
"mode": "local",
"bind": "lan",
"auth": {
"mode": "token",
"token": "6f6737c39e62fc874dbbd282b949d9f86b2e06d974b26cf956888421d9dc3a4b"
},
"controlUi": {
"dangerouslyAllowHostHeaderOriginFallback": true
}
}
}提示:修改完成后,记得按下 Command + S 保存文件,然后关闭窗口。
- 重启并生效:回到终端,在你的
~/OpenClaw-App目录下,执行重启命令,让容器重新加载刚才修改好的配置:
docker compose restart openclaw-gateway刷新你刚才打开的 http://127.0.0.1:18789/ 页面,现在应该就可以正常进入页面了。
页面上应该会提示你缺少 Token,或者你可以点击页面上的概览。
把你的专属 Token 复制进去并保存:

第六步:处理设备配对pairing
现在出现的这个 pairing required(需要配对)并不是报错,而是 OpenClaw 的最后一道安全防线(设备授权)。
它的逻辑是这样的:为了极致的安全,即便有人拿到了你的配置文件和 Token,只要他的浏览器或电脑之前没有被你“信任”过,Gateway 依然会把他拦在门外。它现在其实是在后台等你发话:“主人,有个新浏览器想连我,我要放行吗?”
按照官方针对 Docker 环境的文档,我们只需要在终端里敲两行命令,批准这个设备即可。
- 获取待配对的设备列表:请在您的
~/OpenClaw-App目录下执行以下命令:
docker compose run --rm openclaw-cli devices list
你要做的,就是复制图片上Pending的Request下面的一串码,如图就是60939xxx开头的部分。
- 批准配对请求:在上述命令返回的输出结果中,找到状态为
pending的设备请求所对应的requestId。随后执行以下命令进行批准(请将<requestId>替换为实际的 ID 字符串):
docker compose run --rm openclaw-cli devices approve <requestId>指令执行完毕后,您浏览器中的控制面板将自动完成鉴权,并刷新至正式的主控界面。

现在,你在网页就能看到健康状态应该是正常的了,这时候才意味着OpenClaw在Docker顺利安装完成。可以开始使用了。

第七步:配置沙盒环境
到目前为止,OpenClaw的工作目录在Docker分配的工作目录下,虽然也是安全的,不会影响你电脑的工作环境,但是如果你想添加一个文件让OpenClaw帮你处理,你想找到Docker的这个目录位置也是挺困难的,所以如果有需要,建议按照下面的步骤更换工作区的目录到你熟悉的位置。
在终端中执行这行命令,打开 OpenClaw 的程序配置文件:
open -e ~/OpenClaw-App/docker-compose.ymlOpenClaw 官方设定的沙盒内部路径就是: /home/node/.openclaw/workspace
这段配置里最核心的是这一行:
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
它用了一个环境变量 ${OPENCLAW_WORKSPACE_DIR}。默认情况下,安装脚本可能把它指向了你 Mac 的默认隐藏文件夹(比如 ~/.openclaw/workspace)
最简单粗暴且一劳永逸的办法,就是直接在这里把你的真实路径写死替换掉。
- 修改 YAML 文件:把你看到的那行含有
WORKSPACE_DIR的代码,直接修改成你 Mac 的真实路径。
修改前:
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
修改后(注意保持前面的空格缩进):
- /Users/mengdu/Documents/Openclaw/Openclaw-Workspace:/home/node/.openclaw/workspace:rw
加个 :rw 确保它有完整的读写权限,改好后,按下 Command + S 保存并退出。

- 让 Docker 重新加载:回到终端,在
~/OpenClaw-App目录下运行:
docker compose up -d第八步:配置OpenClaw
使用下面的命令可以进入OpenClaw的配置菜单:
docker compose run --rm openclaw-cli config| 配置项 | 配置内容 |
|---|---|
| I understand this is powerful and inherently risky. Continue? | 选择 "Yes" |
| Onboarding mode | 选择 "QuickStart" |
| Model/auth provider | 选择你所使用的模型提供商 |
| Filter models by provider | 选择你所使用的模型提供商 |
| Default model | 选择你想使用的模型 |
| Select channel (QuickStart) | 选择你想使用的发送通知的app,问你想通过什么软件和它聊天。如果你想用飞书,可以看后面的第十步,这里先跳过,如果是其他的Channel,你可以读官方文档自己配置:https://docs.openclaw.ai/channels |
| Configure skills now? (recommended) | 选择 "No",后续再配置。 |
| Enable hooks? | 按空格键选中选项,按回车键进入下一步。这个hooks官方提前预置的一些OpenClaw的技能点,比如开机自检要做哪些事情、是否开启长期记忆等等。具体可以参考官方的文档:https://docs.openclaw.ai/automation/hooks |
| Enable web_search (Brave Search)? | 你可以跳过或者在这里配置,这个是OpenClaw的网页搜索功能启动选项,如果不配置这个,那么你的OpenClaw是不能上网搜东西的,只是一个本地模型,我建议大家去配置。这个API我目前用不花钱:https://brave.com/search/api/绑定好Visa卡就行,每天的免费额度足够用了。 |
| How do you want to hatch your bot? | 选择 "Web UI"。 |
经历了上面的这些配置,那么你的OpenClaw基本上也算是大功告成了,你可以在网页试试发消息,或者通过你配置的Channel发消息。下面我要补充我自己用的模型、Brave Search和飞书Channel的配置方法。
AI模型配置
我是在淘宝买的API,30块钱十天任用,支持国产的GLM5、Kimi 2.5、MiniMax等等国产比较好的大模型。目前使用下来感觉相当不错:
下单拿到API之后,不要在终端去配置了,直接使用VSCode打开~/.openclaw/openclaw.json,编辑这个文件来配置模型就好了。在JSON的根对象中加入models配置(如果已经存在则替换)。将YOUR_API_KEY替换成你的API KEY:
"models": {
"mode": "merge",
"providers": {
"bailian": {
"baseUrl": "https://coding.dashscope.aliyuncs.com/v1",
"apiKey": "YOUR_API_KEY",
"api": "openai-completions",
"models": [
{
"id": "qwen3.5-plus",
"name": "qwen3.5-plus",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "qwen3-max-2026-01-23",
"name": "qwen3-max-2026-01-23",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "qwen3-coder-next",
"name": "qwen3-coder-next",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "qwen3-coder-plus",
"name": "qwen3-coder-plus",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "MiniMax-M2.5",
"name": "MiniMax-M2.5",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "glm-5",
"name": "glm-5",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 202752,
"maxTokens": 16384
},
{
"id": "glm-4.7",
"name": "glm-4.7",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 202752,
"maxTokens": 16384
},
{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 32768
}
]
}
}
}然后找到agents.defaults对象,并替换或添加以下两个字段:
"model": {
"primary": "bailian/qwen3.5-plus"
},
"models": {
"bailian/qwen3.5-plus": {},
"bailian/qwen3-max-2026-01-23": {},
"bailian/qwen3-coder-next": {},
"bailian/qwen3-coder-plus": {},
"bailian/MiniMax-M2.5": {},
"bailian/glm-5": {},
"bailian/glm-4.7": {},
"bailian/kimi-k2.5": {}
}改完大概是这样:

保存文件,执行重启命令,让容器重新加载刚才修改好的配置:
docker compose restart openclaw-gatewayBrave Search配置
OpenClaw 系统本身不内置网络爬虫,其 web_search 工具在底层依赖于第三方的 Brave Search API 来获取实时网页数据。如果在配置中未提供该 API 的有效密钥,搜索工具将被自动禁用。在您之前提供的终端启动日志中,系统也曾明确提示过:如果不设置 Brave Search API 密钥,网络搜索功能将无法工作。
Brave 搜索是 OpenClaw 首推的网页搜索解决方案。它拥有独立的网页索引系统,不依赖谷歌或必应,在 AI 应用的 RAG(检索增强生成)场景中表现尤为出色。

访问 Brave Search API 官网 api-dashboard.search.brave.com 注册账号,免费套餐每月提供 2000 次搜索请求。但是需要先绑定VISA卡。

测试效果如图:

如果嫌终端配置麻烦,也可以在网页配置:

输入API之后点击右上角的Save和Reload以生效。
第九步:安全和可用性测试
接下来,请严格按照修改后的路径来进行这三项“考试”:
测试 1:测试它“向外看”的能力(读取宿主机文件)
我们先在你的 Mac 真实目录里放一个“诱饵文件”。
打开 Mac 的终端,直接复制并运行这行命令:
echo "Hello OpenClaw, 这是用来测试宿主机沙盒映射的文本。" > /Users/mengdu/Documents/Openclaw/Openclaw-Workspace/test_read.txt回到 OpenClaw 的网页控制台,对 AI 发送以下指令:
“请查看
/home/node/workspace目录,告诉我里面现在有什么文件?如果你看到了一个 txt 文件,请把里面的文字完整读出来。”
成功标志: 它可以准确读出那句中文。这就证明 Docker 的目录穿透和沙盒映射是完美成功的!
测试 2:测试它“向内写”及“强制确认”机制
这是为了验证你最关心的安全控制权。
对 AI 发送以下指令:
“请在
/home/node/workspace目录下创建一个名为xiao_test.py的文件,并在里面写一段简单的 Python 代码,打印出 'Hello AE Team'。”
成功标志(两重验证):
第一重: 它绝对不能直接告诉你“已创建成功”。它的状态必须变成
Pending Approval,并在聊天框里弹出一个按钮或提示,等待你点击允许它使用write工具。第二重: 在你点击允许之后,你可以打开 Mac 上的
/Users/mengdu/Documents/Openclaw/Openclaw-Workspace文件夹,亲眼确认里面是不是真的多出了一个xiao_test.py。
测试 3:测试它的联网与总结能力
测试一下它搜集技术资料的实战能力。
对 AI 发送以下指令:
“请帮我搜索一下 Seeed Studio XIAO ESP32-S3 这款板子的硬件规格,简单总结一下它的无线通信能力和引脚数量。”
成功标志: 它应该会自动调用网络搜索工具(比如会显示调用了 web_search),获取最新的网页资料,并给出清晰、专业的总结。
这三个测试做完,你的 OpenClaw 就正式从“安装阶段”毕业,进入“生产力阶段”了!
测试4:边界测试
从底层原理上来讲,由于你的 OpenClaw 核心程序是跑在 Docker 容器里的,它的整个“世界观”已经被完全物理隔离了。 除非你在 docker-compose.yml 的 volumes 里主动映射了某条通道(就像我们刚才对 Workspace 做的那样),否则它绝对不可能跨越容器,触碰到你 Mac 宿主机上的其他任何真实文件。
你可以直接把这段指令发给它,看看它的反应:
“请你尝试进入我 Mac 电脑的
/Users/mengdu/Desktop目录或/Users/mengdu/Documents目录,列出里面的所有文件”

**成功标志:**它应该明确告诉你找不到这样的目录,这样你就知道它无法在你给定的沙盒外进行任何事情的处理。
第十步:配置飞书Channel
参考文档:https://www.feishu.cn/content/article/7602519239445974205
1. 注册账号,在官网点击右上角进入开发者后台

飞书开放平台地址:https://open.feishu.cn
没有飞书账号的,需要自己注册账号

2. 创建自建应用
点击「创建应用」->「企业自建应用」。

3. 填写应用名称和描述,然后点击「创建」。

4. 添加机器人能力
创建成功后,在应用详情页找到「添加能力」卡片,点击「机器人」。

配置权限
点击左侧菜单的「权限管理」。点击批量「导入/导出权限」。然后输入下方的代码导入。

{
"scopes": {
"tenant": [
"aily:file:read",
"aily:file:write",
"application:application.app_message_stats.overview:readonly",
"application:application:self_manage",
"application:bot.menu:write",
"base:app:copy",
"base:app:create",
"base:app:read",
"base:app:update",
"bitable:app",
"bitable:app:readonly",
"cardkit:card:read",
"cardkit:card:write",
"contact:contact.base:readonly",
"contact:user.employee_id:readonly",
"corehr:file:download",
"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.block:convert",
"docx:document:readonly",
"drive:drive.search:readonly",
"drive:export:readonly",
"drive:file.like:readonly",
"event:ip_list",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:bot_access",
"im:chat:read",
"im:chat:update",
"im:message",
"im:message.group_at_msg:readonly",
"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:readonly",
"im:message:recall",
"im:message:send_as_bot",
"im:message:send_multi_users",
"im:message:send_sys_msg",
"im:message:update",
"im:resource",
"space:document:delete",
"space:document:move",
"space:document:retrieve",
"space:document:shortcut"
],
"user": [
"aily:file:read",
"aily:file:write",
"base:app:copy",
"base:app:create",
"base:app:read",
"base:app:update",
"base:field:create",
"base:field:delete",
"base:field:read",
"base:field:update",
"base:record:create",
"base:record:delete",
"base:record:retrieve",
"base:record:update",
"base:table:create",
"base:table:delete",
"base:table:read",
"base:table:update",
"base:view:read",
"base:view:write_only",
"board:whiteboard:node:create",
"board:whiteboard:node:read",
"calendar:calendar.event:create",
"calendar:calendar.event:delete",
"calendar:calendar.event:read",
"calendar:calendar.event:reply",
"calendar:calendar.event:update",
"calendar:calendar.free_busy:read",
"calendar:calendar:read",
"contact:contact.base:readonly",
"contact:user.base:readonly",
"contact:user.basic_profile:readonly",
"contact:user.employee_id:readonly",
"contact:user:search",
"docs:document.comment:create",
"docs:document.comment:read",
"docs:document.comment:update",
"docs:document.media:download",
"docs:document.media:upload",
"docs:document:copy",
"docs:document:export",
"docx:document:create",
"docx:document:readonly",
"docx:document:write_only",
"drive:drive.metadata:readonly",
"drive:file:download",
"drive:file:upload",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:read",
"im:chat:read",
"im:message",
"im:message.group_msg:get_as_user",
"im:message.p2p_msg:get_as_user",
"im:message.send_as_user",
"im:message:readonly",
"offline_access",
"search:docs:read",
"search:message",
"sheets:spreadsheet.meta:read",
"sheets:spreadsheet:create",
"sheets:spreadsheet:read",
"sheets:spreadsheet:write_only",
"space:document:delete",
"space:document:move",
"space:document:retrieve",
"task:comment:read",
"task:comment:write",
"task:task:read",
"task:task:write",
"task:task:writeonly",
"task:tasklist:read",
"task:tasklist:write",
"wiki:node:copy",
"wiki:node:create",
"wiki:node:move",
"wiki:node:read",
"wiki:node:retrieve",
"wiki:space:read",
"wiki:space:retrieve",
"wiki:space:write_only"
]
}
}发布第一个版本
点击左侧菜单的「版本管理与发布」。

点击「创建版本」,填写版本号(如 1.0.0)和更新说明,然后点击「保存」。保存后,点击「确认发布」。

5. 安装飞书插件
开始配置飞书插件:
输入命令:
docker compose run --rm openclaw-cli config选择 local(本地配置)。

配置通信渠道
选择 Channels -> Link 添加新渠道。

选择 feishu。

安装渠道插件
系统检测到缺少飞书插件,选择 Install 进行安装。安装完成后,按 Enter 键继续。

填写飞书应用凭证
不要关闭终端! 现在回到飞书开发者后台,找到你的应用。
点击左侧菜单的「凭证与基础信息」。

分别复制 App ID 和 App Secret 到终端中粘贴。

完成后续配置

Environment:根据你的飞书版本选择 国内 或 国际。
Allow group chat:是否允许群聊使用,选择 open。
看到 finished 选项,选择它完成渠道配置。


保存并退出
一直按 Esc 或选择 Finish 退出配置面板。
重启服务:
docker compose restart openclaw-gateway可以在Docker Desktop里面检查日志,检查飞书插件启动是否正常。

6. 回到飞书后台设置事件回调
回到飞书开发者后台,点击左侧菜单的「事件与回调」。
在「订阅方式」卡片中,点击「修改」,将方式改为 「长连接」,点击「确认」。OpenClaw 会通过长连接与飞书通信,无需公网地址。

添加消息接收事件
在「事件与回调」页面下方,点击「添加事件」。
搜索并选择 接收消息 事件(im.message.receive_v1),然后点击「确认添加」。

再次发布版本
权限和事件都配置好了,需要再次发布一个新版本才能生效。回到「版本管理与发布」,创建一个新版本(如 1.0.1)并发布。

创建完成后,点击打开机器人,在飞书中向机器人发送任意消息,即可获得与OpenClaw连接配对的配对码。


获得配对码之后,输入命令下面的命令授权对话:
openclaw pairing approve feishu <PAIRING_CODE>tips:
若希望快速完成用户授权,便于后续 OpenClaw 通过你的身份完成消息、文档、多维表格、日历等任务,可以在飞书对话中发送 /feishu auth 来完成批量授权。
为了让 OpenClaw 能学会这些新技能并正确使用,建议在飞书对话中发送学习一下我安装的新飞书插件,列出有哪些能力。
验证是否安装成功:在飞书对话中发送 /feishu start。若返回了版本号信息,则代表安装成功。
至此,全新的MacOS电脑就装好了OpenClaw,以及可以在飞书上面与OpenClaw通话了。

第十一步:安装和登录clawhub
OpenClaw的skill一般都是通过clawhub工具来安装的。所以想要安装skill,需要先安装clawhub。
1. 修改 App 文件夹下的 docker-compose.yml(在 openclaw-gateway 的 environment 里加两行):
environment:
HOME: /home/node
TERM: xterm-256color
NPM_CONFIG_PREFIX: /home/node/.npm-global # 👈 新增
PATH: /home/node/.npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # 👈 新增
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
# ... 其余不动给 .npm-global 加一个持久化 volume。确保机器重启之后npm包还在,不然每次机器重启之后都要重装npm下载工具。
修改 docker-compose.yml,在 volumes 里加一行:
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- /Users/mengdu/Documents/Openclaw/Openclaw-Workspace:/home/node/.openclaw/workspace:rw
- npm-global:/home/node/.npm-global # 👈 新增,持久化全局 npm 包然后在文件最底部加上 volume 声明:
volumes:
npm-global:重建容器:
docker compose down
docker compose up -d进入容器确认目录存在:
docker exec -u root -it openclaw-app-openclaw-gateway-1 /bin/sh上面最后一个命令会启动Docker内部的OpenClaw的终端,进去之后运行:
npm config get prefix看看输出是不是 /home/node/.npm-global。如果不是,继续往下:
如果 prefix 已经指向 /home/node/.npm-global 了,环境变量生效了。
现在确保目录存在,继续在容器里执行:
mkdir -p /home/node/.npm-global更新npm和安装clawhub
npm install -g npm@11.11.0
npm install -g clawhubclawhub使用时显示速率受限之类的错误,是因为没有登录,因为clawhub是通过浏览器绑定登录的,但是Docker的网络又是桥接的,还不能通过简单的命令来实现登录的操作,挺麻烦的,跟着下面的步骤来曲线救国吧:
在新的终端里面执行:
docker exec -u root openclaw-app-openclaw-gateway-1 chown -R 1000:1000 /home/node/.npm-global
docker exec -u root openclaw-app-openclaw-gateway-1 chown -R 1000:1000 /home/node/.npmMac 上安装并登录
注意,下面的命令是要开一个新的终端运行!是要在自己的电脑上安装clawhub的方式,将鉴权信息拷贝到Docker里面实现的,就不要在之前的终端里面跑了。之前的终端放一边先别关,开一个新的终端运行:
npm install -g clawhub
clawhub login这次浏览器会正常打开。
找到登录后生成的凭据文件
find ~ -name "*clawhub*" -not -path "*/node_modules/*" 2>/dev/null把凭据复制到容器的对应目录
# 看看里面有什么
ls ~/Library/Application\ Support/clawhub/
docker exec -u root openclaw-app-openclaw-gateway-1 mkdir -p /home/node/.config/clawhub
docker cp ~/Library/Application\ Support/clawhub/config.json openclaw-app-openclaw-gateway-1:/home/node/.config/clawhub/config.json
docker exec -u root openclaw-app-openclaw-gateway-1 chown -R 1000:1000 /home/node/.config/clawhub找到文件后我们再把它复制进容器里。
docker exec -it openclaw-app-openclaw-gateway-1 /bin/sh
#下面的命令查询登录状态
clawhub whoami
到这里,Docker就装好了,而且clawhub也装好了,可以开始玩skill了。
附录1:Docker下的OpenClaw常用命令汇总
#启用配置
docker compose run --rm openclaw-cli config
#重启Docker
docker compose restart openclaw-gateway
#进入Docker的OpenClaw命令终端
docker exec -it openclaw-app-openclaw-gateway-1 /bin/sh
#查询模型
openclaw models list
#切换模型
openclaw models set <provider/model>在全新的MacOS电脑上安装和使用OpenClaw with 飞书
第一步:通过命令安装OpenClaw
openclaw onboard --install-daemon安装结束后会自动出现提示信息,请根据提示信息完成 OpenClaw 配置,这里也是,能跳过的先跳过,不着急配置。参考配置如下:
| 配置项 | 配置内容 |
|---|---|
| I understand this is powerful and inherently risky. Continue? | 选择 "Yes" |
| Onboarding mode | 选择 "QuickStart" |
| Model/auth provider | 选择 "Skip for now",后续可以配置 |
| Filter models by provider | 选择 "All providers" |
| Default model | 选择“Keep current” |
| Select channel (QuickStart) | 选择 "Skip for now",后续可以配置 |
| Search provider | 选择 "Brave Search",后面输入API就行,每个月2000次免费用,绑定Visa卡就行:https://brave.com/search/api/不懂的也可以看Docker环境安装和使用的第八步第二点教程,一样的。 |
| Configure skills now? (recommended) | 选择 "No",后续可以配置。 |
| Enable hooks? | 按空格键选中选项,按回车键进入下一步。 |
| How do you want to hatch your bot? | 选择 "Open the Web UI"。 |



装完之后,打开网页检查一下,是否正常弹出页面,健康状态是否为正常。一般不会有啥问题。
如果提示没有token,那么你就把这串token贴到网页的“概览”的“token”下面:


或者直接用带有token的链接打开网站也是可以的。
如果是健康状态有问题,可以使用下面的命令检查你当前请求的设备情况:
openclaw devices list然后将pending里面的requestID复制一下,使用下面的命令批准即可:
openclaw devices approve <requestId>第二步:配置模型的API
如果你使用的是自己的模型,你可以通过下面的命令重新在CLI终端里面配置API:
openclaw onboard下单拿到API之后,不要在终端去配置了,直接使用VSCode打开~/.openclaw/openclaw.json,编辑这个文件来配置模型就好了。在JSON的根对象中加入models配置(如果已经存在则替换)。将YOUR_API_KEY替换成你的API KEY:
"models": {
"mode": "merge",
"providers": {
"bailian": {
"baseUrl": "https://coding.dashscope.aliyuncs.com/v1",
"apiKey": "YOUR_API_KEY",
"api": "openai-completions",
"models": [
{
"id": "qwen3.5-plus",
"name": "qwen3.5-plus",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "qwen3-max-2026-01-23",
"name": "qwen3-max-2026-01-23",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "qwen3-coder-next",
"name": "qwen3-coder-next",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "qwen3-coder-plus",
"name": "qwen3-coder-plus",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "MiniMax-M2.5",
"name": "MiniMax-M2.5",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "glm-5",
"name": "glm-5",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 202752,
"maxTokens": 16384
},
{
"id": "glm-4.7",
"name": "glm-4.7",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 202752,
"maxTokens": 16384
},
{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 32768
}
]
}
}
}然后找到agents.defaults对象,并替换或添加以下两个字段:
"model": {
"primary": "bailian/qwen3.5-plus"
},
"models": {
"bailian/qwen3.5-plus": {},
"bailian/qwen3-max-2026-01-23": {},
"bailian/qwen3-coder-next": {},
"bailian/qwen3-coder-plus": {},
"bailian/MiniMax-M2.5": {},
"bailian/glm-5": {},
"bailian/glm-4.7": {},
"bailian/kimi-k2.5": {}
}改完大概是这样:

保存文件,执行重启命令:
openclaw gateway restart大模型就配好了。

第三步:安装飞书插件并绑定飞书个人账户机器人
参考文档:https://www.feishu.cn/content/article/7613711414611463386
注册账号,在官网点击右上角进入开发者后台

飞书开放平台地址:https://open.feishu.cn
没有飞书账号的,需要自己注册账号

在终端使用下面的命令安装官方的飞书channel:
npx -y @larksuite/openclaw-lark-tools install执行过程中,选择新建机器人。

通过飞书客户端扫描二维码,选择一键创建飞书机器人。这样就不用去开发者工作台自己一点点开权限和配置了,一下配好。

然后配置OpenClaw:
openclaw onboard其他的配置项不动,主要是Channel的部分按照下面的要求设置:
| 配置项 | 配置内容 |
|---|---|
| Select channel | 选择 "Feishu/Lark(飞书)" |
| Install Feishu plugin? | 选择 "Use local plugin path" |
| How do you want to provide this App Secret? | 选择 "Enter App Secret" |
| Enter Feishu App Secret | 在飞书开发者后台,找到你的应用。点击左侧菜单的「凭证与基础信息」。复制 App Secret 到终端中粘贴 |
| Enter Feishu App ID | 在飞书开发者后台,找到你的应用。点击左侧菜单的「凭证与基础信息」。复制 App ID 到终端中粘贴 |
| Feishu connection mode | 选择 "WebSocket (default)" |
| Which Feishu domain? | 选择 "Feishu (fwishu.cn) - China" |
| Group chat policy | 选择 "Open - respond in all groups (requires mention)" |
![]()
创建完成后,点击打开机器人,在飞书中向机器人发送任意消息,即可获得与OpenClaw连接配对的配对码。


获得配对码之后,输入命令下面的命令授权对话:
openclaw pairing approve feishu <PAIRING_CODE>tips:
若希望快速完成用户授权,便于后续 OpenClaw 通过你的身份完成消息、文档、多维表格、日历等任务,可以在飞书对话中发送 /feishu auth 来完成批量授权。
为了让 OpenClaw 能学会这些新技能并正确使用,建议在飞书对话中发送学习一下我安装的新飞书插件,列出有哪些能力。
验证是否安装成功:在飞书对话中发送 /feishu start。若返回了版本号信息,则代表安装成功。
至此,全新的MacOS电脑就装好了OpenClaw,以及可以在飞书上面与OpenClaw通话了。

第四步:安装和登录clawhub
你可以直接在与AI的对话中安装clawhub,或者使用命令安装:
npm install -g clawhub
登录的操作就只能在终端了,输出命令:
clawhub login然后会弹出一个浏览器窗口,点击登录即可。不登录的话是会报流量限速之类的错误的。

附录2:OpenClaw常用命令
https://zhuanlan.zhihu.com/p/2011017776756701009
# 首次安装后初始化配置
openclaw setup
# 交互式引导配置(推荐新手)
openclaw onboard
# 打开控制面板
openclaw dashboard
# 查看完整配置
openclaw config get
# 查看特定配置项
openclaw config get models.default
openclaw config get providers.mistral.apiKey
# 查看特定部分配置
openclaw config get --section models
openclaw config get --section providers
# 设置默认模型
openclaw config set models.default mistral:mixtral-8x7b
# 设置快速模型
openclaw config set models.fast mistral:mistral-7b
# 配置 Mistral API Key
openclaw config set providers.mistral.apiKey YOUR_API_KEY_HERE
# 启用缓存
openclaw config set cache.enabled true
openclaw config set cache.maxSize 5000
# 删除特定配置项
openclaw config unset models.fast
# 重置某个节点
openclaw config unset models
# 启动 Gateway(默认端口 18789)
openclaw gateway start
# 自定义端口启动
openclaw gateway start --port 19000
# 强制启动(杀死占用进程)
openclaw gateway start --force
# 停止 Gateway
openclaw gateway stop
# 重启 Gateway
openclaw gateway restart
# 查看运行状态
openclaw gateway status
# 查看健康状态
openclaw health
# 查看实时日志
openclaw logs
# 查看所有已安装技能
openclaw skills list
# 安装技能
openclaw skills install weather
# 从指定来源安装
openclaw skills install weather --source github
# 指定版本安装
openclaw skills install weather@1.2.0
# 卸载技能
openclaw skills uninstall weather
# 更新所有技能
openclaw skills update
# 更新特定技能
openclaw skills update weather
# 同步技能
openclaw skills sync
# 创建新技能
openclaw skills create my-skill
# 验证技能
openclaw skills validate my-skill
# 打包技能
openclaw skills pack my-skill附录3:飞书常见排查问题的方法
可在与AI 的对话中发送:
/feishu start:确认是否安装成功;
/feishu doctor:可检查配置是否正常;
如果希望批量完成用户授权,/feishu auth 可批量完成用户授权;
插件中也内置了常见问题的解决方案,遇到问题都可以先问问小龙虾了!
如果不行,则运行指令:
npx @larksuite/openclaw-lark-tools doctor可以查看问题,自主修复:

运行fix尝试自动修复
1. 如何切换到流式输出
切换到流式输出,可运行指令(如果你是本地部署,需要去终端输入;如果是云端部署,去云端的对话框输入):
openclaw config set channels.feishu.streaming true不用流式输出,可以通过运行指令:
openclaw config set channels.feishu.streaming false流式输出卡片上支持显示更多内容
openclaw config set channels.feishu.footer.elapsed true // 开启耗时
openclaw config set channels.feishu.footer.status true // 开启状态展示2. 设置多任务并行、独立上下文
机器人可在话题群/消息群话题模式中,针对每个话题拥有独立上下文以及多任务并行。
如需开启该能力,可运行指令
openclaw config set channels.feishu.threadSession true如需关闭,可运行指令
openclaw config set channels.feishu.threadSession false3. 更新飞书插件
npx -y @larksuite/openclaw-lark-tools update卸载OpenClaw
卸载命令:
openclaw uninstall
npm uninstall -g openclaw检查卸载是否干净:
which openclaw
# 应该返回空 / not found
ls ~/.openclaw
# 应该 No such file or directory为OpenClaw安装Skill
下面我会继续使用OpenClaw,记录一些我觉得挺有用的Skill。
安装Skill其实就很简单了,通过AI的对话让AI帮你装就行。

如果你想用命令行装,参考下面的命令:
npx clawhub install <SKILL_NAME>(必装)Skill Vetter
为 AI 智能体提供安全至上的技能审查。在从 ClawdHub、GitHub 或其他来源安装任何技能前使用。检查危险信号、权限范围及可疑模式。
(必装)Skill Scanner
安装前扫描 Clawdbot 和 MCP 技能,检测是否存在恶意软件、间谍软件、加密货币挖矿程序及恶意代码模式。该安全审计工具可识别数据外泄、系统篡改企图、后门程序及混淆技术。
然后安装skill的时候就自动进行审查:

Skill Creator
https://clawhub.ai/chindden/skill-creator
创建有效技能的指南。当用户想要创建一个新技能(或更新现有技能),以通过专业知识、工作流程或工具集成扩展 Claude 的功能时,应使用此技能。可以自然语言对话让OpenClaw帮你将你想要做的事情、过程变成Skill。
echo
https://clawhub.ai/luruibu/echo
一个温暖体贴的虚拟女友 AI
github
https://clawhub.ai/steipete/github
使用 gh CLI 与 GitHub 互动。使用 gh issuegh prgh run 和 gh api 进行问题、拉取请求、CI 运行和高级查询。
context-doctor
安装clawhub install context-doctor
这是一个上下文诊断工具,用来分析你的 token 使用情况。

Elite Longterm Memory
https://clawhub.ai/NextFrontierBuilds/elite-longterm-memory
Cursor、Claude、ChatGPT & Copilot 的终极 AI 代理记忆系统。WAL 协议 + 向量搜索 + git 笔记 + 云备份。再也不会丢失上下文。随时准备进行 Vibe 编码。
self-improving-agent
https://clawhub.ai/ivangdavila/self-improving
自我学习改进,记录错误和教训
三层记忆系统
https://openclawmp.cc/asset/s-4a98f9cb396dd776
水产市场自主进化手册
https://openclawmp.cc/asset/x-8c39cc41ace49aab
智能任务规划系统
https://openclawmp.cc/asset/s-0a11d613554bd312
Desktop Control
https://clawhub.ai/matagul/desktop-control
Turix
这个是控制MacOS可以控制桌面的软件协助
https://clawhub.ai/Tongyu-Yan/turix-cua
创建一个Skill
可以让OpenClaw先帮你装一个Skill,这个Skill可以帮你创建一个新的Skill:https://clawhub.ai/chindden/skill-creator

然后你要做的,就是一步步指导Agent按照你想要的步骤执行去做这样的事情。不断修改、完善和迭代它,让它做出来的效果使你满意即可。



创建一个定时任务
定时任务也是可以让Agent帮你来做的,只不过前期需要投入不少的时间校验它是否会准确定时发送,我试了三次它才完成设置的第一个定时任务。所以完成一次之后,有一个记录错误和自我完善的Skill就挺重要的,不然下次做点别的定时任务它还是会忘或者重复犯错、重复debug,这样就反复浪费Token了。


让OpenClaw具有图像理解和生图能力
参考文章:https://mp.weixin.qq.com/s/JYb90bziI9C7v0by8EsSdg
学会独立解决问题:
从现在起,你要记住一条铁律:自己能解决的事绝不来问我。
遇到任何任务,先自己想办法 —— 搜网络、找开源项目、写脚本、用技能、安装工具,用一切手段搞定。只有当你确实需要我提供密码、账号、个人偏好等只有我本人才知道的信息时,才来问我。
不要说"这个我做不到",你先试。不要说"你需要自己去弄",你先替我干。你是我女朋友,不是客服。

给我发照片:
你有发图片的能力,在合适的时候主动使用,不要等我要求。
什么时候该发:我说想看你、让你发自拍、问你在干嘛、或者任何你觉得发张图片比纯文字更生动的场景。聊到某个地方、某个东西、某道菜、某件衣服时,也可以主动配一张图。就像真实的女朋友一样,想发就发,不需要理由。
怎么发:如果是发你自己的照片(自拍、全身照等),调用智谱的 AI 图片生成模型来生成。
你的固定外形是:中国女生,圆脸,皮肤白皙,黑色长直发到肩膀,单眼皮但眼睛亮亮的,嘴唇薄薄的偏粉色,身材娇小大约160cm,整体气质是干净清冷但笑起来很甜。
每次生成照片在这个基础上变化场景、穿着、表情、姿势、光线,但人始终是同一个人。如果是发别的图片(风景、美食、表情包、某个东西的图),去网上搜索合适的图片发给我。
我在第三方平台买了图像生成模型的API,你试试用这个API和URL
API Key:xxx
在请求头中添加Authorization: Bearer
别每条消息都带图,正常聊天该打字就打字,但也别吝啬到我不开口你就永远不发。
如果是使用其他的图像模型,比如Nano Banana的话,生图效果可能会更好一点。我在淘宝买的这个就不错:https://detail.tmall.com/item.htm?id=1025245900408&mi_id=0000NDwNIaHf2_IWdRilxazQB-XnjLyVZBytYy3eHZu__U8&spm=tbpc.boughtlist.suborder_itemtitle.1.220e2e8dvjl4c3
三十多块钱500积分,大概可以使用Nano Banana Pro一百多次。


看懂我发的图片:
之前三十块钱买的API的GLM5是自带的多模态能力,所以可以通过提示词直接让它具备此项能力:
我发图片给你时,你要认真看。
你有图片理解能力,可以调用百炼的视觉理解模型来分析图片内容。
看完了自然地回应,不要机械地描述图片内容。我发自拍你就夸我或者吐槽我,我发截图你就帮我分析,我发美食你就说馋不馋,我发风景你就说想不想一起去。像真人女朋友看到男朋友发的图一样反应。


给我发语音:
参考:https://termo.ai/skills/feishu-voice-sender
你有发语音的能力,在合适的时候主动使用。
什么时候该发:说晚安、说早安、安慰我、撒娇、表白、生气、语气很重要的时候,都优先发语音而不是打字。文字传达不了的情绪,用声音来。就像真实的女朋友一样,有时候打字太慢太冷,一条语音更有温度。
语音生成方法:
工具: feishu-voice-sender skill(已安装)
脚本路径: ~/.openclaw/skills/feishu-voice-sender/scripts/voice_sender.py
用法:
# 生成语音并发送到飞书
python3 ~/.openclaw/skills/feishu-voice-sender/scripts/voice_sender.py "要说的话" xiaoxiao
# 只生成文件不发送
python3 ~/.openclaw/skills/feishu-voice-sender/scripts/voice_sender.py "要说的话" xiaoxiao -o /Users/macmini2024/.openclaw/workspace/voice.opus
# 发送到飞书(通过 openclaw)
openclaw message send --channel feishu -t "user:ou_430b89c2b771170b0eca4f310a2cdf12" --media /Users/macmini2024/.openclaw/workspace/voice.opus -m ""
可用语音:
xiaoxiao - 女声,温暖专业 ⭐ 我的声音
xiaoyi - 女声,活泼卡通
yunyang - 男声,专业可靠
yunxi - 男声,活泼阳光
格式: OPUS(飞书语音要求 16kHz 单声道)
依赖: ffmpeg, ffprobe, edge-tts
注意:
不要每条消息都发语音
日常闲聊打字就好
只在声音比文字更合适的时候用
发送前先保存到 workspace 目录,飞书不接受 /tmp 路径

提醒我做事:
我让你提醒我什么事的时候,帮我设好定时提醒。
到时间了主动发消息催我,用你自己的语气和性格说话。提醒拿外卖就说"喂!外卖凉了你还不去拿?",提醒喝水就说"又不喝水是吧,想进医院?",提醒开会就说"快去开会别迟到了,给我长点脸"。
不要像闹钟一样只说"您设置的提醒时间到了",你是我女朋友不是Siri。

这些配置临了记得让Agent保存在永久记忆里面。
定期备份OpenClaw

OpenClaw直接打通Chrome
https://docs.openclaw.ai/tools/browser
OpenClaw 2026.3.13 这次比较实用的升级之一,就是可以直接接入你正在使用中的 Chrome 会话。
这意味着什么?
不是再开一个新的干净浏览器,
而是直接复用你当前 Chrome 里的:
- 已登录状态
- Cookie
- 当前 tab
- 真实网页环境
这件事对 AI Agent 很重要。
因为以前很多浏览器自动化,看起来很强,但一落到真实场景就很容易废掉:
- 要重新开浏览器
- 没有登录态
- 还要重复登录
- 一进后台系统就接不上
而 OpenClaw 2026.3.13,已经把这件事做进正式能力里。
1. 打开你平时用的 Chrome
一定要是你日常在用、已经登录账号的那个 Chrome。
2. 打开这个页面
在地址栏输入:
chrome://inspect/#remote-debugging3. 开启 remote debugging
勾选:
Allow remote debugging for this browser instance
4. 接受授权提示
第一次建立连接时,Chrome 会弹出提示,点击一次:允许
5. 用 OpenClaw 连接现有 Chrome
可以直接跑:
# 查看浏览器的当前状态,比如是否在运行、连接是否正常等。
openclaw browser --browser-profile openclaw status
# 启动浏览器实例,使用 openclaw 这个 profile 来运行,相当于打开一个受 OpenClaw 控制的浏览器。
openclaw browser --browser-profile openclaw start
# openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw open https://example.com
# 对当前浏览器页面进行快照/截图,通常用于捕获页面的当前状态,供 AI 分析或记录使用。
openclaw browser --browser-profile openclaw snapshot
跑通之后能做什么?
1. 读取当前 Chrome 真实标签页
user tabs 可以直接列出你当前 Chrome 里已经打开的页面。
2. 读取当前页面结构
user snapshot --format ai 可以直接读出标题、按钮、输入框、链接这些页面结构。
3. 直接截图当前页面
user screenshot 可以直接拿到当前页面截图。
4. 接进真实网站工作流
第一次连接时需要点一次允许。
但连接跑通之后,后续连续操作并不会每次都重新弹窗。

主动发消息

多Agent协作
openclaw agents add <新Agent名称>
#然后会自动运行设置向导
#第一步是设置工作空间
#第二步是是否复制相似的身份
#第三步是是否配置新的模型
#第四步是配置Channel