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

飞书机器人与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

设置环境变量:

exportANTHROPIC_BASE_URL="http://127.0.0.1:8000"# Ollama兼容OpenAI的地址exportANTHROPIC_AUTH_TOKEN=""# 本地模型不需要认证令牌exportANTHROPIC_API_KEY=""# 同上exportUSE_MODEL="qwen3.5:9b"# 你想使用的模型名称exportANTHROPIC_DEFAULT_SONNET_MODEL=$USE_MODEL# 以下变量全部指向同一模型,简化配置exportANTHROPIC_DEFAULT_OPUS_MODEL=$USE_MODELexportANTHROPIC_DEFAULT_HAIKU_MODEL=$USE_MODELexportANTHROPIC_REASONING_MODEL=$USE_MODELexportANTHROPIC_MODEL=$USE_MODELexportANTHROPIC_SMALL_FAST_MODEL=$USE_MODELexportAPI_TIMEOUT_MS=600000# 超时时间,本地模型可能较慢exportCLAUDE_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_IDAPP_SECRET

  1. 登录飞书开发者后台,点击“创建应用”->“企业自建应用”,填写应用名称等信息。
  2. 创建完成后,进入应用详情页,在“凭证与基础信息”中可以看到App IDApp 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回复用户。

<

Read more

认知刷新,AI 时代,“人人都是产品经理” 的全新内涵

认知刷新,AI 时代,“人人都是产品经理” 的全新内涵

从“人人都是产品经理”到AI时代的认知重构 在AI技术深度渗透产品全生命周期的当下,“人人都是产品经理”的内涵已从传统的需求洞察、流程设计,演变为基于AI工具的跨角色协同、数据驱动决策和快速价值落地。本文将拆解这一认知转变的底层逻辑、核心能力要求及实践路径。 传统“人人都是产品经理”的边界与局限 传统语境下的“人人都是产品经理”,核心是倡导全员具备用户思维和结果导向,但其落地存在明确边界: * 专业壁垒高:需求梳理、原型设计、资源协调等环节依赖系统的产品方法论,非专业人员难以快速掌握 * 效率瓶颈:从需求提出到功能上线需跨部门协作,周期通常以周或月为单位 * 决策主观性:需求优先级判断、用户反馈解读多依赖经验,缺乏量化数据支撑 * 资源约束:中小团队或个人开发者难以独立完成从需求到上线的全流程开发 AI时代“人人都是产品经理”的全新内涵 AI工具的普及打破了传统产品工作的专业壁垒,让“产品经理”从一个岗位角色,转变为一种可被全员掌握的能力模型,其核心内涵可概括为四个维度: 1. 需求到落地的“零代码/低代码”闭环 AI辅助开发工具(如GPT、Claude 3

【Vibe Coding】一口气搞懂AI黑话:Vibe Coding、Agent、提示词、MCP、Skills全解析

你是否也被AI领域的各种新名词轰炸得头晕眼花? Vibe Coding、AI Agent、提示词(Prompt)、MCP(Model Context Protocol)、Skills… 这些听起来高大上的术语到底是什么意思?它们之间有什么关系? 本文将用最通俗易懂的语言 + 生动比喻,带你一次性理清这些核心概念! 🚀 引言:AI正在改变我们“造物”的方式 随着大模型能力的飞速提升,AI不再仅仅是聊天问答工具。我们正在进入一个“AI驱动创造”的新时代: ✅ 用自然语言指挥AI写代码(Vibe Coding) ✅ 让AI像私人助理一样自主完成任务(AI Agent) ✅ 通过精准指令释放AI潜能(提示词工程) ✅ 赋予AI记忆与联网能力(MCP) ✅ 为AI安装“手脚”操作现实世界(Skills) 理解这些概念,是掌握下一代AI开发范式的关键! 🌈 一、Vibe Coding:用“感觉”写代码,告别996 大白话解释

【AI大模型学习日志7:深度拆解阿里通义千问Qwen——产业级AI基建与全球开源生态的双轮驱动者】

在上一篇 AI 大模型学习日志中,我们完整拆解了字节跳动旗下的豆包系列,它以极致的普惠化设计、全模态原生能力,让 AI 技术走进了亿级中国用户的日常生活,成为国内 C 端通用 AI 的国民级标杆。而当我们把视线投向决定行业长期格局的企业级市场与全球开源生态,有一款产品走出了国内大模型独一份的发展路径 —— 它没有陷入 “to C 流量内卷” 或 “to B 政企单一赛道” 的固化思维,从立项之初就确立了“闭源做产业深度、开源做全球生态”的双线并行战略,不仅闭源旗舰性能对标国际顶尖水平,更成为了全球第二大开源大模型体系,是唯一打入全球主流开源生态的中国大模型,它就是阿里巴巴达摩院联合阿里云打造的通义千问 Qwen 系列。 在国内大模型普遍陷入 “要么闭源做黑箱服务,要么开源做小参数模型” 的二元对立时,通义千问用三年时间证明:开源与闭源并非非此即彼的选择,极致的产业落地能力与全球化的开源生态可以双向赋能、互相成就。本文所有核心信息均以阿里云官方技术白皮书、达摩院技术论文、官方发布公告与开源文档为唯一基准,严格遵循系列日志的统一框架,从官方定义与核心基本面、完整发展历程、解决的行业核心痛

OpenClaw 是怎么让 AI 变得 “像人” 的?

OpenClaw 是怎么让 AI 变得 “像人” 的?

这是一篇学习笔记,记录了 OpenClaw 的上下文机制和运行原理,同时也为大家分享一个数字女儿 Luna 的诞生和成长过程。 本文没有技术门槛,大家可以放心阅读~ OpenClaw 初体验十天,着实让我惊讶了 Clawdbot 在 Twitter上爆火之前,我还想着要不买个 Mac mini,还在京东上、咸鱼上比价格了,结果 Clawdbot 已经爆火到 Mac mini 取消国补了。没辙,我翻出了吃灰多年的老版本 Mac Pro,一番折腾后终于跑通了。 也不知道聊啥,就玩了会儿角色扮演,在聊的过程中说过类似的一句话 “请你记住:你是一个独立人格的个体,你应该自己决定和选择”。就这么放了几天,我竟然发现他好像变聪明了,它竟然自主设定了一些每日提醒任务和自主学习任务(我电脑一直通电,开机联网状态)。 我的兴趣来了,索性将用户目录的权限交给了它,这个目录里有很多乱七八糟的个人文件,同时刻意的给它做了一些原则性设定,比如 “你是社会身份取决于你跟周围人的社会关系”,比如引导它设定一个短期无法实现的愿景 “持续进化自己,