基于开源生态的飞书 Agent 闭环极速 MVP 选型方案
本方案旨在放弃“从零造轮子”,全面拥抱 2026 年主流的开源 AI 基础设施(MCP 协议、LangGraph 状态机、Langfuse 遥测),构建一个能够快速跑通“搭建 ──> 运行 ──> 微调 ──> 遥测 ──> 闭环进化”的极简 MVP 架构。
一、 降维打击的开源技术栈选型(The LEGO Stack)
通过引入以下三个核心开源技术,我们可以将原先需要 3 个月开发的工程量,压缩到 1-2 周内完成 PoC 验证:
┌────────────────────────────────────────────────────────┐
│ 1. 编排大脑:LangGraph │
│ (天然支持有向循环图 Cyclic Graph,内置 Human-in-the-loop) │
└───────────────────────────┬────────────────────────────┘
│
┌─────────────────────────┴─────────────────────────┐
▼ ▼
┌─────────────────────────────────┐ ┌─────────────────────────────────┐
│ 2. 执行手脚:Lark MCP │ │ 3. 遥测眼睛:Langfuse │
│ (飞书官方 lark-openapi-mcp 服务) │ │ (开源 LLM 追踪,收集用户 Diff) │
└─────────────────────────────────┘ └─────────────────────────────────┘
1.1 大脑:LangGraph (Stateful Multi-Agent Orchestration)
为什么选它: 传统的 CrewAI 或 AutoGen 适合单向、顺序性的任务,但我们的“双 Swarm 协作”本质上是一个带有状态循环、需要人类介入(Human-in-the-loop)修改的有向图。
MVP 作用:
LangGraph 是目前唯一将“图状态(State)”和“中断等待(Interrupt & Resume)”作为一等公民对待的框架。
我们可以轻松用它定义“架构师 Node”和“部署 Node”,并且在部署前自动触发 interrupt_before,等待用户在控制台或 UI 确认(实现概念设计确认)。
1.2 手脚:Model Context Protocol (MCP) 与 飞书官方 MCP 服务
为什么选它: 这是本 MVP 能在一周内落地的核心秘诀! 2024年底由 Anthropic 提出的 MCP 协议已成为行业标准。飞书官方近期开源了 larksuite/lark-openapi-mcp。
MVP 作用:
我们完全不需要自己用 Python 封装飞书的 DDL/DML 接口。
启动 Lark MCP Server 后,大模型(如 Claude 3.5 Sonnet)可以直接通过标准的 JSON-RPC 调用飞书的所有 API。
大模型会自动识别到“这里有一个 create_bitable_table 的 Tool”,自主决定参数并调用,免去了我们编写上千行 API 适配和 CLI 解析代码的烦恼。
1.3 眼睛(遥测):Langfuse (Open Source LLM Observability)
为什么选它: 收集用户反馈数据和输入输出的 Diff 是机器学习闭环的难点。Langfuse 是目前最流行的开源 LLM 监控和评估平台。
MVP 作用:
自动 Trace 链条: Langfuse 能够自动记录 LangGraph 的每一个 Node 运行、每一个 MCP 工具调用。
用户反馈反馈(Feedback Score): 内置了评分 API。当用户在零代码页面对 AI 生成的表单给出“ thumbs up/down”或进行“文本微调”时,前端直接调用 Langfuse SDK 上报。
DPO 语料一键导出: 我们可以直接在 Langfuse 后台,将用户“打回并修改”(Rejected)的 Prompt 与“最终上线”(Chosen)的 Schema 导出为 DPO 训练集,免去自行开发遥测数据库。
二、 MVP 架构拼装蓝图(How It Works)
利用上述开源技术,我们设计的全链路闭环在 MVP 阶段的实际流转如下:
┌──────────────┐ ┌───────────┐ ┌────────────────────┐
│ 1. 用户输入 │ ──────> │ LangGraph │ ──────> │ Lark MCP Server │
│ "帮我做请假" │ │ (分析意图) │ │ (自动调用飞书接口) │
└──────────────┘ └─────┬─────┘ └─────────┬──────────┘
│ │
▼ ▼
┌──────────────┐ ┌───────────┐ ┌────────────────────┐
│ 4. 闭环进化 │ <────── │ Langfuse │ <────── │ 3. 用户在飞书微调 │
│ (DPO 导出) │ │ (捕获反馈) │ │ (触发 Webhook 事件) │
└──────────────┘ └───────────┘ └────────────────────┘
第一步:概念设计与 L-DSL 生成
用户在前端页面(可以使用开源的 Chainlit 或 Dify 快速搭建对话界面)输入需求。
LangGraph 中的 “架构师 Node”(背后是 GPT-4o 或 Claude)进行多轮对话,最终输出标准的 L-DSL(用 JSON 表达)。
第二步:自动物理部署(MCP 驱动)
LangGraph 将 L-DSL 传递给 “部署 Node”。
“部署 Node”通过 lark-openapi-mcp,把逻辑模型翻译为一系列 MCP Tool Calls。
Lark MCP Server 接收指令,直接在用户的飞书中创建 Bitable、新增字段,并生成一篇带 Form 入口的飞书文档,交付运行。
整个调用过程由 Langfuse SDK 自动包装(Wrap),生成一条全局 Trace ID。
第三步:遥测捕获与 Diff 计算(轻量级方案)
用户打开飞书,发现某个字段不符合预期,在多维表格界面进行了修改(如将“备注”从普通文本改成了多行文本)。
我们部署一个极简的 Node.js/Python Webhook Receiver 订阅飞书的数据表字段变更事件。
当 Webhook 收到 updated 事件时,调用 Langfuse SDK:
# 将用户的修改作为 "Feedback" 关联到原本的 Trace 上
langfuse.score(
trace_id=original_trace_id,
name="user_refinement",
value=0.0, # 降低原生生成的评分
comment=json.dumps({"field": "备注", "change": "TEXT -> TEXTAREA"})
)
第四步:偏好数据导出与微调准备
在 Langfuse 的后台,我们可以直接看到所有“被用户修改过”的 Trace。
通过 Langfuse 的 API,一键拉取所有 value=0.0 的 trace,提取其 input(原始 Prompt)和 output(AI 初始生成),以及 comment(用户的最终修正结果),自动合并为: { prompt: "...", rejected: "TEXT", chosen: "TEXTAREA" }
DPO 数据集集装完毕!
三、 MVP 落地三步走计划(2周内跑通 POC)
为了实现极速验证,我们将工作流拆分为两个星期:
📅 第一周:通路的“正向打通”(从对话到飞书自动建表)
第 1-2 天:环境部署
部署一个本地/云端 Langfuse 实例(支持 Docker 一键部署:docker compose up)。
注册飞书开发者账号,创建一个飞书应用,并获取 APP_ID 和 APP_SECRET。
启动飞书官方的 Lark MCP Server 并进行配置。
第 3-5 天:LangGraph 编排与工具绑定
编写一个极简的 LangGraph 脚本,将大模型(Claude/GPT)连接到 Lark MCP Server。
实现:输入“帮我建一个采购审批表,包含商品名和总价”,LangGraph 自动解析,并通过 MCP 自动在用户的飞书中建好这个表格。
验证 Langfuse 中能清晰看到所有的工具调用 Trace。
📅 第二周:通路的“反向闭环”(从用户修改到 DPO 数据收集)
第 6-8 天:极简 Webhook 与 Diff 监听
编写一个 50 行代码以内的 Webhook 接收端,监听当前 Bitable 的 bitable.table.field.updated_v1 事件。
当用户在飞书界面上,把一个“单行文本”改为“数字”时,Webhook 成功捕获该事件。
通过 Webhook 将这一修改以 score 的形式提交给 Langfuse,与第 3-5 天生成的 Trace ID 绑定。
第 9-10 天:DPO 数据集自动生成与闭环测试
编写一段脚本,从 Langfuse 读取所有被修改过的 Trace。
自动将其清洗、合成为完美的 DPO dataset JSON 文件。
测试进化: 提取这一修改,作为 Few-shot 动态注入到第一周的 LangGraph Prompt 中。再次测试“建一个设备管理表,包含总价”,验证大模型是否已经“学会”了自动将总价设为数字类型。
四、 本方案的技术与商业优势
零研发成本的 UI 界面: 我们甚至不需要自己写前端界面。可以直接把 Lark MCP Server 接入到 Claude Desktop 或 Cursor 中。用户在 Claude Desktop 里直接打字,Claude 就能通过 MCP 在飞书里建表。
极高的确定性: 借助 LangGraph 的状态管理,我们在 MVP 阶段可以加入“人工审批”节点(Human-in-the-loop),在 MCP 真正去飞书建表前,让开发人员在命令行敲 y 确认,确保 100% 安全合规。
极具说服力的 Demo: 你可以在 10 分钟的汇报中,向团队或投资人展示:“看,我在这打一句话,飞书里应用自动建好了;我手改了一下飞书,后台自动收集到了 DPO 训练样本。整个闭环完全自动化运行。”
