三个名字都带 lang,最容易搞混。一句话先记住:LangChain 帮你「搭」AI 应用,LangGraph 帮你「编排」复杂流程,Langfuse 帮你「看清」AI 在干嘛、花了多少钱、好不好。前两个是一家人(干活的),第三个是另一回事(监工记账的)。本文讲清三者区别,再落到我们的 Akke 项目——到底用了哪个、没用哪个、为什么,以及 Langfuse 里还有哪些很有用、但我们还没用上的能力。
先把三个名字一字排开,破掉最常见的误会:很多人以为这是「三选一」,其实它们分属两个不同的层——前两个负责「让 AI 干活」,第三个负责「盯着 AI 干活」。
一套调模型、读文档、记历史、接工具的现成积木,把它们拼成「链」,快速搭出一个 AI 应用。
LangChain 同一家出的,专管复杂流程:用「流程图」描述 AI 的多步工作,能分支、能回头、能循环。
跟前两个不是一类。它不帮你干活,帮你看清:每次模型调用花了多少、说了啥、慢不慢、对不对。
它 2022 年底 随着 ChatGPT 的热潮爆火,是最早一批「让普通开发者也能快速搭大模型应用」的工具。它解决的核心痛点是:调一次模型容易,但要把模型和外部世界(文档、数据库、搜索、工具)接起来、还要记住对话,每个人都重复造轮子。LangChain 把这些封装成标准模块:
LangGraph 是 LangChain 团队 2024 年 推出的「下一代」编排工具。背景是:当大家开始做 Agent(能自己规划、循环、调用工具的 AI) 时,发现 LangChain 那种「一条直链」不够用了——真正的 agent 要能「试一下不行就回头再试」「根据结果决定走哪条路」。这种会绕圈、有分支的流程,用「图」来描述最自然:
这就是 「LLM 可观测性(Observability)」——和前两个完全不同的维度。前两个帮你把 AI 应用造出来;Langfuse 帮你在应用上线之后,看清它到底在干嘛。因为大模型有个要命的特点:它是个黑盒,同样的输入可能给不同输出,还按字数烧钱。没有观测,你就是「闭着眼开车」——不知道哪条对话翻车了、不知道这个月为什么账单暴涨、不知道改了提示词到底变好还是变差。Langfuse 把这些变得「看得见」:
把三者并排放,区别一目了然。最关键的一栏是「属于哪层」——前两个是干活层、可以二选一甚至一起用;Langfuse 是监工层,和前两个不冲突、可以叠加。
| 维度 | LangChain | LangGraph | Langfuse |
|---|---|---|---|
| 属于哪层 | 干活层(搭) | 干活层(编排) | 监工层(看清) |
| 一句话 | 搭 AI 应用的积木盒 | 编排复杂流程的流程图 | 观测 AI 的记录仪+账单 |
| 解决什么 | 不想重复造调模型、读文档、记忆、工具的轮子 | 让 AI 多步、分支、循环地有序工作 | 上线后看不见花了多少、好不好、哪翻车 |
| 用它的时机 | 快速搭原型、需要现成模块多 | 做会自己绕圈决策的 Agent | 任何认真上线、要控成本和质量的 AI 应用 |
| 和另两个关系 | LangGraph 的「积木来源」 | LangChain 的「升级版编排」 | 独立一层,和前两个可叠加 |
| Akke 用不用 | ○ 没用 | ○ 没用 | ✅ 在用 |
先说为什么需要。Akke 是抖音获客平台:从评论里发现高意向客户,再让 AI 自动写开场白、养客对话直到成交。这意味着每天有大量 AI 调用在自动跑、还在直接花钱、还直接面对真实客户。这种场景没有观测就是「裸奔」——所以我们接了 Langfuse:每条 AI 生成的消息都串上一个「追踪号」,从客户评论 → 抓取 → 生成开场白 → 对话,全链路可回放,花了多少、质量如何一目了然。
| 能力 | 我们怎么用 | 状态 |
|---|---|---|
| Tracing 追踪 | 核心。每次调模型都包一层,输入输出、耗时全录;业务记录里也存了追踪号,能从一条消息直接跳到那次调用的「录像」。 | ✅ 在用 |
| Prompt 管理 | 提示词托管在 Langfuse 上、带版本和「正式 / 测试」标签,运营改话术不必改代码重新发版;万一拉取失败,自动回退到代码里的备用词并告警。 | ✅ 在用 |
| Sessions 会话 | 把同一个客户的多轮对话归到一个会话里,整段一起看,而不是一条条孤立地看。 | ✅ 在用 |
| 采样控成本 | 量大的「意向分析」类调用按 ~10% 抽样记录,重要的「对话 / 反向评论」全量记录——既看得见关键路径,又不超出套餐额度。 | ✅ 在用 |
| Scores 打分 | 给开场白自动打三个质量分(是否合格 / 切不切题 / 有没有钩子),不合格的当场重生成。但目前只覆盖开场白这一处。 | ◐ 用了一部分 |
| 成本 / Token | token 用量会被采集,但实际的成本统计是我们自己另算的(因为模型供应商那边回报的金额是 0,我们用本地价目表回算)。 | ◐ 自建为主 |
Langfuse 的能力远不止上面这些。下面这几项现在没用上,但价值很高,是后续值得补的:
| 能力 | 能带来什么 · 为什么值得补 | 状态 |
|---|---|---|
| 业务结果回写 | 把「客户回了没 / 加没加微信 / 成没成交」这些真实结果回写成分数,挂到对应的 AI 调用上。这样就能反推「哪种开场白真的带来回复」,而不只看 AI 自评的质量分。打分这套管线我们已经有了,只差把业务结果接上去——性价比最高的一项。 | ○ 未来候选 |
| 用户反馈打分 | 让一线运营在看到 AI 草稿时一键「赞 / 踩」,反馈直接进 Langfuse。真人对真实场景的判断,是改进话术最快的信号源。目前完全没接。 | ○ 没用 |
| Datasets 回归评测 | 攒一批「标准考题」,每次改提示词 / 换模型前后各跑一遍,用机器自动比出「这次改动是变好还是变差」,避免凭感觉调。我们在开发期的脚本里跑过,但还没变成上线前的固定动作。把它制度化,能挡住「改了个词结果偷偷变差」这类坑。 | ◐ 仅离线试过 |
| 人工标注队列 | 把一批 AI 输出排进队列,组织人工逐条打标签(好 / 坏 / 哪里不对),沉淀成高质量评测集和改进依据。适合阶段性做一轮质量盘点,目前没用。 | ○ 没用 |
「没用」不是没听说过,而是认真评估后主动不用。Akke 调大模型是直接用官方 SDK、指向 OpenRouter(统一调多家模型的入口),编排则是自家代码写的「状态机流水线」——并没有交给 LangChain / LangGraph。原因有三:
① 编排是「按固定步骤走」:抓评论 → 分析意向 → 生成草稿 → 过审核 → 发送,由代码和定时任务驱动,不需要 AI 自己绕圈做决定。
② 模型调用基本是「问一次答一次」,不是反复调用工具的 agent 循环。
把已经手写好、跑得很稳的流程,改写成 LangGraph 的「图」语法,是纯重构、没有新增能力;还得把现有的 Langfuse 观测、数据库对齐全部重接一遍。投入大、收益负——典型的为了用框架而用框架。
第三个原因更根本:多一层框架,就多一层黑盒和依赖。我们现在「调模型 + 编排」全是自家几百行能完全看懂、能随时改的代码,出问题直接定位;套上一个大框架,等于把这部分交给别人的抽象,排障和定制都变难。对追求「简单、可控、好排障」的小团队,这笔账不划算。
不用记那一堆概念。把这页浓缩成一行,以后听到这三个词,脑子里浮现这句就够: