最近圈子里突然流行起一个说法——“人人养虾”。乍一听还以为是水产养殖的新风口,实际上这是大家对自托管AI智能体的一种戏称。OpenClaw这个项目的Logo自带一对钳子,跟小龙虾的气质不谋而合,于是中文社区就管自己部署的智能体叫“虾”,把调教、投喂、陪聊、指派任务这一整套流程叫“养虾”。
我自己的“虾”已经养了快两个月,从最开始只能在终端里用命令行对话,到后来接入微信,再到最近彻底打通飞书,踩了不少坑,也总结了一些真正好用的经验。这篇文章就专门讲一件事:如何把OpenClaw接入飞书,让你的AI智能体在飞书里随叫随到,能聊天、能查资料、能写东西、能帮你管任务。如果你正打算上手OpenClaw,或者已经部署好了但还在愁怎么让它“进入日常”,这篇应该能帮你省下不少弯路。
1. 先把“虾”养熟:OpenClaw到底是个什么东西
1.1 “人人养虾”这个梗是怎么来的
“养虾”这个说法其实是个双关。OpenClaw的英文名里带着“Claw”(爪子、钳子),而虾这种生物最标志性的特征也是那对大钳子。于是社区里的用户就开始管OpenClaw叫“虾”,自嘲式地把部署智能体称为“养虾”。
但“人人养虾”能火起来,靠的不是一个谐音梗,而是OpenClaw确实把自托管AI助手的门槛压到了很低的程度。在这之前,想自己跑一个能常驻后台、能接多个聊天平台、能调用工具和记忆的AI智能体,通常需要自己拼装各种开源组件——对话框架要配,消息通道要写适配器,模型还得选对格式,光是环境依赖就能劝退一大批人。OpenClaw把这些东西默认集成好了,安装之后直接跑起来就是一个完整的智能体,支持多模型、多渠道、多技能,还能保存长期记忆。
所谓“人人养虾”,本质上是每个人都能拥有一个专属的、可控的、能接入日常工具的AI助手。不是去用某个厂商打包好的聊天机器人,而是自己亲手养出来的一只“虾”。
1.2 OpenClaw的核心能力拆解
在讲飞书接入之前,我得先把OpenClaw的几个核心能力说清楚,因为后面配置飞书、做进阶功能都跟这些能力有关。
第一是消息渠道接入。OpenClaw不是只能在一个网页里聊天,它可以把智能体同时接入多个IM平台。微信、飞书、钉钉、Discord、Telegram这些主流平台都有对应的接入方案。每个渠道相当于给虾开了一扇门,门后面是同一个大脑。
第二是多模型支持。OpenClaw可以对接不同的底层大语言模型,包括云端API和本地推理服务。云端可以用DeepSeek、GPT这一类,本地可以用Ollama、NVIDIA NIM这类方案。这也对应了社区里经常讲的“zero token”玩法——不花钱买API Key,用本地模型也能把虾养活。
第三是长期记忆。OpenClaw内置了Active Memory机制,可以跨会话记住用户的偏好、历史任务和关键信息。这意味着虾不是那种“聊完就忘”的机器人,而是会逐步积累对你的了解。
第四是技能系统。OpenClaw可以加载不同的Skill(技能),比如搜索网页、读写文件、执行命令、调用第三方API。飞书接入之后,这些技能都可以通过聊天消息去触发。
1.3 为什么我推荐用飞书当“虾塘”
有人会问:既然能接微信,为什么非要接飞书?
我的回答是:飞书的开放平台能力比微信个人号要完整得多,而且更安全、更稳定。微信个人号接入智能体一直处于灰色地带,账号存在被限制的风险,而飞书从官方的角度就支持自建机器人、事件订阅、消息卡片、多维表格API,这些能力让智能体不只是“聊聊天”,而是能真正融入办公流。
飞书本身就覆盖了消息、文档、表格、审批、日程这些高频场景。OpenClaw接入飞书之后,相当于给这只虾装上了触手,它可以直接读取多维表格里的任务清单、把整理好的内容发到群里、通过机器人卡片跟人交互、甚至配合审批流程。对于个人用户来说,飞书免费版就能创建团队并自建应用,对于团队用户来说,更是可以直接把智能体作为协作工具共享给整个团队。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 接入前的准备工作:想清楚再动手
2.1 部署形态选择:本地跑还是云服务器
接入飞书之前,第一个要想清楚的问题是OpenClaw跑在哪里。这不是一个可以随便选的决定,它直接决定了你后续用起来是否顺手。
本地运行的优点是零成本、数据不出门、调试方便。Windows上可以用PowerShell脚本一键安装,或者直接下载社区打包好的便携版,解压就能跑。缺点是电脑不能关机、网络环境可能不稳定,而且如果你在公司内网或者家庭网络里,飞书服务器往本地推消息偶尔会被防火墙拦。当然,OpenClaw通常采用长连接模式,也就是主动往外连飞书服务器,所以NAT和防火墙问题比传统Webhook要少很多。
云服务器的优点是7x24小时在线,虾永远不会因为你的电脑合盖而“睡着”。缺点是要花钱,便宜的云主机一个月几十块也能跑,但如果你要本地加载大模型,那云服务器的内存和显卡成本就上去了。
我的建议是:先用本地部署把整个链路跑通,确认飞书消息能正常收发,再考虑要不要迁移到云服务器。不要一上来就买服务器、配域名、搞HTTPS,结果发现虾根本不会回话,排查起来非常痛苦。
2.2 模型配置:没有API Key也能跑起来
模型配置是另一个必须在接入飞书之前就解决好的问题,因为虾没有大脑就没法回复消息。
现在社区里常说的“zero token”方案,指的就是完全不用付费API,直接让OpenClaw连接本地模型。最常用的是Ollama,安装之后拉一个开源模型,比如Qwen系列或者Llama系列,然后让OpenClaw的模型配置指向本地的Ollama接口,格式是OpenAI兼容的地址。还有一种方案是NVIDIA NIM,它能把本地GPU上的模型包装成标准的API服务,OpenClaw也支持对接。
如果你想用云端模型,DeepSeek是目前性价比很高的一种选择,配置也不复杂,只要在OpenClaw的配置里填入API Key和模型名称即可。
这里要特别提醒一个坑:社区里很多人第一次启动OpenClaw,会直接报错“agent failed before reply: unknown model: deepseek”。这个问题的原因通常不是模型不存在,而是你在配置里写的model名称和API服务端实际支持的名称不一致,或者填了模型名但没填正确的接口地址。我后面会在排错章节展开讲。
2.3 飞书那边需要准备什么
飞书侧的准备不复杂,但需要明确权限边界。你需要一个飞书账号,最好是自己有管理员权限的企业或团队。如果是个人的话,注册一个飞书账号之后创建一个团队,就可以获得创建自建应用的权限。
接下来说清楚你准备让这只虾在飞书里干什么。是只做个人助理,在单聊里回复你?还是要拉进群聊,在群里响应指令?要不要让它读写多维表格?要不要发消息卡片?这些需求决定了你后面要开哪些权限、订阅哪些事件。我的建议是第一版只做最基础的单聊消息收发,跑通之后再慢慢加权限、加功能。
3. 飞书开放平台配置:从零创建机器人
3.1 创建企业自建应用
飞书开放平台的入口是open.feishu.cn,登录后进入开发者后台,点击“创建企业自建应用”,填上应用名称和描述。这里我建议名称就直白一点,比如“我的虾”或者“AI助手”,图标可以随便传一张,不影响功能。
创建完成之后,你会进入应用详情页。这个页面左侧有很多菜单,但初期你只需要关心几个关键的:凭证与基础信息、权限管理、事件订阅、版本发布。
一定要把“App ID”和“App Secret”记下来,这两个是OpenClaw和飞书通信的身份证。App ID是公开的,App Secret是敏感的,泄露了别人可以冒充你的应用,所以要妥善保管,尽量只填在配置文件中,不要随便贴到聊天记录或者公开仓库里。
3.2 开通机器人能力与权限
在应用详情页里找到“添加应用能力”,把“机器人”能力打开。这一步做完,你的应用就不再只是一个空壳,而是一个可以在飞书里被搜索到、可以拉进群聊、可以收发消息的机器人。
接着要去“权限管理”里开通消息相关的权限。这里我用最基础的配置举例,你需要开通以下几个:
- im:message:读取用户发给机器人的单聊消息
- im:message:send_as_bot:以机器人的身份发送消息
- im:chat:readonly:读取群聊信息,如果之后要进群用就需要
权限开通后,飞书会有一个生效延迟,通常几分钟到十几分钟。很多人配置完权限立刻测试,发现还是没权限,不是配置错了,而是权限还没完全生效,等一会儿再试就可以。
3.3 事件订阅配置:长连接还是Webhook
这是整个飞书配置里最容易出错的一步,也是OpenClaw接入方案里最关键的一步。
飞书给开发者提供了两种接收消息的方式。第一种是Webhook模式,飞书服务器通过HTTP请求把用户消息推送到你的公网地址。这个方案要求你必须有一个公网可访问的HTTPS地址,本地部署的话还得做内网穿透,配置SSL证书,非常麻烦。第二种是长连接模式,飞书SDK会主动在你本地建立一个WebSocket连接,飞书的消息通过这个长连接实时推送过来,不需要公网IP,不需要域名,不需要HTTPS证书。
OpenClaw接入飞书,强烈建议用长连接模式。原因有三:一是本地环境友好,公司电脑、家庭宽带都能跑;二是稳定,WebSocket连接有自动重连机制;三是配置简单,只需要提供App ID和App Secret,剩下的SDK会自动处理。
在飞书开放平台的“事件订阅”页面,你需要先选择“使用长连接接收事件”,然后添加订阅事件。基础必加的事件是:
- im.message.receive_v1:接收消息事件。
这个事件的意思是:只要有用户给机器人发消息,飞书就会把消息内容推送给OpenClaw。
有一点要特别说明:有些教程会让你把“请求地址”填成OpenClaw的某个URL,这是给Webhook模式用的。如果你用的是长连接,请求地址那一栏留空就行,千万不要强行填一个内网地址进去,后面验证永远过不了。
3.4 发布版本与可用性检查
应用配置完成后,还需要创建一个版本并发布,机器人才能真正在飞书里被使用。在“版本发布”页面创建一个新版本,填上版本号、更新说明,提交发布。如果这个应用是你自己所在团队创建的,而你又有管理员权限,审核通常秒过;如果是企业环境,可能需要管理员审批。
发布之后,可以去飞书客户端搜索一下你创建的机器人名称,看能不能搜到、能不能发起会话。能搜到就说明应用已经可用了。
到这里,飞书那边的准备工作就算做完了。接下来才是重头戏——让OpenClaw和飞书真正连起来。
4. OpenClaw接入飞书的完整步骤
4.1 安装OpenClaw
如果你还没有安装OpenClaw,这一步先装上。Windows用户可以直接用PowerShell执行官方提供的安装脚本,安装过程会自动拉取运行环境和依赖,不需要手动配置Node.js之类的底层环境。社区里也有“便携包”版本,解压即用,适合在U盘或者办公电脑上临时体验。
Linux服务器用户则建议用命令行方式安装,因为生产环境一般没有图形界面,PowerShell安装脚本在Linux上也能跑,但更常见的做法是拉取项目代码然后执行启动脚本。
安装完成之后,你可以在终端里敲一下启动命令,第一次启动会生成默认配置文件到用户目录下的.openclaw文件夹里。不要急着配置任何东西,先确认程序能正常启动、能用命令行跟虾对话,再继续下一步。
4.2 配置飞书渠道参数
OpenClaw的配置文件默认在用户目录下的.openclaw文件夹里,Windows一般是C:\Users\你的用户名.openclaw,Linux和macOS是~/.openclaw。配置文件是一个JSON或者YAML格式的文件,里面按模块组织各种设置。
找到渠道配置相关的部分,把飞书渠道启用,并填入之前从飞书开放平台拿到的App ID和App Secret。不同版本的OpenClaw字段名可能略有差异,但基本结构都是类似的:
json复制{
"channels": {
"feishu": {
"enabled": true,
"appId": "cli_xxxxx",
"appSecret": "你的App Secret",
"eventType": "im.message.receive_v1"
}
}
}
如果你用的是环境变量方式,也可以设置FEISHU_APP_ID和FEISHU_APP_SECRET这两个环境变量。两种方式二选一即可,不需要重复配置。
这里要特别注意:App Secret不要写成带引号还带特殊转义的格式,很多人在复制粘贴的时候会把前后空格也带进去,导致鉴权失败。一个很简单的排查方式是把配置打印出来看一下,确认没有多余的空白字符。
4.3 首次联调:让虾开口说话
配置完成后,重新启动OpenClaw。启动日志里如果出现飞书长连接建立成功的提示,就说明OpenClaw已经成功连上了飞书的服务器。
这时候打开飞书,找到你创建的机器人,给它发一条“你好”。正常情况下,几秒钟之内虾就会回复你。如果消息发出去了但虾没有反应,不要急着改配置,先看OpenClaw的终端日志,日志会告诉你是长连接没建立,还是消息收到了但模型调用失败。
第一句话打通之后,这只虾就算正式进了飞书。你可以在单聊里让它写文案、做总结、翻译、查资料,它的表现取决于你配置的模型和加载的技能。但别急着高兴,这只是“会说话”,离“会干活”还有一段距离。
4.4 消息流转链路:从飞书到智能体的完整路径
为了更好地排查问题,你得理解消息在飞书和OpenClaw之间是怎么流转的。
用户从飞书客户端发出一条消息,消息先上传到飞书服务器,飞书服务器根据你配置的事件订阅规则,通过已有的长连接把消息推送到运行OpenClaw的机器上。OpenClaw收到事件后,解析出消息内容和发送者信息,把它交给核心智能体,智能体会把消息和历史记忆一起发给大语言模型生成回复。回复文本返回后,OpenClaw调用飞书API,以机器人的身份把消息发到对应的会话里。
用户看到的是“我发了一句话,机器人回了一句话”,但中间经历了客户端到服务器、服务器到本地、本地到模型、模型到本地、本地再调API回服务器、服务器再推送到客户端这整整六个环节。任何一个环节卡住,表现出来都是“虾不理人”。
理解这条链路非常有用。遇到问题时,你可以快速判断是网络连接问题、鉴权问题、模型问题还是消息发送权限问题,不用像无头苍蝇一样乱试。
5. 从“能聊天”到“能干活”:把飞书变成虾塘的高级玩法
5.1 用多维表格给虾装长期记忆
OpenClaw自带的Active Memory已经很强大,但飞书多维表格作为一个外部存储,能提供更结构化、更可查询的记忆能力。多维表格本质上就是一个在线数据库,支持API读写,非常适合用来记录虾的“工作台账”。
比如你可以建一个“任务管理”多维表格,字段包括任务名称、负责人、截止日期、状态。然后写一个技能脚本,让虾在收到“帮我记一个任务”之类的指令时,自动往这个表格里插入一行记录。因为是API写入,数据可以直接被飞书多维表格的其他视图、仪表盘、自动化流程使用,等于把AI助手的输出接入了整个办公系统。
社区里已经有人把Obsidian和OpenClaw结合起来做项目管理,思路是让虾把整理好的任务和笔记写到Obsidian的本地Markdown文件里。飞书多维表格的思路类似,但优势在于团队协作和在线访问,不需要同步本地文件。
5.2 消息卡片与交互按钮
飞书的消息卡片是OpenClaw接入飞书后非常值得玩的能力。基础的消息回复只是纯文本,而卡片可以展示更丰富的布局——标题、多列内容、按钮、图片、链接都可以组合在一起。
更关键的是交互按钮。飞书卡片支持按钮回调,用户点一下按钮,飞书会把这个交互事件推送给应用。这意味着虾不只是被动聊天,还具备了“菜单式交互”的能力。比如你给虾发一个“生成周报”的指令,虾回复一张卡片,卡片上带一个“确认发送”“重新生成”“调整格式”的按钮。用户点“确认发送”,虾就把周报正式发到群里。这种交互方式比纯文本指令要顺手得多。
实现这个功能,需要在OpenClaw的技能层处理卡片回调事件。这部分属于进阶玩法,我建议先把文字聊天的链路稳定跑上几天,再去碰卡片交互。
5.3 让虾处理审批、日程和文档
飞书能对接的开放能力远不止消息。在飞书开放平台上,你可以给应用开通日历、文档、审批、云盘等多种API权限。权限开得越多,虾能做的事就越多。
举例来说,开通日历权限后,虾可以读取你今天的日程安排,在你说“帮我看看下午几点有空”的时候,它不再只是用大模型瞎猜,而是真的去查你的日历然后给出准确回答。开通文档权限后,虾可以把对话里整理好的内容直接创建成一篇飞书文档,生成一个链接发给你。
不过权限越大,越要谨慎。一个基本原则是“最小权限”——只给虾完成当前任务所必需的权限,不需要的全关掉。本地部署的OpenClaw,App Secret只存在你自己可控的配置文件中,这已经比很多云端服务安全得多。但如果你把OpenClaw部署在多人共用的服务器上,一定要保护好配置文件的读写权限,不要因为疏忽把App Secret暴露给不该看到的人。
6. 踩过的坑和排错指南
6.1 事件订阅验证总失败
这是接入飞书时遇到最多的问题,症状是配置完事件订阅后,飞书提示“验证失败”或者“请求地址错误”。
如果你的方案是长连接模式,请先确认在事件订阅页面选择的是“使用长连接接收事件”,并且不要填任何请求地址。很多人从Webhook教程里复制了配置,在请求地址栏填了一个localhost地址,飞书当然访问不到。
如果你确认用的是长连接,但OpenClaw日志里始终显示连不上飞书,那就检查一下服务器能不能正常访问飞书的API域名。国内云服务器一般没问题,但如果是海外服务器,反而可能因为网络链路问题导致连接不稳定。
6.2 消息发出去没反应
消息发出去但虾不理你,这个症状的排查顺序是固定的。
第一步看OpenClaw进程是否还活着。很多人的虾跑着跑着崩了,只是终端窗口没关,看起来像还在运行。第二步看日志里有没有收到事件记录。如果根本没有收到事件,说明长连接断了,或者事件类型没订阅对。第三步看日志里有没有调用模型的记录。如果收到了消息但没调用模型,说明消息在智能体解析阶段就被拦截了。第四步看模型调用有没有报错。如果模型调用失败,通常会在日志里留下明确错误信息,比如超时、API Key无效、模型名称错误。
按照这个顺序排查,绝大部分问题都能定位。不要一上来就怀疑配置写错了,先把日志看完,日志是最诚实的。
6.3 模型配置报错 unknown model
社区里最常见的报错之一是“agent failed before reply: unknown model: deepseek”。这个报错看着吓人,实际上就是OpenClaw去请求模型API时,服务端说你写的模型名称不对。
不同API服务商对模型名称的规范不一样。DeepSeek开放平台的模型ID可能不叫“deepseek”,而是类似“deepseek-chat”这样带后缀的完整名称。Ollama本地模型则直接使用你拉取的模型标签,比如“qwen2.5:7b”。你在OpenClaw配置里填的名字必须跟这些完全一致,不能想当然。
还有一个更隐蔽的问题:配置文件里模型名称看起来是对的,但OpenClaw默认走的是某一个固定供应商的接口地址,你配置的模型名根本不在这个供应商的模型列表里。这时候不光要配置模型名称,还要把API Base地址一起配好。
6.4 Control UI不启动和端口占用
OpenClaw自带一个网页控制界面(Control UI),方便你查看配置、技能、对话记录。但有些环境下启动时会报“control ui did not start”或者“EBUSY resource busy or locked”。
Control UI启动不了,最常见的原因是端口被占用了。OpenClaw默认使用的端口如果跟你电脑上其他程序冲突,UI就会启动失败。解决办法是在配置里改一个空闲端口,然后重启。
Windows上还经常遇到EBUSY错误,这个跟文件占用有关,通常是上一次OpenClaw进程没有完全退出,还锁着配置目录下的某些文件。解决办法是先结束所有残留的Node.js或OpenClaw进程,然后再启动。如果还是不行,把.openclaw文件夹里的临时缓存清一下,但记得先备份配置文件。
另外一个很实在的建议:不要把OpenClaw装到权限受限的目录里,比如Windows的C:\Program Files,或者需要管理员权限才能写入的位置。OpenClaw需要读写配置文件和记忆数据,装在用户目录或者D盘的自定义目录下,运行稳定得多。
最后分享两个养虾的实际心得
我自己的虾是从纯本地模型开始养的。刚开始图省事,直接配了云端API,结果两三天就烧了好几十块。后来换成Ollama本地模型,虽然推理速度慢一些,但胜在随便折腾不心疼。如果你也是刚入门,建议先跑通本地模型,把飞书消息链路彻底稳定下来,再考虑是否换更强的云端模型。
另外一个心得是给虾配一个好用的系统提示词。接入飞书之后,虾面对的不只是你一个人,可能还有你的同事、你的群友。你需要在配置里明确告诉它你是谁、它的职责是什么、什么能说什么不能说。我见过不少人的虾接入群聊之后,因为没配提示词,说了一堆不合适的话,最后不得不紧急下线。这条经验,希望你不要等踩了坑才想起来。
