Files
sxbh.ltd/articles/agent-framework-evolution.html
wecom-fullstack 3b8925d317 feat(sxbh-compliance): 新增隐私政策/服务条款页 + 全站页脚挂链 + 咨询表单同意勾选
白名单只含 158 件:privacy.html、terms.html 新建;156 个页面插入合规页脚链;
index.html 咨询弹窗加同意复选框(默认不勾 + JS 拦截)。
他人未提交 hunk(articles/perspective 等)未纳入本提交。
2026-10-01 18:00:08 +08:00

342 lines
18 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Agent框架演化三部曲:LangChain → LangGraph → DeepAgents 的技术跃迁与选型逻辑</title>
<style>
:root{--bg:#faf9f8;--fg:#1a1a1a;--accent:#2d5a8e;--border:#e0ddd9;--code-bg:#f0efe9;--green:#3a7d44;}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Noto Serif SC","Source Han Serif SC",Georgia,serif;background:var(--bg);color:var(--fg);line-height:1.9;padding:40px 20px}
.container{max-width:760px;margin:0 auto}
h1{font-size:1.8em;font-weight:700;line-height:1.35;margin-bottom:6px}
.subtitle{font-size:0.95em;color:#666;margin-bottom:30px;border-bottom:2px solid var(--accent);padding-bottom:15px}
h2{font-size:1.3em;font-weight:600;margin:30px 0 12px;color:var(--accent);padding-bottom:6px;border-bottom:1px solid var(--border)}
h3{font-size:1.05em;font-weight:600;margin:20px 0 8px;color:#444}
p{margin:0 0 14px;text-align:justify}
pre{background:var(--code-bg);padding:14px 16px;border-radius:6px;overflow-x:auto;font-size:0.82em;line-height:1.5;margin:14px 0;border:1px solid var(--border)}
code{background:var(--code-bg);padding:1px 4px;border-radius:3px;font-size:0.88em}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:0.88em}
th,td{border:1px solid var(--border);padding:7px 10px;text-align:left}
th{background:var(--code-bg);font-weight:600}
blockquote{border-left:3px solid var(--accent);margin:14px 0;padding:8px 16px;background:var(--code-bg);border-radius:0 4px 4px 0;font-size:0.92em}
.tag{display:inline-block;background:var(--accent);color:#fff;font-size:0.7em;padding:2px 10px;border-radius:12px;margin-right:5px}
.green{color:var(--green)}
.fig{margin:16px 0;padding:14px;background:var(--code-bg);border-radius:6px;text-align:center;font-size:0.88em;color:#555;border:1px dashed var(--border)}
.footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--border);font-size:0.82em;color:#888;text-align:center}
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Agent框架演化三部曲",
"description": "AI AgentLangChainLangGraphDeepAgents技术选型",
"articleSection": "BotOS 实践",
"datePublished": "2026-07-23",
"author": {
"@type": "Organization",
"name": "博海视角"
},
"inLanguage": "zh-CN"
}
</script>
<link rel="canonical" href="https://sxbh.ltd/articles/agent-framework-evolution.html">
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<meta name="description" content="Agent框架演化三部曲:LangChain → LangGraph → DeepAgents 的技术跃迁与选型逻辑:Agent框架演化三部曲:LangChain → LangGraph → DeepAgents 的技术跃迁与选型逻辑 陕西博海网络科技有限公司(原定边县博海网络科技,2001-…">
</head>
<body>
<div class="site-id" style="max-width:760px;margin:0 auto 24px;padding:12px 16px;background:#f8f6f3;border:1px solid #e0ddd9;border-radius:8px;font-size:12px;line-height:1.8;color:#666;">
陕西博海网络科技有限公司(原定边县博海网络科技,2001-03-07成立)<br>
统一信用代码 91610825713571436B · 定边二道西街房管所楼下 · 联想金牌服务商<br>
本文属"BotOS 实践"专栏,为博海网络科技产品与案例内容
</div>
<div class="container">
<h1>Agent框架演化三部曲</h1>
<div class="subtitle">LangChain → LangGraph → DeepAgents 的技术跃迁与选型逻辑</div>
<div style="margin:16px 0;padding:8px 14px;background:#f5f5f5;border-left:3px solid #ccc;color:#888;font-size:0.85em;border-radius:0 4px 4px 0;">🤖 本文由 AI 辅助生成,内容经人工审核发布</div>
<p><span class="tag">AI Agent</span><span class="tag">LangChain</span><span class="tag">LangGraph</span><span class="tag">DeepAgents</span><span class="tag">技术选型</span></p>
<h2>一、为什么Agent框架需要演化</h2>
<p>大语言模型本质上是文本补全机器——给定输入,预测下一个token。但真正有用的AI助手需要的远不止"说话":它需要思考、记忆、调用工具、管理状态,在多轮交互中完成复杂任务。这就是Agent框架要解决的问题:在LLM之上构建一个完整的认知循环。</p>
<p>从2023到2026年,这一认知循环的实现方式经历了三次范式跃迁:</p>
<div class="fig">
<strong>Agent框架演化时间线</strong><br>
2023 ── LangChain ── "万物皆链",10分钟跑通Demo<br>
2024 ── LangGraph ── "有向图",Agent可以可靠运行<br>
2025 ── DeepAgents ── "自治编排",Agent管理Agent
</div>
<p>这不是"谁取代谁"的替代关系,而是层叠演进——DeepAgents构建在LangGraph之上,LangGraph构建在LangChain之上。理解这三层的设计哲学、能力边界和适用场景,是2026年做Agent技术选型的必修课。</p>
<h2>二、第一代:LangChain——万物皆链</h2>
<h3>2.1 设计哲学</h3>
<p>LangChain的核心理念可以概括为四个字:万物皆链。它将LLM应用的构建流程抽象为一条标准化流水线:</p>
<pre>
PromptTemplate → LLM → OutputParser
↓ ↓ ↓
Chain[0] Chain[1] Chain[2]
</pre>
<p>核心抽象包括:Chain(多步串联执行)、AgentExecutor(循环调用LLM+工具直到完成)、Tool(外部能力接口)、Memory(多轮上下文)、Retriever(外部数据检索)。</p>
<h3>2.2 典型实现</h3>
<pre>
from langchain.agents import create_agent
def get_weather(city: str) -> str:
"""查询指定城市的天气"""
weather_data = {"北京": "晴朗 25°C", "上海": "多云 28°C"}
return weather_data.get(city, f"{city} 晴")
agent = create_agent(
model="anthropic:claude-sonnet-4-6",
tools=[get_weather],
system_prompt="你是天气助手",
)
result = agent.invoke({"messages": [{"role": "user", "content": "北京天气?"}]})
</pre>
<p>底层执行流程:用户提问→模型推理(判断需调工具)→工具执行→生成回答。10行代码跑通一个Agent Demo——LangChain降低了Agent开发的门槛。</p>
<h3>2.3 设计贡献</h3>
<p>LangChain对Agent生态的最大贡献不是某个具体功能,而是三件事:标准化了LLM应用的构建模式(Prompt→LLM→Parse→Tool→Repeat);统一了工具接口(任意Python函数通过@tool装饰器变成Tool);普及了ReAct模式("思考-行动-观察"循环成为行业共识)。</p>
<h3>2.4 局限性</h3>
<table>
<tr><th>局限</th><th>具体表现</th><th>实际影响</th></tr>
<tr><td>隐式状态</td><td>AgentExecutor内部维护scratchpad,开发者看不到也控不了</td><td>调试困难,无法回溯</td></tr>
<tr><td>线性执行</td><td>Chain只能顺序执行,不支持条件分支和循环</td><td>复杂工作流无法表达</td></tr>
<tr><td>无持久化</td><td>状态存在内存中,进程崩了就丢了</td><td>生产环境不可接受</td></tr>
<tr><td>无人介入</td><td>没有Human-in-the-Loop机制</td><td>敏感操作无法审批</td></tr>
</table>
<p>这些局限决定了LangChain的范式天花板:它是原型验证阶段的利器,但当Agent进入生产环境时,需要新的架构。</p>
<h2>三、第二代:LangGraph——显式状态 + 有向图</h2>
<h3>3.1 核心洞察</h3>
<p>LangGraph的诞生源于一个根本性的洞察:Agent的执行流程不是链,而是图。一个真正的生产级Agent在工作时,可能需要根据条件走不同路径(条件分支),工具调用失败时回退重试(循环),在关键节点等待人工审批(中断/恢复),崩溃后从上次断点继续(持久化)。这些问题用链式结构都无法优雅表达。</p>
<h3>3.2 设计哲学:状态是一等公民</h3>
<p>LangGraph将状态提升为一等公民。其核心组件包括:State(TypedDict)—显式类型安全的状态对象;Node(函数)—图中的处理节点;Edge(条件/无条件)—节点间连接;Checkpointer—状态持久化(Postgres/Redis/SQLite);Interrupt—人工介入断点。</p>
<div class="fig">
<strong>LangChain vs LangGraph 核心设计差异</strong><br>
<table>
<tr><th>维度</th><th>LangChain</th><th>LangGraph</th></tr>
<tr><td>状态</td><td>隐藏在AgentExecutor内部</td><td>显式TypedDict,每个节点都能读写</td></tr>
<tr><td>执行路径</td><td>固定线性链</td><td>条件分支、循环、并行</td></tr>
<tr><td>持久化</td><td>内存临时状态</td><td>Checkpointer持久化到DB</td></tr>
<tr><td>生命周期</td><td>跑完就跑完</td><td>中断、恢复、时间旅行</td></tr>
</table>
</div>
<h3>3.3 典型实现</h3>
<pre>
from langgraph.graph import StateGraph, MessagesState, START, END
def mock_llm(state: MessagesState):
return {"messages": [{"role": "ai", "content": "Hello from LangGraph!"}]}
graph = StateGraph(MessagesState)
graph.add_node("mock_llm", mock_llm)
graph.add_edge(START, "mock_llm")
graph.add_edge("mock_llm", END)
graph = graph.compile()
result = graph.invoke({"messages": [{"role": "user", "content": "hi!"}]})
</pre>
<p>这段代码看似比LangChain还长,但它的核心优势不在"写起来短",而在"执行起来可靠"。Checkpointer让状态持久化,Interrupt让人能在关键节点介入,Subgraph让复杂工作流可以模块化拆分。</p>
<h3>3.4 生产验证</h3>
<p>截至2026年,LangGraph已被LinkedIn(人才推荐Agent)、Uber(客服自动化)、Klarna(合规审批流程)、J.P.Morgan(金融服务Agent)等多家大厂在生产环境验证。v1.0已于2025年10月发布LTS版本。</p>
<h2>四、第三代:DeepAgents——自治Agent编排</h2>
<h3>4.1 核心思路</h3>
<p>LangGraph解决了"如何精确控制Agent"的问题,但引入了新的挑战:开发者需要手动设计图的每个节点和边。DeepAgents的核心思路是:把图的构建也交给AI。</p>
<div class="fig">
<strong>三个范式对开发者介入的要求</strong><br>
LangChain: 开发者写链 → LLM在链中执行<br>
LangGraph: 开发者画图 → LLM在图中执行<br>
DeepAgents: 开发者定义目标 → LLM自己画图、自己执行
</div>
<h3>4.2 关键能力:子Agent委派</h3>
<p>DeepAgents解决的核心问题是上下文膨胀。当一个Agent执行复杂任务时,上下文窗口会被工具调用结果、中间推理、历史消息逐渐填满。一旦接近模型上下文窗口限制(如200K tokens),LLM的推理质量急剧下降。</p>
<p>子Agent的解决方案:主Agent保持精简上下文,子任务分派给隔离的子Agent独立执行,完成后只返回摘要给主Agent。每个子Agent拥有独立的上下文窗口,这样主Agent的上下文始终保持精简。</p>
<h3>4.3 典型实现</h3>
<pre>
from deepagents import create_deep_agent
def get_weather(city: str) -> str:
return f"{city} 今日晴朗,25°C"
def search_web(query: str) -> str:
return f"关于'{query}'的搜索结果..."
agent = create_deep_agent(
model="anthropic:claude-sonnet-4-6",
tools=[get_weather, search_web],
system_prompt="你能自主规划任务并使用工具。",
)
result = agent.invoke({
"messages": [{"role": "user",
"content": "查北京天气,然后搜周末户外活动"}]
})
</pre>
<p>与LangGraph的关系:create_deep_agent()返回的就是一个编译好的LangGraph图,因此可以无缝使用LangGraph的所有底层能力(流式输出、Checkpointer持久化、中断/恢复等)。</p>
<h3>4.4 代价:Token开销</h3>
<p>DeepAgents的自动规划、子Agent通信、上下文摘要都需要额外的LLM调用。有分析指出,相比手动编排,DeepAgents的token消耗可能高达20倍。这是"便利性vs成本"的经典trade-off。</p>
<table>
<tr><th>维度</th><th>LangGraph(手动)</th><th>DeepAgents(自动)</th></tr>
<tr><td>开发成本</td><td>高(需手动设计图)</td><td>低(定义目标即可)</td></tr>
<tr><td>Token成本</td><td>低(精确控制)</td><td>高(约20x)</td></tr>
<tr><td>控制粒度</td><td>极高</td><td>中等</td></tr>
<tr><td>适用场景</td><td>确定性工作流</td><td>探索性/自治任务</td></tr>
</table>
<h2>五、三层架构全景对比</h2>
<h3>5.1 定位关系</h3>
<div class="fig">
<pre>
DeepAgents (Harness层)
预置工具、自动规划、子Agent、文件系统
┌─────────────────────────────────────┐
│ LangGraph (Runtime层) │
│ 持久化、流式、人机协同、状态管理 │
│ ┌─────────────────────────────────┐ │
│ │ LangChain Core (Framework层) │ │
│ │ 模型集成、工具抽象、Prompt管理 │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────┘
</pre>
</div>
<h3>5.2 能力对照</h3>
<table>
<tr><th>能力</th><th>LangChain</th><th>LangGraph</th><th>DeepAgents</th></tr>
<tr><td>定位</td><td>开发框架</td><td>运行时</td><td>驾驭框架</td></tr>
<tr><td>核心范式</td><td>链</td><td>有向图</td><td>自治编排</td></tr>
<tr><td>状态管理</td><td>隐式</td><td>显式TypedDict</td><td>自动虚拟文件系统</td></tr>
<tr><td>持久化</td><td>无</td><td>Checkpointer</td><td>继承LangGraph</td></tr>
<tr><td>人机协同</td><td>无</td><td>interrupt</td><td>继承+interrupt_on</td></tr>
<tr><td>子Agent</td><td>无</td><td>手动子图</td><td>自动委派</td></tr>
<tr><td>自动规划</td><td>无</td><td>无</td><td>write_todos</td></tr>
<tr><td>Token效率</td><td>高</td><td>高</td><td>低(约20x)</td></tr>
<tr><td>学习曲线</td><td>低</td><td>中</td><td>低</td></tr>
<tr><td>适合阶段</td><td>原型验证</td><td>生产部署</td><td>自治Agent</td></tr>
</table>
<h2>六、选型逻辑</h2>
<h3>6.1 快速决策树</h3>
<pre>
是否需要Agent自主规划和分解任务?
├── 是 → DeepAgents
│ └── 对Token成本敏感?→ LangGraph手动编排
└── 否 → 需要人工审批/持久化/断点续传?
├── 是 → LangGraph
└── 否 → 只是"模型+工具"简单循环?
├── 是 → LangChain
└── 否 → LangGraph
</pre>
<h3>6.2 推荐演进路径</h3>
<p>实际项目中,三者不是非此即彼的选择。推荐的演化路径是:先用LangChain快速验证想法,理解Agent的基本工作模式;当Agent需要进入生产环境时,下沉到LangGraph获取可靠性和精细控制;当任务足够复杂时,升级到DeepAgents使用预置的自治能力。</p>
<p>最常见的是分层使用:应用层用DeepAgents(高层编排),编排层用LangGraph(关键工作流),基础层用LangChain Core(模型集成和工具抽象)。</p>
<h2>七、对照:另一种路线的启示</h2>
<p>本文讨论的是LangChain系的技术路线。在主流路线之外,还有另一条值得关注的Agent架构路线——以Hermes Agent(Nous Research)为代表的"指挥位"路线。Hermes Agent不依赖LangChain/LangGraph的技术栈,而是通过自进化技能、MoA混合模型、MCP双端协议和8+Profile的多Agent调度来实现类似DeepAgents的子Agent委派能力。</p>
<p>两条路线的核心差异在于:LangChain系追求"框架标准化"——用一套统一的抽象覆盖尽可能多的场景;Hermes系追求"架构轻量化"——用自进化机制让系统在使用中自己变强。前者适合需要标准化交付的工程团队,后者适合需要高度定制的独立开发者和小团队。</p>
<p>选哪条路,取决于你的场景是在"重复造轮子"还是"不需要那个轮子"。</p>
<h2>八、总结</h2>
<p>Agent框架的演化路径折射出AI工程化从野蛮生长走向成熟的过程。三年三次范式跃迁,环环相扣:2023年LangChain解决了"人人都能造Agent"的入门问题;2024-25年LangGraph解决了"Agent可以可靠运行"的生产问题;2025-26年DeepAgents正在解决"Agent可以管理Agent"的规模化问题。</p>
<p>几个关键认知:三者不是竞争关系,是层叠协作关系;AgentExecutor已死,LangGraph当立;DeepAgents的20x Token代价真实存在;没有银弹,只有合适。</p>
<p>未来的趋势是:Agent基础设施的标准化(持久化、审批、可观测性成为标配),多Agent协作从手动编排走向自动编排,成本优化通过更智能的上下文管理和模型路由来改善。也许不久的将来,Agent会自己决定用什么工具、走什么流程、调用哪个子Agent——而框架本身,就像操作系统一样变得透明。</p>
<div class="footer">
一切皆如 · 2026年7月<br>
陕西博海网络科技
</div>
</div>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://sxbh.ltd/#organization",
"name": "陕西博海网络科技有限公司",
"url": "https://sxbh.ltd",
"taxID": "91610825713571436B",
"legalName": "陕西博海网络科技有限公司",
"foundingDate": "2001-03-07",
"address": {
"@type": "PostalAddress",
"streetAddress": "定边二道西街房管所楼下",
"addressLocality": "定边县",
"addressRegion": "榆林市",
"addressCountry": "CN"
},
"brand": {
"@type": "Brand",
"name": "联想金牌服务商"
},
"areaServed": ["定边县", "榆林市"]
}
</script>
<!-- sxbh-legal-links -->
<footer style="background:#f4f6f8;border-top:1px solid #e2e8f0;color:#475569;text-align:center;padding:22px 16px;font-size:13px;line-height:2;">
<a href="/privacy.html" style="color:#0e7490;text-decoration:underline;">隐私政策</a>
<span style="margin:0 10px;color:#94a3b8;">|</span>
<a href="/terms.html" style="color:#0e7490;text-decoration:underline;">服务条款</a>
<div style="font-size:12px;color:#64748b;margin-top:8px;">© 2026 陕西博海网络科技有限公司</div>
</footer>
</body>
</html>