<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Agent on UOG的BLOG</title>
		<link>http://uogog.github.io/tags/agent/</link>
		<description>Recent content in Agent on UOG的BLOG</description>
		<generator>Hugo</generator>
		<language>zh-cn</language>
		
		
		
		
			<lastBuildDate>Fri, 22 May 2026 13:56:39 +0800</lastBuildDate>
		
			<atom:link href="http://uogog.github.io/tags/agent/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>LangChain学习</title>
				<link>http://uogog.github.io/posts/langchain1/</link>
				<pubDate>Fri, 22 May 2026 13:56:39 +0800</pubDate>
				<guid>http://uogog.github.io/posts/langchain1/</guid>
				<description>&lt;p&gt;Assisted-by deepseek&lt;/p&gt;&#xA;&lt;h1 id=&#34;langchain-agent-几大组件&#34;&gt;&#xA;  LangChain Agent 几大组件&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#langchain-agent-%e5%87%a0%e5%a4%a7%e7%bb%84%e4%bb%b6&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;LangChain 里的 Agent 本质上是一个由 LLM 驱动的决策循环：模型根据当前状态决定下一步做什么（调用工具还是结束），执行后更新状态，再进入下一轮。拆开来看，主要由下面几个组件构成。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-model模型&#34;&gt;&#xA;  1. Model（模型）&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#1-model%e6%a8%a1%e5%9e%8b&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Agent 的&amp;quot;大脑&amp;quot;，负责理解上下文并做出决策。在 LangChain 中使用 &lt;code&gt;ChatModel&lt;/code&gt; 进行绑定，通常需要配合 &lt;code&gt;.bind_tools(tools)&lt;/code&gt; 将可用工具列表注入给模型，这样模型才知道自己能调用哪些工具。&lt;/p&gt;&#xA;&lt;p&gt;调用模型时传入消息序列（系统提示 + 历史对话 + 当前状态），模型返回一个 &lt;code&gt;AIMessage&lt;/code&gt;。如果模型认为需要调用工具，返回的消息中会携带 &lt;code&gt;tool_calls&lt;/code&gt; 字段，包含工具名和参数；如果可以直接回答，则返回普通文本。&lt;/p&gt;&#xA;&lt;h2 id=&#34;2-tools工具&#34;&gt;&#xA;  2. Tools（工具）&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#2-tools%e5%b7%a5%e5%85%b7&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;工具是 Agent 与外部世界交互的手段——搜索、计算、查数据库、调 API 等。在 LangChain 中用 &lt;code&gt;@tool&lt;/code&gt; 装饰器或 &lt;code&gt;StructuredTool&lt;/code&gt; 定义，核心是：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;name&lt;/strong&gt;：工具的唯一标识&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;：告诉模型这个工具做什么、什么时候该用它&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;args_schema&lt;/strong&gt;：输入参数的 schema（模型据此生成正确的调用参数）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;工具的描述质量直接影响模型的调用准确率，所以 description 需要写清楚&amp;quot;何时用、输入什么、输出什么&amp;quot;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;3-state状态&#34;&gt;&#xA;  3. State（状态）&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#3-state%e7%8a%b6%e6%80%81&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;State 是 Agent 在整个执行过程中的&amp;quot;记忆&amp;quot;。LangGraph 的 &lt;code&gt;StateGraph&lt;/code&gt; 用 TypedDict 定义状态结构，最核心的字段是 &lt;code&gt;messages&lt;/code&gt;——一个消息列表，用 &lt;code&gt;add_messages&lt;/code&gt; reducer 累积每条消息。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
