@@ -50,27 +50,27 @@ <h1 class="title">读:LLM Agent 入门——经典 Agent 分类与 LangChain/L
5050< h2 > 目录</ h2 >
5151< div id ="text-table-of-contents " role ="doc-toc ">
5252< ul >
53- < li > < a href ="#org880820a "> 导读</ a > </ li >
54- < li > < a href ="#org282ff72 "> 什么是 Agent?</ a > </ li >
55- < li > < a href ="#org3125105 "> Agent 的五种类型</ a > </ li >
56- < li > < a href ="#org0358c18 "> LLM Agent 的四组件</ a > </ li >
57- < li > < a href ="#org19b3373 "> LangChain vs LangGraph,什么时候用哪个</ a > </ li >
58- < li > < a href ="#orgff53604 "> 实践,Chef Agent 三阶段</ a >
53+ < li > < a href ="#org7253815 "> 导读</ a > </ li >
54+ < li > < a href ="#org1d11771 "> 什么是 Agent?</ a > </ li >
55+ < li > < a href ="#orgd067c3d "> Agent 的五种类型</ a > </ li >
56+ < li > < a href ="#orgefa6c9d "> LLM Agent 的四组件</ a > </ li >
57+ < li > < a href ="#org10b3c71 "> LangChain vs LangGraph,什么时候用哪个</ a > </ li >
58+ < li > < a href ="#orgd16d685 "> 实践,Chef Agent 三阶段</ a >
5959< ul >
60- < li > < a href ="#orgefa35a6 "> 环境准备</ a > </ li >
61- < li > < a href ="#org1e83906 "> Stage 1: Simple Reflex Agent(LangChain)</ a > </ li >
62- < li > < a href ="#org433bbd1 "> Stage 2: Model-Based Reflex Agent(LangGraph)</ a > </ li >
63- < li > < a href ="#org63b4fde "> Stage 3: Goal & Utility Based Agent(LangGraph)</ a > </ li >
60+ < li > < a href ="#orgdca1671 "> 环境准备</ a > </ li >
61+ < li > < a href ="#org2cc4c71 "> Stage 1: Simple Reflex Agent(LangChain)</ a > </ li >
62+ < li > < a href ="#org079d8e7 "> Stage 2: Model-Based Reflex Agent(LangGraph)</ a > </ li >
63+ < li > < a href ="#orgdd216a9 "> Stage 3: Goal & Utility Based Agent(LangGraph)</ a > </ li >
6464</ ul >
6565</ li >
66- < li > < a href ="#orgf44aaf4 "> 总结</ a > </ li >
66+ < li > < a href ="#org0dbebf8 "> 总结</ a > </ li >
6767</ ul >
6868</ div >
6969</ div >
7070
71- < div id ="outline-container-org880820a " class ="outline-2 ">
72- < h2 id ="org880820a "> 导读</ h2 >
73- < div class ="outline-text-2 " id ="text-org880820a ">
71+ < div id ="outline-container-org7253815 " class ="outline-2 ">
72+ < h2 id ="org7253815 "> 导读</ h2 >
73+ < div class ="outline-text-2 " id ="text-org7253815 ">
7474< p >
7575说真的,一篇引路的文章比一百篇学完就忘的文章有价值多了。DZone 上 Harshita Asnani 和 Takshil Mehta 的这篇 < a href ="https://dzone.com/articles/llm-agents-and-getting-started-with-them "> LLM Agents and Getting Started with Them</ a > 就是这种引路文章。它没有搞高深的理论推演,就是从 / 人工智能/ 教科书里的经典 Agent 定义出发,一路搭到 LangChain 和 LangGraph 的具体实现。读完之后你大概能回答三个问题。Agent 到底指什么,LLM Agent 的复杂度怎么分档,从简单到复杂的实现用什么工具。
7676</ p >
@@ -85,9 +85,9 @@ <h2 id="org880820a">导读</h2>
8585</ div >
8686</ div >
8787
88- < div id ="outline-container-org282ff72 " class ="outline-2 ">
89- < h2 id ="org282ff72 "> 什么是 Agent?</ h2 >
90- < div class ="outline-text-2 " id ="text-org282ff72 ">
88+ < div id ="outline-container-org1d11771 " class ="outline-2 ">
89+ < h2 id ="org1d11771 "> 什么是 Agent?</ h2 >
90+ < div class ="outline-text-2 " id ="text-org1d11771 ">
9191< p >
9292如果你在搜索引擎里搜「AI Agent」,能看到一大堆互相矛盾的说法。有人管任何带工具调用的聊天机器人叫 Agent,有人觉得能自主决策才算。原文为了避免概念混乱,直接拎出了这个领域最被公认的定义,来自 Stuart Russell 和 Peter Norvig 的教科书 < i > 人工智能:一种现代方法</ i > 。
9393</ p >
@@ -114,9 +114,9 @@ <h2 id="org282ff72">什么是 Agent?</h2>
114114</ div >
115115</ div >
116116
117- < div id ="outline-container-org3125105 " class ="outline-2 ">
118- < h2 id ="org3125105 "> Agent 的五种类型</ h2 >
119- < div class ="outline-text-2 " id ="text-org3125105 ">
117+ < div id ="outline-container-orgd067c3d " class ="outline-2 ">
118+ < h2 id ="orgd067c3d "> Agent 的五种类型</ h2 >
119+ < div class ="outline-text-2 " id ="text-orgd067c3d ">
120120< p >
121121Russell & Norvig 的《人工智能:一种现代方法》(Artificial Intelligence: A Modern Approach)把 Agent 按智能水平分为五类。下面这张表帮你快速看清楚。
122122</ p >
@@ -205,9 +205,9 @@ <h2 id="org3125105">Agent 的五种类型</h2>
205205</ div >
206206</ div >
207207
208- < div id ="outline-container-org0358c18 " class ="outline-2 ">
209- < h2 id ="org0358c18 "> LLM Agent 的四组件</ h2 >
210- < div class ="outline-text-2 " id ="text-org0358c18 ">
208+ < div id ="outline-container-orgefa6c9d " class ="outline-2 ">
209+ < h2 id ="orgefa6c9d "> LLM Agent 的四组件</ h2 >
210+ < div class ="outline-text-2 " id ="text-orgefa6c9d ">
211211< p >
212212一个 LLM Agent 通常有四个组件:
213213</ p >
@@ -232,7 +232,7 @@ <h2 id="org0358c18">LLM Agent 的四组件</h2>
232232> < b > 小贴士</ b > ,还有很多初学者以为 LLM「调用」工具是 LLM 亲自去执行代码。其实不是,LLM 只负责输出一个结构化的工具调用请求,框架层截获这个请求,执行对应的函数,把结果送回给 LLM。整个过程 LLM 只管「说」,不管「做」。你看 LLM 实际返回的数据结构就清楚了。
233233</ p >
234234
235- < pre class ="example " id ="org72326f0 ">
235+ < pre class ="example " id ="orgcee535b ">
236236{
237237 "tool_calls": [
238238 {
@@ -258,9 +258,9 @@ <h2 id="org0358c18">LLM Agent 的四组件</h2>
258258</ div >
259259</ div >
260260
261- < div id ="outline-container-org19b3373 " class ="outline-2 ">
262- < h2 id ="org19b3373 "> LangChain vs LangGraph,什么时候用哪个</ h2 >
263- < div class ="outline-text-2 " id ="text-org19b3373 ">
261+ < div id ="outline-container-org10b3c71 " class ="outline-2 ">
262+ < h2 id ="org10b3c71 "> LangChain vs LangGraph,什么时候用哪个</ h2 >
263+ < div class ="outline-text-2 " id ="text-org10b3c71 ">
264264< p >
265265LangChain 和 LangGraph 都是同一个团队(LangChain 公司)开发的 LLM 应用框架,定位不同。LangChain 是最早发布的,主打「链」(Chain)的概念,把提示词、模型调用、输出解析串成一条线性流水线,一个输入进去,经过一串步骤,出来一个输出。LangGraph 是后来出的,主打「图」(Graph)的概念,用节点(Node)和边(Edge)定义执行流程,支持循环、条件分支、回溯。简单说,LangChain 是单向管道,LangGraph 是带环路的流程图。
266266</ p >
@@ -280,17 +280,17 @@ <h2 id="org19b3373">LangChain vs LangGraph,什么时候用哪个</h2>
280280</ div >
281281</ div >
282282
283- < div id ="outline-container-orgff53604 " class ="outline-2 ">
284- < h2 id ="orgff53604 "> 实践,Chef Agent 三阶段</ h2 >
285- < div class ="outline-text-2 " id ="text-orgff53604 ">
283+ < div id ="outline-container-orgd16d685 " class ="outline-2 ">
284+ < h2 id ="orgd16d685 "> 实践,Chef Agent 三阶段</ h2 >
285+ < div class ="outline-text-2 " id ="text-orgd16d685 ">
286286< p >
287287原文用一个统一的例子,「Chef Agent」,贯穿三阶段,逐步增加复杂性。
288288</ p >
289289</ div >
290290
291- < div id ="outline-container-orgefa35a6 " class ="outline-3 ">
292- < h3 id ="orgefa35a6 "> 环境准备</ h3 >
293- < div class ="outline-text-3 " id ="text-orgefa35a6 ">
291+ < div id ="outline-container-orgdca1671 " class ="outline-3 ">
292+ < h3 id ="orgdca1671 "> 环境准备</ h3 >
293+ < div class ="outline-text-3 " id ="text-orgdca1671 ">
294294< p >
295295先装依赖。
296296</ p >
@@ -336,9 +336,9 @@ <h3 id="orgefa35a6">环境准备</h3>
336336</ div >
337337</ div >
338338
339- < div id ="outline-container-org1e83906 " class ="outline-3 ">
340- < h3 id ="org1e83906 "> Stage 1: Simple Reflex Agent(LangChain)</ h3 >
341- < div class ="outline-text-3 " id ="text-org1e83906 ">
339+ < div id ="outline-container-org2cc4c71 " class ="outline-3 ">
340+ < h3 id ="org2cc4c71 "> Stage 1: Simple Reflex Agent(LangChain)</ h3 >
341+ < div class ="outline-text-3 " id ="text-org2cc4c71 ">
342342< p >
343343最简单的 Agent,问什么直接答什么。用 LangChain 的链(Chain)就能搞定。
344344</ p >
@@ -400,9 +400,9 @@ <h3 id="org1e83906">Stage 1: Simple Reflex Agent(LangChain)</h3>
400400</ div >
401401</ div >
402402
403- < div id ="outline-container-org433bbd1 " class ="outline-3 ">
404- < h3 id ="org433bbd1 "> Stage 2: Model-Based Reflex Agent(LangGraph)</ h3 >
405- < div class ="outline-text-3 " id ="text-org433bbd1 ">
403+ < div id ="outline-container-org079d8e7 " class ="outline-3 ">
404+ < h3 id ="org079d8e7 "> Stage 2: Model-Based Reflex Agent(LangGraph)</ h3 >
405+ < div class ="outline-text-3 " id ="text-org079d8e7 ">
406406< p >
407407第二阶段的 Agent 不只盯着用户输入,还看「内部状态」,就是你的库存和饮食偏好。用 LangGraph 是因为这玩意需要循环,LLM 先决定要不要查库存或偏好,查完之后重新生成回答。
408408</ p >
@@ -513,7 +513,7 @@ <h3 id="org433bbd1">Stage 2: Model-Based Reflex Agent(LangGraph)</h3>
513513</ div >
514514
515515
516- < div id ="org15fea34 " class ="figure ">
516+ < div id ="org498649b " class ="figure ">
517517< p > < img src ="../../../../../assets/blog/2026/05/30/读:llm-agent-入门——经典-agent-分类与-langchain-langgraph-实践/chef_agent_stage2.png " alt ="chef_agent_stage2.png " />
518518</ p >
519519</ div >
@@ -597,9 +597,9 @@ <h3 id="org433bbd1">Stage 2: Model-Based Reflex Agent(LangGraph)</h3>
597597</ div >
598598</ div >
599599
600- < div id ="outline-container-org63b4fde " class ="outline-3 ">
601- < h3 id ="org63b4fde "> Stage 3: Goal & Utility Based Agent(LangGraph)</ h3 >
602- < div class ="outline-text-3 " id ="text-org63b4fde ">
600+ < div id ="outline-container-orgdd216a9 " class ="outline-3 ">
601+ < h3 id ="orgdd216a9 "> Stage 3: Goal & Utility Based Agent(LangGraph)</ h3 >
602+ < div class ="outline-text-3 " id ="text-orgdd216a9 ">
603603< p >
604604第三阶段再往前走一步。Agent 不只考虑冰箱里有什么,还受卡路里预算的约束。这就把「目标」和「效用」引进了决策。
605605</ p >
@@ -751,7 +751,7 @@ <h3 id="org63b4fde">Stage 3: Goal & Utility Based Agent(LangGraph)</h3>
751751</ div >
752752
753753
754- < div id ="orgf38cf67 " class ="figure ">
754+ < div id ="orgfa027aa " class ="figure ">
755755< p > < img src ="../../../../../assets/blog/2026/05/30/读:llm-agent-入门——经典-agent-分类与-langchain-langgraph-实践/chef_agent_stage3.png " alt ="chef_agent_stage3.png " />
756756</ p >
757757</ div >
@@ -889,9 +889,9 @@ <h3 id="org63b4fde">Stage 3: Goal & Utility Based Agent(LangGraph)</h3>
889889</ div >
890890</ div >
891891
892- < div id ="outline-container-orgf44aaf4 " class ="outline-2 ">
893- < h2 id ="orgf44aaf4 "> 总结</ h2 >
894- < div class ="outline-text-2 " id ="text-orgf44aaf4 ">
892+ < div id ="outline-container-org0dbebf8 " class ="outline-2 ">
893+ < h2 id ="org0dbebf8 "> 总结</ h2 >
894+ < div class ="outline-text-2 " id ="text-org0dbebf8 ">
895895< p >
896896这篇文章从 < i > 人工智能</ i > 教科书里的 Agent 定义出发,把 Simple Reflex 到 Learning Agent 的五级分类过了一遍,然后在 LLM 语境下用 LangChain 和 LangGraph 跑了前三级。
897897</ p >
@@ -952,7 +952,7 @@ <h2 id="orgf44aaf4">总结</h2>
952952 < footer class ="footer ">
953953 < p > Generated by < a href ="http://www.gnu.org/software/emacs/ "> Emacs</ a > 29.x(< a href ="http://orgmode.org "> Org mode</ a > 9.x)</ p >
954954 < p >
955- Copyright © 2014 - < span id ="footerYear "> </ span > < a href ="mailto:runner <at> runnervm3jyl0 <dot> pymbk4rosloebn1wbs3h1bjgzg <dot> bx <dot> internal <dot> cloudapp <dot> net "> lujun9972, Claude Code</ a >
955+ Copyright © 2014 - < span id ="footerYear "> </ span > < a href ="mailto:runner <at> runnervm3jyl0 <dot> blqkew0h0opulhxsuh3beiplya <dot> bx <dot> internal <dot> cloudapp <dot> net "> lujun9972, Claude Code</ a >
956956 ·
957957 Powered by < a href ="https://github.com/emacs-china/EGO " target ="_blank "> EGO</ a >
958958 ·
0 commit comments