欢迎光临
我们一直在努力

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

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

    • 一、背景
    • 二、实现方案概览
    • 三、操作步骤
      • 前置准备
      • 第一步:创建并进入Claude Code容器
        • 配置Claude Code使用本地模型
        • 测试Claude Code是否正常工作
      • 第二步:安装Python依赖
      • 第三步:获取飞书应用的凭证
      • 第四步:编写并运行中间件脚本
        • 脚本解释
        • 运行脚本
      • 第五步:在飞书中与机器人对话
    • 常见问题
    • 总结

一、背景

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

通过这个方案,你可以:

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

二、实现方案概览

整体流程如下:

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

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

    <

    赞(0)
    未经允许不得转载:171主机测评 » 飞书机器人与Claude Code交互:从手机指令到AI处理的全自动流程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址