Agent · AI 工程

LangChain · LangGraph · Langfuse

三个名字都带 lang,最容易搞混。一句话先记住:LangChain 帮你「搭」AI 应用,LangGraph 帮你「编排」复杂流程,Langfuse 帮你「看清」AI 在干嘛、花了多少钱、好不好。前两个是一家人(干活的),第三个是另一回事(监工记账的)。本文讲清三者区别,再落到我们的 Akke 项目——到底用了哪个、没用哪个、为什么,以及 Langfuse 里还有哪些很有用、但我们还没用上的能力。

篇幅 7 章 · 约 11 分钟 受众 全员 · 不需要写代码也能看懂 主线 破误区 · 三者是什么 · 一表对比 · 我们用了什么 · 没用什么 · 一句话记忆

先把三个名字一字排开,破掉最常见的误会:很多人以为这是「三选一」,其实它们分属两个不同的层——前两个负责「让 AI 干活」,第三个负责「盯着 AI 干活」。

LangChain
应用开发库 · 搭

一套调模型、读文档、记历史、接工具的现成积木,把它们拼成「链」,快速搭出一个 AI 应用。

家族成员 · 干活层
LangGraph
流程编排库 · 编排

LangChain 同一家出的,专管复杂流程:用「流程图」描述 AI 的多步工作,能分支、能回头、能循环。

家族成员 · 干活层
Langfuse
可观测平台 · 看清

跟前两个不是一类。它不帮你干活,帮你看清:每次模型调用花了多少、说了啥、慢不慢、对不对。

外来户 · 监工层
一句话破误区 · LangChain / LangGraph 是「写应用、编流程」的工具;Langfuse 是「监工 + 记账 + 质检」的工具。它们不冲突——你完全可以一边用 LangChain 写应用,一边用 Langfuse 盯着它。下面任何细节,都挂在「干活层 vs 监工层」这条线上。
01

SECTION ONE · LANGCHAIN

LangChain:搭 AI 应用的「标准积木盒」
🧱
类比:一盒乐高标准积木。要做一个「会查资料、记得上文、能调工具」的 AI 应用,本来每块都得自己造;LangChain 把这些常用块做成现成件,你照着拼起来——所以叫 Chain(链):把「取数据 → 喂给模型 → 处理输出」串成一条链。

2022 年底 随着 ChatGPT 的热潮爆火,是最早一批「让普通开发者也能快速搭大模型应用」的工具。它解决的核心痛点是:调一次模型容易,但要把模型和外部世界(文档、数据库、搜索、工具)接起来、还要记住对话,每个人都重复造轮子。LangChain 把这些封装成标准模块:

🔌
模型接入
一套写法接各家大模型,换模型不用改一堆代码。
📄
文档加载 / 切分
把 PDF、网页、表格读进来,切成模型能吃的小块。
🧠
记忆 Memory
帮应用记住前几轮聊了什么,多轮对话不失忆。
🔍
检索 / RAG
先去知识库找相关资料,再让模型基于资料回答。
🛠️
工具 / Agent
让模型能「调用工具」——查天气、算数、搜数据库。
⛓️
链 Chain
把上面这些串成一条流水线,一步接一步跑。
记住它的定位 · LangChain = 「快速搭一个 LLM 应用的全家桶」。优点是上手快、模块全;代价是封装多、概念多,简单需求用它反而「绕」——这也是它后来被一些人吐槽「太重」的原因。
02

SECTION TWO · LANGGRAPH

LangGraph:给复杂流程画「地铁线路图」
🗺️
类比:一张地铁线路图。简单任务是一条直线(A → B → C);但「让 AI 自己想、自己决定下一步」的复杂任务会分叉、绕圈、走回头路。LangGraph 让你把流程画成「图」——一个个站点(节点)、之间的线路(边),再加一个所有站点共享的状态(记事板),让 AI 照着图有序地走。

LangGraph 是 LangChain 团队 2024 年 推出的「下一代」编排工具。背景是:当大家开始做 Agent(能自己规划、循环、调用工具的 AI) 时,发现 LangChain 那种「一条直链」不够用了——真正的 agent 要能「试一下不行就回头再试」「根据结果决定走哪条路」。这种会绕圈、有分支的流程,用「图」来描述最自然

⏺️
节点 Node
流程里的一个步骤,比如「调一次模型」「查一次数据库」。
↪️
边 Edge
步骤之间怎么走,可以根据结果有条件地分叉。
📝
状态 State
一块全程共享的记事板,每步都能读写,串起整个流程。
🔁
循环 Loop
支持「不满意就回头重来」——直链做不到的关键能力。
⏸️
人工介入
可以中途暂停、等人确认,再继续往下走。
💾
持久化
流程跑一半断了能续上,适合长任务。
记住它的定位 · LangGraph = 「用流程图编排复杂、会绕圈的 AI 工作流」。它和 LangChain 是一家人:LangChain 给你积木块,LangGraph 给你「把块组织成复杂流程」的图框架。需求越像「AI 自己绕圈做决定」,它越有价值;需求越像「按固定步骤走一遍」,它越是杀鸡用牛刀。
03

SECTION THREE · LANGFUSE

Langfuse:AI 应用的「行车记录仪 + 账单 + 质检」
🎥
类比:装在 AI 应用上的行车记录仪 + 账单 + 质检台。它不开车(不帮你干活),但把每一趟行程录下来:走了哪条路、烧了多少油(花了多少钱)、开得稳不稳(快不快、有没有出错)、到没到目的地(输出对不对)。出了问题,回放这段录像就知道哪儿错了。

这就是 「LLM 可观测性(Observability)」——和前两个完全不同的维度。前两个帮你把 AI 应用造出来;Langfuse 帮你在应用上线之后,看清它到底在干嘛。因为大模型有个要命的特点:它是个黑盒,同样的输入可能给不同输出,还按字数烧钱。没有观测,你就是「闭着眼开车」——不知道哪条对话翻车了、不知道这个月为什么账单暴涨、不知道改了提示词到底变好还是变差。Langfuse 把这些变得「看得见」:

🔬
Tracing 追踪
把每次模型调用的输入、输出、耗时完整录下来,可回放。
💰
成本 / Token
每次调用花了多少钱、用了多少 token,一笔笔记账。
📋
Prompt 管理
把提示词托管在平台上、带版本,改词不用改代码重新上线。
Scores 打分
给输出质量打分(机器判 / 人判 / 用户反馈),盯住好坏。
🧪
Datasets 评测
攒一批测试样本,改动前后各跑一遍,比出「变好还是变差」。
💬
Sessions 会话
把同一段多轮对话的多次调用归到一起,整段一起看。
记住它的定位 · Langfuse = 「上线后看清 AI:花了多少、说了啥、好不好」。它是开源、可自托管的(也有云端版)。注意:它和你用什么搭应用无关——用 LangChain 搭也好、用自家代码搭也好,都能接上它来观测。
04

SECTION FOUR · ONE TABLE

一张表,彻底看懂三者区别

把三者并排放,区别一目了然。最关键的一栏是「属于哪层」——前两个是干活层、可以二选一甚至一起用;Langfuse 是监工层,和前两个不冲突、可以叠加。

维度LangChainLangGraphLangfuse
属于哪层干活层(搭)干活层(编排)监工层(看清)
一句话搭 AI 应用的积木盒编排复杂流程的流程图观测 AI 的记录仪+账单
解决什么不想重复造调模型、读文档、记忆、工具的轮子让 AI 多步、分支、循环地有序工作上线后看不见花了多少、好不好、哪翻车
用它的时机快速搭原型、需要现成模块多做会自己绕圈决策的 Agent任何认真上线、要控成本和质量的 AI 应用
和另两个关系LangGraph 的「积木来源」LangChain 的「升级版编排」独立一层,和前两个可叠加
Akke 用不用○ 没用○ 没用✅ 在用
最该记住的一点 · 「用不用 LangChain / LangGraph」和「用不用 Langfuse」是两个独立的问题。Akke 的答案就是一个典型组合:干活层不用它俩(用自家代码),监工层用 Langfuse。下面两章分别讲为什么。
05

SECTION FIVE · WHY WE USE LANGFUSE

Akke 用了 Langfuse —— 用到了哪些、还没用上哪些

先说为什么需要。Akke 是抖音获客平台:从评论里发现高意向客户,再让 AI 自动写开场白、养客对话直到成交。这意味着每天有大量 AI 调用在自动跑、还在直接花钱、还直接面对真实客户。这种场景没有观测就是「裸奔」——所以我们接了 Langfuse:每条 AI 生成的消息都串上一个「追踪号」,从客户评论 → 抓取 → 生成开场白 → 对话,全链路可回放,花了多少、质量如何一目了然。

Langfuse — 我们用到了什么

能力我们怎么用状态
Tracing 追踪核心。每次调模型都包一层,输入输出、耗时全录;业务记录里也存了追踪号,能从一条消息直接跳到那次调用的「录像」。✅ 在用
Prompt 管理提示词托管在 Langfuse 上、带版本和「正式 / 测试」标签,运营改话术不必改代码重新发版;万一拉取失败,自动回退到代码里的备用词并告警。✅ 在用
Sessions 会话把同一个客户的多轮对话归到一个会话里,整段一起看,而不是一条条孤立地看。✅ 在用
采样控成本量大的「意向分析」类调用按 ~10% 抽样记录,重要的「对话 / 反向评论」全量记录——既看得见关键路径,又不超出套餐额度。✅ 在用
Scores 打分给开场白自动打三个质量分(是否合格 / 切不切题 / 有没有钩子),不合格的当场重生成。但目前只覆盖开场白这一处。◐ 用了一部分
成本 / Tokentoken 用量会被采集,但实际的成本统计是我们自己另算的(因为模型供应商那边回报的金额是 0,我们用本地价目表回算)。◐ 自建为主

Langfuse 里还没用上、但很有用的

Langfuse 的能力远不止上面这些。下面这几项现在没用上,但价值很高,是后续值得补的

能力能带来什么 · 为什么值得补状态
业务结果回写把「客户回了没 / 加没加微信 / 成没成交」这些真实结果回写成分数,挂到对应的 AI 调用上。这样就能反推「哪种开场白真的带来回复」,而不只看 AI 自评的质量分。打分这套管线我们已经有了,只差把业务结果接上去——性价比最高的一项○ 未来候选
用户反馈打分让一线运营在看到 AI 草稿时一键「赞 / 踩」,反馈直接进 Langfuse。真人对真实场景的判断,是改进话术最快的信号源。目前完全没接。○ 没用
Datasets 回归评测攒一批「标准考题」,每次改提示词 / 换模型前后各跑一遍,用机器自动比出「这次改动是变好还是变差」,避免凭感觉调。我们在开发期的脚本里跑过,但还没变成上线前的固定动作。把它制度化,能挡住「改了个词结果偷偷变差」这类坑。◐ 仅离线试过
人工标注队列把一批 AI 输出排进队列,组织人工逐条打标签(好 / 坏 / 哪里不对),沉淀成高质量评测集和改进依据。适合阶段性做一轮质量盘点,目前没用。○ 没用
小结 · 我们把 Langfuse 当成「AI 的行车记录仪 + 提示词后台」,追踪、改词、分会话、控成本这几样吃得最透。下一步最划算的补强,是把「业务结果」和「上线前回归评测」接进来——让我们不只看 AI「自我感觉良不良好」,而是看它「有没有真的带来客户回复」。
06

SECTION SIX · WHY WE SKIP THE OTHER TWO

Akke 没用 LangChain / LangGraph —— 为什么,以及何时才该上

「没用」不是没听说过,而是认真评估后主动不用。Akke 调大模型是直接用官方 SDK、指向 OpenRouter(统一调多家模型的入口),编排则是自家代码写的「状态机流水线」——并没有交给 LangChain / LangGraph。原因有三:

✅ 我们的实际情况

① 编排是「按固定步骤走」:抓评论 → 分析意向 → 生成草稿 → 过审核 → 发送,由代码和定时任务驱动,不需要 AI 自己绕圈做决定
② 模型调用基本是「问一次答一次」,不是反复调用工具的 agent 循环

所以

⚠️ 引入它俩反而亏

把已经手写好、跑得很稳的流程,改写成 LangGraph 的「图」语法,是纯重构、没有新增能力;还得把现有的 Langfuse 观测、数据库对齐全部重接一遍。投入大、收益负——典型的为了用框架而用框架。

第三个原因更根本:多一层框架,就多一层黑盒和依赖。我们现在「调模型 + 编排」全是自家几百行能完全看懂、能随时改的代码,出问题直接定位;套上一个大框架,等于把这部分交给别人的抽象,排障和定制都变难。对追求「简单、可控、好排障」的小团队,这笔账不划算。

那什么时候才真的该上 LangGraph?

判断线 · 当出现下面这些信号,再考虑引入「图编排」也不迟:
① AI 需要自己规划多步、并根据中间结果决定下一步(真正的 agent,而非固定流水线);
② 流程里有大量分支、循环、回退,用代码的 if/else 已经写到自己都绕晕;
③ 需要跑一半暂停、等人工确认再继续,且这种长流程很多。
—— 在那之前,「自家代码状态机 + Langfuse 观测」是更轻、更稳的组合
一个值得记的取舍 · 选不选一个框架,标准不是「它火不火、强不强」,而是「它解决的问题,是不是我现在真有的问题」。LangGraph 很强,但 Akke 没有「AI 要自己绕圈决策」这个问题——所以对我们,不用,才是对的工程判断
07

SECTION SEVEN · TAKEAWAY

一句话装进脑子

不用记那一堆概念。把这页浓缩成一行,以后听到这三个词,脑子里浮现这句就够:

前两个帮 AI 干活,第三个帮你看清 AI
Akke 干活用自家代码,看清用 Langfuse。
速记 · LangChain = 搭 AI 应用的积木盒; LangGraph = 编排复杂流程的流程图(同一家,升级版); Langfuse = 看清 AI 的记录仪 + 账单 + 提示词后台(另一层,可叠加)。
Akke 的组合 · 干活层不用 LangChain / LangGraph(自家状态机流水线更轻更可控);监工层 Langfuse(追踪 + 改词 + 分会话 + 控成本)。下一步最划算的补强:把业务结果回写上线前回归评测接进来。
延伸阅读 · 想理解我们为什么偏爱「自家代码 + 绕数据库」而不是套大框架,看 自动回复为什么要「绕」数据库 →Vercel × Supabase →