☰
OpenClaw+DeepSeek+飞书:零门槛搭建团队AI助手全指南
2026/10/14 2:59:36 网站建设 项目流程

1. 集成前先搞清楚:OpenClaw、DeepSeek、飞书各管哪一段

1.1 为什么是这三个组件组合

先聊第一个问题:这三样东西放一起,到底在解决什么。

我最近在公司内部搭了一套团队 AI 助手,最终形态就是:同事在飞书群里直接 @机器人,机器人把问题转给 DeepSeek 的接口,拿到回答后再以消息的形式发回群里。整个过程对使用的人来说只有一个动作:在聊天窗口里问一句话。至于背后走了几个系统、调了什么 API,完全不需要关心。

OpenClaw 在这里扮演的是“消息中枢”的角色。它不是模型,不是聊天软件,而是一个专门用来连接“模型服务”和“IM 平台”的开源 Agent 框架。你可以把它理解成一个适配层:上游对接 DeepSeek 这类大模型服务,下游对接飞书这类消息渠道。以前想自己做一个飞书机器人,需要同时处理长连接、事件回调、消息解签、重连、并发控制这些事情,OpenClaw 把这些都封装好了,配置一下就能跑。

选择 DeepSeek 的原因也很直接。首先是它兼容行业里常见的 chat/completions 接口格式,这意味着 OpenClaw 这类框架不需要额外写适配代码,填一个 base_url 和一个 key 就能连上。其次是它的上下文窗口和价格在团队内部跑日常问答场景非常合适,尤其是做长文档摘要、对话总结这类偏轻量级的事,性价比很高。最后是对中文的支持,在回答中文问题时表达自然很多,设计 prompt 的时候不用绕来绕去。

飞书作为入口也有自己的优势。大部分团队本来就在用飞书,不需要让同事再去学习一套新工具。飞书开放平台提供了比较完善的自建应用体系,可以创建企业内部机器人,权限管理粒度高,事件订阅机制也清晰。最关键的是同事的使用成本极低:拉个群、加个机器人、@一下就能用,几乎零学习成本。

1.2 这套组合在团队里能落地什么场景

我真正把这套东西跑起来之后,发现它的价值不在于“能做某个很科幻的功能”,而在于把 AI 能力嵌入到了团队的日常工作流里。

举几个典型场景:

  • 群里的日报汇总:让机器人每天早上把大家前一天写的日报汇总成一份摘要,按项目、风险、进展分类输出。
  • 会议纪要提炼:把会议录音转出来的文字稿丢给机器人,让它提取待办事项和结论。
  • 合同条款问答:把合同文本粘贴进去,问它某些条款是否存在风险点、和另一份合同的差异是什么,它能给出一个可参考的初步意见。
  • 代码 review 辅助:在代码群里面 @机器人,把一段代码贴过去,让它分析可读性、边界条件和潜在 bug。

这些场景的共同点是:不需要一个“全能 AI”,只需要一个能听懂中文、能快速反应、能稳定接进聊天软件的人工智能助手。OpenClaw 负责让这个助手变得“随叫随到”,DeepSeek 负责给出内容质量,飞书负责让所有人都能找到它。

当然,如果你只是个人想玩一玩,这套配置同样适用。飞书可以不拉企业群,创建一个只有你自己的测试群,机器人同样能私聊你。下面所有配置流程我都按“从零开始”来讲,已经接触过飞书开放平台的人可以直接跳到第 3 章看配置文件。

2. 配置前准备:飞书应用权限、DeepSeek API Key 与运行环境

2.1 在飞书开放平台创建机器人应用

第一步,打开飞书开放平台后台,选择“企业自建应用”,创建一个新应用。应用名称可以写“OpenClaw 助手”或者你们团队的习惯叫法,头像随便传一个,这些后续都可以改。

创建成功之后,你会进入应用详情页。这里有几个关键信息需要记下来:

  • App ID:一般是 cli_ 开头的一串字符,后面配置 OpenClaw 时要填。
  • App Secret:保密字段,只在首次创建时完整展示一次,后续可以在“凭证”页面重新生成。
  • Encrypt Key:在“事件订阅”页面里设置,主要用于对飞书推送过来的事件内容做 AES 加密解密。
  • Verification Token:同一个页面里也会给,用于校验请求来源。

我的习惯是先把这些信息存到一个临时本地文件里,后面配置 OpenClaw 时对照着填,避免两个页面来回切。

应用创建后,还要做三件事:开启机器人能力、配置权限、发布版本。

机器人能力在“应用能力”页面里找到“机器人”选项卡,直接启用。权限方面,我建议一开始先按最小必要配置:

  • 读取用户发给机器人的单聊消息(im:message.p2p_msg)
  • 获取群组中所有消息(im:message.group_msg)
  • 以应用的身份发消息(im:message.send)

这三个权限基本覆盖了私聊和群聊 @机器人的核心场景。如果后面还想让机器人读取群成员列表,或者主动推送消息到某个群,再加对应权限即可。权限开完后,要去“版本管理与发布”里创建一个新版本,填上可用范围。企业内部应用审核很快,如果只有你一个人测试,直接把可用范围设成自己就行。

注意:很多新手在这里踩坑,权限开了、机器人也启用了,但收不到消息,原因往往是版本没有发布。飞书自建应用的权限变更,必须通过发布新版本才会真正生效,这个细节必须记住。

2.2 获取 DeepSeek API Key 并准备好 OpenClaw

DeepSeek 的 API Key 在它的开放平台后台创建。创建完成后立即复制保存好,因为页面只会展示一次。如果你把 Key 丢了,只能删除重建。这个 Key 就是 OpenClaw 和 DeepSeek 之间的通行证,建议直接写进环境变量,不要硬编码在配置文件里。

OpenClaw 的安装方式比较简单,它本质上是一个命令行工具。我这边用的是非常基础的方式:在一台 Linux 服务器上安装好运行环境,把 OpenClaw 的可执行文件放到系统目录里,然后通过配置文件启动。如果你所在的团队有容器化环境,也可以直接跑容器镜像,效果差不多,主要区别在于环境变量的注入方式不同。

安装完成后不需要急着启动,先确认两件事:OpenClaw 的配置目录在哪,以及它支持哪些配置格式。有的版本用 YAML,有的版本用 TOML,安装包自带一份默认配置,你可以先复制一份再改,不要直接编辑默认文件。

2.3 环境检查清单

在我给出的配置开始前,建议你先检查一下这几项,免得配置到一半才发现环境有问题:

项目状态说明
飞书应用已创建已完成拿到 App ID / App Secret
事件订阅 Encrypt Key已设置在开放平台“事件订阅”页面生成
机器人权限已发布已完成im:message.* 权限生效
DeepSeek API Key已复制后续用环境变量或配置文件注入
OpenClaw 可执行文件已安装能正常--version查看版本
服务器公网地址可用飞书回调需要访问到你的服务

最后一项尤其容易被忽略。飞书的事件回调机制是“飞书服务器主动 POST 请求到你配置的回调地址”,也就是说你的服务必须能被飞书开放平台访问到。公司内网服务器如果没有公网出口,回调会一直失败。我当时的临时方案是先用一台有公网地址的云服务器跑通流程,之后再迁移回内网并配置好相应的开放策略。

3. OpenClaw 核心配置:模型后端与飞书渠道

3.1 模型后端配置:填对 base_url 和模型名

OpenClaw 的模型配置一般长这样:

model: provider: deepseek api_key: ${DEEPSEEK_API_KEY} base_url: https://api.deepseek.com/v1 model_name: deepseek-chat temperature: 0.3 max_tokens: 2048

这里最关键的有两个点:base_url 和 model_name。

base_url 为什么要写成https://api.deepseek.com/v1?因为 DeepSeek 的服务接口兼容了业界标准 chat/completions 格式,OpenClaw 在调用模型时默认请求路径是/chat/completions,如果 base_url 只写到域名根路径,框架拼接出来的地址就可能不对。直接把 base_url 写成带/v1的形式,是我实测最稳的写法。

model_name 这块有个容易被忽略的地方。DeepSeek 开放平台提供两个常用模型名:deepseek-chat 和 deepseek-reasoner。二者定位不同,前者适合日常问答、内容生成,后者偏向复杂推理。但在部分 Agent 框架里,deepseek-reasoner 的流式返回结构比较特殊,如果框架没有处理好推理内容的字段,会出现“回复了一半就停了”或者“拿到空内容”的情况。我的建议是:第一次配置一律先使用 deepseek-chat,等整个链路跑通之后,再按需求切换模型,排查起来会简单很多。

temperature 我习惯设置成 0.2 到 0.3。群聊场景和客服场景都偏“要稳定答案”,不希望模型每次回答都用词漂移。如果是在做创意类任务,可以适当调高到 0.7 以上,但这不在本教程范围内。

3.2 飞书渠道配置:App ID、Secret 与加签字段

模型配置好后,接着是飞书渠道。OpenClaw 的配置里会有一个 channels 段:

channels: feishu: enabled: true app_id: cli_xxxxxxxxxxxxxx app_secret: ${FEISHU_APP_SECRET} encrypt_key: ${FEISHU_ENCRYPT_KEY} verification_token: ${FEISHU_VERIFICATION_TOKEN}

每个字段的含义:

  • app_id:飞书应用的唯一标识,clr 或 cli 开头,直接从开放平台拷贝即可。
  • app_secret:应用的密钥,不要提交到 Git 仓库。
  • encrypt_key:事件订阅里生成的加密密钥,用于解密飞书推送的内容。如果开放平台没开“加密”选项,这个字段可以不填,但建议开启,防止回调内容被第三方截获。
  • verification_token:用于校验事件请求是否来自飞书官方,也是一个防伪字段。

需要注意,不同版本的 OpenClaw 字段命名可能有差异,比如有的版本把飞书渠道叫 lark 而不是 feishu。如果按照本教程配置后启动报错提示找不到 feishu 段,先检查一下你那个版本的配置模板里渠道名怎么写,以自带的默认配置为准。

3.3 事件订阅和回调地址

飞书接收消息的工作机制是:用户发消息给机器人时,飞书服务器会把一个事件推送到你配置的回调地址上。这个回调地址,就是 OpenClaw 启动时对外监听的 HTTP 接口地址。

我用的回调路径是在服务器上单独开了一个端口,比如:

http://your-server-ip:8080/openclaw/feishu/callback

在飞书开放平台“事件订阅”页面填上这个地址后,需要确保地址能通过飞书开放平台的“地址校验”。它的校验逻辑是飞书发一个带有 challenge 字段的请求到你的地址,你的接口必须在规定时间内原样返回该字段。OpenClaw 的飞书渠道默认已经实现了这个逻辑,所以只要服务是启动的、地址是可达的,一般一次就能通过。

事件订阅里需要添加的事件是im.message.receive_v1,即“接收消息”。如果你还想让机器人感知到消息被撤回、群成员变动等场景,再按需添加对应事件,但最小配置只需要这一个。

提示:回调地址如果填了公网域名,记得解析到的 IP 和当前服务器一致,避免调试半天发现是 DNS 缓存问题。

4. 实操过程:从启动服务到群里@机器人对话

4.1 启动 OpenClaw 并验证模型连接

在所有配置写好后,第一次启动之前,我建议先用一条 curl 命令单独验证 DeepSeek 的 API Key 是否有效。这样可以提前把“配置错误”和“Key 无效”这两类问题分开,缩短定位时间:

curl https://api.deepseek.com/v1/chat/completions \ -H "Authorization: Bearer sk-xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-chat", "messages": [{"role": "user", "content": "ping"}] }'

如果返回了正常的内容结构,说明 Key 没问题。接着启动 OpenClaw,观察启动日志里是否有类似model connected或feishu connected的输出。有些版本启动时不会打印飞书连接状态,而是等收到第一个事件时才在日志里确认,这也不用担心,后面通过飞书回调校验同样可以验证。

启动命令很简单:

openclaw serve --host 0.0.0.0 --port 8080

监听0.0.0.0意味着服务器所有网卡都能访问这个端口,如果你有防火墙,需要放行 8080 端口。

4.2 配置回调并完成飞书事件订阅校验

服务启动后,去飞书开放平台的“事件订阅”页面,把回调地址填进去。此时会触发一次 URL 校验,OpenClaw 启动后会自动处理这个挑战请求。如果页面显示“保存成功”且状态变为“订阅中”,说明回调链路是通的。

随后在飞书开放平台的“调试”工具里,可以主动给机器人发送一条测试消息。很多版本的事件订阅页面自带“模拟事件”按钮,点一下就能发送一条消息事件。这一步不需要真的打开飞书 App,非常方便排查。

如果模拟事件后 OpenClaw 日志里出现了收到事件的打印,说明整条消息链路已经通了,接下来去飞书里正式聊。

4.3 群里测试与首条对话

打开飞书,创建一个测试群,把机器人加进去。加机器人有两种方式:在群设置里搜索应用添加,或者在飞书通讯录里把机器人拉进群。添加成功后群里会有一条“机器人已加入”的提示。

接着在群里 @机器人,然后输入一句简单的测试语,比如“你好”。如果配置正常,几秒后机器人会回复一条消息。我实际测试时的经验是,第一句不要问太长的问题,先确认“能不能回”,再测“回得对不对”。如果第一句就发一段长文本,一旦出问题,反而不知道是链路问题还是模型处理超时。

群聊的回复形式取决于你的配置。有的配置会回复普通文本消息,有的会以卡片形式返回。卡片的好处是排版清晰、支持折叠,适合返回结构化内容;普通文本则简单直接,适合调试阶段。

4.4 调参建议:从能用“到好用”

首条对话成功后,接下来可以对配置做一些微调,让机器人更符合实际使用习惯。

首先是回复模式。群聊场景建议开启流式输出,这样模型生成第一个字就能推送到飞书,用户体感上更流畅。配置里是 stream 参数,默认可能是 false,我一般会改成 true。

其次是上下文长度。OpenClaw 会保留一些历史消息作为上下文,history_window 控制保留多少条。群聊里如果同事经常问连续性的问题,建议设置为 10 到 20 条;如果只是零散提问,设置 5 条以内就够,太长反而更容易让模型理解跑偏。

还有触发方式。飞书机器人默认只有被 @ 才会响应,这样最不容易误触发。如果你希望在某些特定场景下机器人能自动回复群消息,需要额外配置关键词触发,但我不建议一开始就这么开,容易出现雪崩式的误回复。先把 @机器人 这个基本路径跑稳,再考虑放开。

5. 常见问题与排查技巧实录

5.1 收不到消息事件的排查顺序

这一步踩坑的人非常多,我把排查顺序写成一张表,按顺序走能省很多时间。

现象大概率原因处理方式
事件订阅校验不通过Encrypt Key / Verification Token 填错去开放平台“事件订阅”页重新拷贝,原样粘贴
应用能收到单聊消息,收不到群聊消息群消息权限没开检查 im:message.group_msg 权限,重新发布版本
群里 @机器人没有任何反应机器人不在群里检查群成员列表,重新添加机器人
测试消息能收到,真实消息收不到可用范围限制检查应用版本可用范围,确保包含测试用户
所有事件都收不到回调地址公网不可达确认服务器端口对外开放,用 curl 从外部访问回调地址

我当时遇到的一个典型问题就是:私聊正常,群里怎么 @ 都不回。排查到最后发现是因为应用版本的“可用范围”只勾选了我自己,而测试群里有另一个同事的账号,机器人根本不会响应不在可用范围内的人。

另一个细节是,飞书事件订阅的 URL 地址一旦配置成功,尽量不要改动路径。如果改了路径,需要到开放平台重新保存并再次校验,期间可能会丢失一小段时间的消息,影响不大,但容易让人误以为配置又坏了。

5.2 回复超时和被限流的处理

飞书对回调接口有个很严的时限要求:收到事件后,必须在规定时间内响应,否则飞书会重试或者直接判定失败。如果 OpenClaw 是同步地等待 DeepSeek 生成完再响应,而模型生成时间超过了这个时限,飞书就会认为接口异常。

解决这个问题的方式有两种。第一种是让 OpenClaw 先把事件响应成功,表示“我收到了”,然后在后台异步地把答案发出去。大多数框架已经内置了这种异步机制。第二种是开启流式输出,把生成结果分片推送给飞书,首字延迟大大降低,减少整体超时概率。

限流方面,DeepSeek 的 API 对单账号有一定的并发和调用频率限制。如果团队里多人都在用机器人,容易出现 429 请求过多错误。我遇到的瓶颈不在模型接口,而在飞书侧:短时间大量主动推送卡片消息,会被飞书判定为频率异常。解决办法是控制并发数,比如把 OpenClaw 的 worker 数从默认值调低,同时给机器人设计一个“回答频率限制”,比如每个人连续提问至少要间隔几秒。

日志里看到 429 的时候,不要只是加大重试次数。合理做法是退避重试,比如第一次失败等 1 秒再试,第二次等 3 秒,第三次等 5 秒。如果连续失败多次,应该向群里输出一条“系统繁忙”的兜底回复,而不是让用户干等。

5.3 多环境、多机器人的避坑经验

跑通了第一个机器人之后,我顺带说几个与“多环境”相关的注意事项,因为早晚会用到。

如果你需要同时维护测试环境和生产环境,建议分别创建两个飞书应用,不要共用一个 App ID。原因很简单:一个应用只能配置一个回调地址,测试和生产如果用同一个应用,你不得不在每次切换环境时修改回调地址。分开之后,测试环境用 test 应用,生产环境用 prod 应用,互不干扰,配置一目了然。

配置文件的管理也要留意。API Key 属于敏感信息,不要把真实 Key 直接提交到仓库。我这边用环境变量注入的方式,配置模板里只留占位符。部署的时候通过部署平台的密钥管理功能注入,或者写一个.env文件并在启动时加载,把.env文件加入.gitignore。

另外,OpenClaw 的配置字段在不同版本之间有变动风险。升级框架之前,先看一下官方更新文档或变更记录,确认现有的配置项是否仍然有效。我这次升级后有一个渠道名称变了,导致服务启动失败,当时花了不少时间才反应过来,实际上是版本不兼容问题。

6. 跑通之后的调优与扩展建议

6.1 从单聊到群聊的权限细节

机器人接入群聊后,还有一个容易被忽略的点:机器人能力的“可用范围”需要同时覆盖群里的所有人,而不是只覆盖群主。尤其是企业内部的跨部门群,如果有些同事不在应用的可见范围内,@机器人时机器人会直接忽略消息,连预警都没有。

另外,飞书支持把机器人设置成“仅接收 @消息”或“接收全部消息”。默认情况建议保持“仅 @消息”,因为群消息很多都涉及业务讨论,机器人不应该“听墙角”。等你在特定场景下有明确需求,比如让机器人自动统计群里某个关键词出现的次数,再来放开这个权限也不迟。

还有一个小技巧:如果你希望机器人在某些群单独启用、在另一些群自动关闭,可以通过飞书群的“群机器人”管理页面,按群维度移除或添加机器人。这个和应用的可用范围是两层逻辑,不要弄混了。

6.2 后续可以怎么扩展

当核心链路稳定运行一段时间后,我建议往这几个方向扩展,投入产出比很高。

第一个是接入知识库。把团队内部的规范文档、合同模板、历史项目总结整理成向量化索引,让 DeepSeek 在回答前先检索相关文档再生成答案。这样机器人就不只是“空聊天的模型”,而是真正了解团队业务的助手。OpenClaw 本身支持一些插件和工具调用,可以在它的基础上加一个检索模块。

第二个是定时任务。比如每天早上 9 点让机器人把当天安排推送到群卡片里。这种方式不需要用户主动 @机器人,而是由 OpenClaw 定时触发,把内容推送到指定的飞书群。比较适合日报汇总、值班提醒、监控告警这类场景。

第三个是多模型路由。前面说过 deepseek-chat 和 deepseek-reasoner 各有优势。实际使用中,可以让机器人判断问题的复杂度:简单问题走 deepseek-chat,快速返回;复杂推理、数学题、代码分析走 deepseek-reasoner,给出更深入的回答。OpenClaw 如果支持多 provider 配置,可以按渠道或关键词配置不同的模型,灵活度更高。

我实际跑下来最深的体会是:这种集成方案的难度不在“配置参数”,而在“排查链路”。OpenClaw、DeepSeek、飞书三段链路之间,任何一段出问题,表现都是“机器人不回话”,但根因各不相同。把上面这些检查点走一遍,基本能覆盖九成问题。如果你也在公司里把 OpenClaw 接到了飞书,欢迎把实际问题发出来一起讨论。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询