跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

飞书机器人与 Claude Code 交互:从手机指令到 AI 处理的全自动流程

本方案演示了如何通过飞书机器人对接本地运行的 Claude Code,实现移动端指令到 AI 处理的全自动流程。主要涉及 Docker 容器化部署 Claude Code、配置本地模型环境变量、安装 Python 依赖及飞书 SDK、获取应用凭证以及编写中间件脚本监听 WebSocket 事件。最终实现在飞书聊天窗口发送消息即可获得 AI 编码助手的专业回复,无需打开电脑终端,适合日常开发中的快速问答与代码辅助场景。

292440837发布于 2026/3/29更新于 2026/9/656 浏览
飞书机器人与 Claude Code 交互:从手机指令到 AI 处理的全自动流程

飞书机器人与 Claude Code 交互:从手机指令到 AI 处理的全自动流程

一、背景

在日常开发中,我们经常需要快速查询代码问题、生成文档或执行简单的编程任务。如果有一款 AI 助手能随时响应,就像在电脑终端前一样,那该多方便!本教程将演示如何搭建一个飞书机器人,当你在手机飞书 App 上发送消息时,该消息会传递给运行在电脑上的Claude Code(一个智能编码助手),Claude Code 处理后将结果回复到你的飞书会话中。

通过这个方案,你可以:

  • 在手机上随时向 AI 提问编程问题。
  • 让 AI 帮你调试代码、解释概念、生成代码片段。
  • 无需打开电脑终端,即可利用强大的 AI 编码能力。

二、实现方案概览

整体流程如下:

  1. 飞书机器人接收消息:在飞书创建一个自定义机器人,并配置事件订阅,当用户@机器人或私聊发送消息时,飞书会将消息推送到我们的服务。
  2. 消息处理中间件:我们编写一个 Python 程序,该程序使用飞书开放平台的 SDK 接收消息,并将消息内容转发给 Claude Code。
  3. Claude Code 处理:Claude Code 是一个命令行 AI 助手,我们通过 SDK 调用它,传入用户的问题,获取回答。
  4. 回复消息:Python 程序将 Claude Code 的回答通过飞书 API 回复给用户。

所有组件都运行在本地电脑上(或任何可联网的服务器),无需云服务。

三、操作步骤

前置准备

  • 一台可运行 Docker 的电脑(Linux/Mac/Windows 均可)。
  • 一个飞书企业或开发者账号(用于创建应用和机器人)。
  • (可选)本地已部署 Ollama 或其他兼容 OpenAI 格式的模型服务;若没有,也可使用 Claude 官方 API(需修改配置)。

第一步:创建并进入 Claude Code 容器

Claude Code 是一个基于 Claude 的 AI 编码助手,但官方通常需要通过命令行使用。为了简化环境配置,我们使用 Docker 容器来运行它。容器内已经预装了 Claude Code 所需的依赖。

为什么用 Docker? Docker 可以隔离环境,避免污染本地系统,同时确保所有依赖版本一致。即使你电脑上没有 Python 或 Node.js 环境,也能轻松运行。

执行以下命令:

docker run -it --net=host -v$PWD:/home -w /home --rm swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hi20240217/pub:claude_code /bin/bash 

这条命令做了几件事:

  • -it:以交互模式运行,让你能操作容器内的命令行。
  • --net=host:使用宿主机的网络,方便容器内访问本地服务(如 Ollama)。
  • -v $PWD:/home:将当前目录挂载到容器的 /home 目录,这样容器内可以访问宿主机上的文件(如后续的 Python 脚本)。
  • -w /home:工作目录设为 /home。
  • --rm:容器退出后自动删除,避免残留。
  • swr.cn-north-4.myhuaweicloud.com/...:使用的镜像地址,包含了 Claude Code 及其依赖。

进入容器后,先取消代理设置(如果有):

unset http_proxy unset https_proxy 
配置 Claude Code 使用本地模型

Claude Code 默认使用 Anthropic 的 API,但我们可以通过环境变量让它调用兼容 OpenAI 格式的本地模型(如 Ollama)。假设你在本地 8000 端口运行了 Ollama 服务(例如通过 ollama serve),并且已有模型如 qwen3.5:9b。

设置环境变量:

export ANTHROPIC_BASE_URL="http://127.0.0.1:8000" # Ollama 兼容 OpenAI 的地址
export ANTHROPIC_AUTH_TOKEN="# 本地模型不需要认证令牌"
export ANTHROPIC_API_KEY="# 同上"
export USE_MODEL="qwen3.5:9b" # 你想使用的模型名称
export ANTHROPIC_DEFAULT_SONNET_MODEL=$USE_MODEL # 以下变量全部指向同一模型,简化配置
export ANTHROPIC_DEFAULT_OPUS_MODEL=$USE_MODEL
export ANTHROPIC_DEFAULT_HAIKU_MODEL=$USE_MODEL
export ANTHROPIC_REASONING_MODEL=$USE_MODEL
export ANTHROPIC_MODEL=$USE_MODEL
export ANTHROPIC_SMALL_FAST_MODEL=$USE_MODEL
export API_TIMEOUT_MS=600000 # 超时时间,本地模型可能较慢
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 # 禁止非必要流量,确保隐私

这些环境变量告诉 Claude Code SDK:所有请求都发往本地的 Ollama,使用指定的模型。

测试 Claude Code 是否正常工作

运行以下命令,让 Claude Code 回答一个简单问题:

IS_SANDBOX=1 claude --dangerously-skip-permissions -p"你是谁" --output-format text 

如果配置正确,你应该看到类似如下的输出:

我是 Claude agent,由 Anthropic 构建。我是一个交互式智能助手,专注于帮助完成软件工程和编程任务,例如: - 调试代码 - 添加新功能 - 重构代码 - 解释代码 - 解答编程问题 - 辅助开发工作 你今天需要我帮你做什么呢? 

这说明 Claude Code 已经就绪,可以接受指令了。

第二步:安装 Python 依赖

我们的消息中间件是用 Python 编写的,需要安装两个库:

pip3 install claude_agent_sdk --break-system-packages
pip3 install lark_oapi --break-system-packages 
  • claude_agent_sdk:这是 Claude Code 的 Python SDK,它封装了与 Claude Code 交互的细节,让我们可以在 Python 代码中轻松调用 Claude Code 并获取回复。
  • lark_oapi:飞书开放平台官方 Python SDK,用于接收飞书事件、发送消息等。

参数 --break-system-packages 是 pip 的一个选项,允许在系统 Python 环境中安装包而不触发警告(如果你的系统是较新的 Linux 发行版)。你也可以使用虚拟环境(venv)来管理依赖。

第三步:获取飞书应用的凭证

要让飞书机器人接收和发送消息,你需要在飞书开发者后台创建一个应用,并获取 APP_ID 和 APP_SECRET。

  1. 登录 飞书开发者后台,点击'创建应用'->'企业自建应用',填写应用名称等信息。
  2. 创建完成后,进入应用详情页,在'凭证与基础信息'中可以看到 App ID 和 App Secret。
  3. 还需要配置'事件订阅':
    • 在'事件订阅'页面,开启'接收消息'事件(im.message.receive_v1)。
    • 因为我们是本地运行,无法提供公网 HTTPS 地址,所以需要使用 WebSocket 方式接收事件(下文脚本中已实现)。飞书支持通过 WebSocket 连接接收事件,无需公网地址。
  4. 在'权限管理'中添加机器人需要的权限:im:message(读取和发送消息)和 im:message:send_as_bot(以机器人身份发送消息)。记得版本发布并审核。

得到 APP_ID 和 APP_SECRET 后,我们在本地创建一个 .env 文件来保存它们:

cat> .env <<"EOF"
APP_ID=<你的 APP_ID>
APP_SECRET=<你的 APP_SECRET>
EOF

第四步:编写并运行中间件脚本

现在,我们编写一个 Python 脚本,它将完成以下任务:

  • 使用飞书 SDK 通过 WebSocket 连接到飞书服务器,监听消息事件。
  • 当收到新消息时,将消息内容放入队列,由工作线程处理。
  • 工作线程调用 Claude Code 处理消息,并通过飞书 API 回复用户。

这里提供一个核心逻辑框架,实际使用时请根据需求调整:

import os
from dotenv import load_dotenv
from lark_oapi import LarkClient
from lark_oapi.api.im.v1 import CreateMessageReq
from lark_oapi.exceptions import ApiException

# 加载环境变量
load_dotenv()

app_id = os.getenv("APP_ID")
app_secret = os.getenv("APP_SECRET")

client = LarkClient(app_id, app_secret)

def process_message(content):
    # 这里调用 claude_agent_sdk 的逻辑
    # response = claude_agent.run(content)
    return f"Claude 回复:{content}" # 占位符

def handle_feishu_event(event):
    # 解析飞书事件
    msg_content = event.get("message", {}).get("content", "")
    reply_text = process_message(msg_content)
    
    # 发送回复
    req = CreateMessageReq.builder() \
        .msg_type("text") \
        .content('{"text":"' + reply_text + '"}') \
        .build()
    client.im.v1.message.create(req)

# 启动 WebSocket 监听器
# client.start_websocket_listener(handle_feishu_event)

注意:实际运行时,你需要集成 claude_agent_sdk 的具体调用方法,并确保 WebSocket 连接稳定。

第五步:在飞书中与机器人对话

脚本运行后,在飞书聊天窗口@你的机器人,输入问题。消息会被发送到本地服务,经过 Claude Code 处理后,结果会直接显示在你的聊天界面中。

常见问题

  • 连接超时:本地模型推理较慢,适当增加 API_TIMEOUT_MS。
  • 权限不足:检查飞书应用是否发布了最新版本,且拥有 im:message 权限。
  • Docker 网络:确保 --net=host 配置正确,否则容器无法访问本地 Ollama。

总结

通过上述步骤,我们成功搭建了一个基于飞书和 Claude Code 的自动化 AI 助手。这不仅提升了开发效率,还实现了随时随地获取 AI 支持的便利。后续可以根据实际需求扩展更多功能,比如文件上传分析或复杂任务编排。

目录

  1. 飞书机器人与 Claude Code 交互:从手机指令到 AI 处理的全自动流程
  2. 一、背景
  3. 二、实现方案概览
  4. 三、操作步骤
  5. 前置准备
  6. 第一步:创建并进入 Claude Code 容器
  7. 配置 Claude Code 使用本地模型
  8. 测试 Claude Code 是否正常工作
  9. 第二步:安装 Python 依赖
  10. 第三步:获取飞书应用的凭证
  11. 第四步:编写并运行中间件脚本
  12. 加载环境变量
  13. 启动 WebSocket 监听器
  14. client.startwebsocketlistener(handlefeishuevent)
  15. 第五步:在飞书中与机器人对话
  16. 常见问题
  17. 总结

更多推荐文章

查看全部
  • Z-Image 深度评测:无需登录注册的免费 AI 图像生成工具
  • Web Streams 的隐性开销与 JavaScript 流处理新方案
  • 使用 AI 在 Figma 中自动生成 UI 设计稿
  • ibbot 国产开源 AI 智能体平台解析
  • 字节跳动大数据开发面试常见问题及技术解析
  • Git 连接 GitHub 出现权限拒绝错误的解决方案
  • Stable Diffusion 模型下载工具实战指南
  • BFS 实现拓扑排序:原理与 LeetCode 实战
  • Spring Boot 3.x 新特性解析:Java 17 支持与 GraalVM 原生镜像
  • AI 大模型 40 年发展历程与未来统一趋势研究
  • MySQL 与 PostgreSQL 深度对比
  • 从 BERT 到 DeepSeek:大模型架构演进、预训练与 RLHF 解析
  • 基于 Qwen3-VL 的操作视频智能评分系统部署实战
  • 零基础黑客入门:普通人成为安全专家的十个步骤
  • 算法基础:前缀和如何优化区间查询
  • 无人机视角山区泥石流与滑坡图像识别数据集
  • C 语言反转链表前 K 个节点:辅助链表法
  • PID 控制算法:手动与自动模式切换机制
  • Linux 进程控制详解:fork、wait 与退出机制
  • 从 AI 工具使用者到创作者:技术变现之路

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online