<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>LangChain on Chang Luo</title>
		<link>https://www.luochang.ink/tags/langchain/</link>
		<description>Recent content in LangChain on Chang Luo</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Sun, 18 Jan 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://www.luochang.ink/tags/langchain/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>在树莓派上搭建家用 Agent 服务</title>
				<link>https://www.luochang.ink/posts/rpi_agent_server/</link>
				<pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/rpi_agent_server/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;使用树莓派搭建 &lt;a href=&#34;https://github.com/luochang212/dive-into-langgraph/tree/main/app&#34;&gt;dive-into-langgraph/app&lt;/a&gt; 服务，在家庭局域网内部使用。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;一键部署脚本：&lt;a href=&#34;https://github.com/luochang212/agent-server&#34;&gt;agent-server&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;一制作-tf-卡&#34;&gt;一、制作 TF 卡&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; 你可以参考我的这篇博客《&lt;a href=&#34;https://www.luochang.ink/posts/raspberry_pi_5/&#34;&gt;树莓派 5 装机指南&lt;/a&gt;》，它写得更详细一些。但部分信息已经过时，请注意甄别。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;1下载&#34;&gt;1）下载&lt;/h4&gt;&#xA;&lt;p&gt;你需要下载两样东西：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.raspberrypi.com/software/&#34;&gt;Raspberry Pi Imager&lt;/a&gt;：将镜像写入 TF 卡的工具&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://ubuntu.com/download/raspberry-pi&#34;&gt;Ubuntu 24.04.3 LTS&lt;/a&gt;：树莓派的 Ubuntu 镜像&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Ubuntu 镜像有两种版本：桌面版、服务器版，我们下载服务器版。下载的时候可以检查一下，安装包的文件名应该是这个 &lt;code&gt;ubuntu-24.04.3-preinstalled-server-arm64+raspi.img.xz&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;2将镜像写入-tf-卡&#34;&gt;2）将镜像写入 TF 卡&lt;/h4&gt;&#xA;&lt;p&gt;根据 &lt;strong&gt;Raspberry Pi Imager&lt;/strong&gt; 的指引，完成镜像烧录的过程就好了。并没有什么难的。唯一需要注意的是，由于我们已经下载了 Ubuntu 镜像，所以这里要选「使用自定义镜像」。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://www.luochang.ink/img/Raspberry-Pi-Imager-2025.png&#34; alt=&#34;image&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;二首次启动-ubuntu&#34;&gt;二、首次启动 Ubuntu&lt;/h3&gt;&#xA;&lt;p&gt;烧录完成后，按以下步骤操作：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;先断电，然后将 TF 卡插入板子&lt;/li&gt;&#xA;&lt;li&gt;连接外接显示屏、键盘、网线&lt;/li&gt;&#xA;&lt;li&gt;最后插入电源&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;一般来讲，插电即可点亮。这时回车一下，即可输入账号密码，初始账密是：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;账号&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ubuntu&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;密码&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ubuntu&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;输完账密，它会接着让你设置新密码。这里流程设计得有点人机，需要注意看提示，不然容易卡关。温馨提示：你输入 &lt;code&gt;ubuntu&lt;/code&gt; 的次数比你想象中更多。&lt;/p&gt;&#xA;&lt;h3 id=&#34;三环境配置&#34;&gt;三、环境配置&lt;/h3&gt;&#xA;&lt;h4 id=&#34;1更新软件包&#34;&gt;1）更新软件包&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 更新软件源的索引列表&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 根据更新后的索引，升级所有可更新的软件包&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt upgrade -y&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;2安装-pipx-和-uv&#34;&gt;2）安装 pipx 和 uv&lt;/h4&gt;&#xA;&lt;p&gt;先安装 &lt;code&gt;pipx&lt;/code&gt;，再用它安装 &lt;code&gt;uv&lt;/code&gt;：&lt;/p&gt;</description>
			</item>
			<item>
				<title>RAG：大模型时代的搜索基座</title>
				<link>https://www.luochang.ink/posts/rag_intro/</link>
				<pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/rag_intro/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;没有一条帆船能吹动自己行驶，它需要外面的风。 &amp;ndash; 因可觅《量子离歌》&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;大模型的训练数据有截止日期，在此之后的事它不知道；大模型的参数量有限，无法容纳所有专业知识。也就是说，大模型在实时性和专业性上都有所欠缺。&lt;/p&gt;&#xA;&lt;p&gt;如何让大模型变得实时且专业呢？最省力的方法是“打小抄”。&lt;strong&gt;知识库&lt;/strong&gt; 就像大模型的“小抄”。在回答问题之前，先瞅一眼小抄，看有没有与问题相关的内容。如果有，就从知识库中取回这段内容，结合大模型的推理能力，生成最终答案。&lt;/p&gt;&#xA;&lt;p&gt;这里「打小抄」的动作，就是 &lt;a href=&#34;https://docs.langchain.com/oss/python/langchain/retrieval&#34;&gt;&lt;strong&gt;RAG&lt;/strong&gt;&lt;/a&gt;（Retrieval-Augmented Generation, 检索增强生成）。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; 使用知识库可以让大模型的回答有据可依、减少幻觉，代价是需要承担知识库的构建成本。尤其当知识库的规模较大时，有必要想想是否值得支付对价。毕竟，通过扩大知识库的方式提升 Agent 性能，多少有点「用有限对抗无限，用确定对抗不确定」的意思。虽然我们总是在提起 RAG 时提到知识库，但 RAG 是一种检索技术，它可以检索任何内容。比起检索需要手动构建的知识库，用来检索联网内容、历史对话也是可以的，而且性价比很高。你的下一个检索对象，又何必是知识库。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;一提示词模板&#34;&gt;一、提示词模板&lt;/h2&gt;&#xA;&lt;p&gt;RAG 做的事情并不复杂，就是从知识库中召回与用户问题有关的内容，作为上下文注入到 &lt;strong&gt;提示词模板 (Prompt Template)&lt;/strong&gt; 中。&lt;/p&gt;&#xA;&lt;p&gt;下面是一个提示词模板：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{context}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;基于上面给出的上下文，回答问题。&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;问题：{question}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;回答： &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使用该模板时，将召回文本填入 &lt;code&gt;{context}&lt;/code&gt;，将用户问题填入 &lt;code&gt;{question}&lt;/code&gt;。然后把填好的提示词模板交给大模型推理。&lt;/p&gt;&#xA;&lt;p&gt;RAG 主要做了两件事：一是从知识库中 &lt;strong&gt;召回&lt;/strong&gt; 与用户问题有关的文本，二是使用提示词模板 &lt;strong&gt;拼接&lt;/strong&gt; 召回文本与用户问题。拼接很容易做到，难度主要集中在召回上。在下一小节中，我将介绍如何召回与用户问题有关的文本。&lt;/p&gt;&#xA;&lt;h2 id=&#34;二向量检索&#34;&gt;二、向量检索&lt;/h2&gt;&#xA;&lt;p&gt;完成「召回与用户问题有关的」这件事，需要用到检索器。实现检索器的方式有 &lt;a href=&#34;https://docs.langchain.com/oss/python/integrations/retrievers&#34;&gt;很多&lt;/a&gt;，比如基于关键词检索的 &lt;a href=&#34;https://docs.langchain.com/oss/python/integrations/retrievers/bm25&#34;&gt;BM25&lt;/a&gt; 算法，但本节主要介绍基于 Embedding 的检索方法：&lt;strong&gt;向量检索&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;1从文本向量化说起&#34;&gt;1）从文本向量化说起&lt;/h3&gt;&#xA;&lt;p&gt;Embedding 是一种将文本转为向量的技术。它的输入是一段文本，输出是一个定长的向量。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#34;好喜欢你&amp;#34; --&amp;gt; [0.190012, 0.123555, .... ]&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;将文本转为向量的目的，是把语义相近的词分配到同一片向量空间。所以，一对近义词转成向量后，它们的向量之间的距离通常比其他词更近。比如，足球和篮球在向量空间中的距离更近一些，而足球和篮筐之间的距离更远。Embedding 的本质是压缩。从编码角度讲，自然语言存在冗余信息。Embedding 相当于对自然语言进行重编码，用最少的 token 表达最多的语义。&lt;/p&gt;&#xA;&lt;p&gt;Embedding 在多语言场景下也有优势。经过充分训练的 Embedding 模型，会将多语言内容在语义层面上对齐。也就是说，一个向量可以在多语言环境中保持同一语义。这种特性让大模型得以兼容并包。即使加入多语言材料，也不会因为字面上的词不同，而产生“理解”上的混乱。&lt;/p&gt;&#xA;&lt;h3 id=&#34;2向量检索的原理&#34;&gt;2）向量检索的原理&lt;/h3&gt;&#xA;&lt;p&gt;由于 Embedding 模型具有将相似语义的词训练成距离相近的向量的特性，我们可以把「用户问题」与「知识库内容」都转成 Embedding 向量。然后计算向量之间的距离。向量之间的距离越小，则语料之间的相似度越高。借助这个原理，最后返回知识库中与问题向量距离最小的 Top-K 份语料即可。&lt;/p&gt;</description>
			</item>
			<item>
				<title>《LangGraph 1.0 完全指南》发布</title>
				<link>https://www.luochang.ink/posts/dive_into_langgraph/</link>
				<pubDate>Sun, 23 Nov 2025 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/dive_into_langgraph/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;经过三个星期的努力，&lt;a href=&#34;https://luochang212.github.io/dive-into-langgraph/&#34; target=&#34;_blank&#34;&gt;《LangGraph 1.0 完全指南》&lt;/a&gt;终于面世啦！&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;10 月中旬，LangGraph 1.0 发布。开发团队承诺这是一个稳定版本，未来不会大改。因此，现在正是学习它的好时候。&lt;/p&gt;&#xA;&lt;p&gt;LangGraph 是由 LangChain 团队开发的开源智能体框架。使用时它俩是紧密耦合的：LangChain 提供底层功能，LangGraph 负责状态管理。因此，两个库的文档都需要学习，这无疑加重了使用者的负担。为了让大家快速入门，我将两个库的主要功能提取出来，分成 14 个章节进行介绍。&lt;/p&gt;&#xA;&lt;p&gt;这是一个开源电子书项目，使用 GitHub Action 自动构建，欢迎 &lt;a href=&#34;https://github.com/luochang212/dive-into-langgraph/pulls&#34; target=&#34;_blank&#34;&gt;Pull Request&lt;/a&gt;。如果你觉得本教程对你有帮助，也欢迎 Star 本教程仓库 &lt;a href=&#34;https://github.com/luochang212/dive-into-langgraph&#34; target=&#34;_blank&#34;&gt;luochang212/dive-into-langgraph&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://www.luochang.ink/img/d2lg-overview.png&#34; alt=&#34;overview&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;一在线资源&#34;&gt;一、在线资源&lt;/h3&gt;&#xA;&lt;p&gt;可以通过以下链接，访问本项目的仓库和在线文档：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;资源&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;链接&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;GitHub 仓库&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://github.com/luochang212/dive-into-langgraph&#34; target=&#34;_blank&#34;&gt;luochang212/dive-into-langgraph&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;电子书&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://luochang212.github.io/dive-into-langgraph/&#34; target=&#34;_blank&#34;&gt;《LangGraph 1.0 完全指南》&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;二章节介绍&#34;&gt;二、章节介绍&lt;/h3&gt;&#xA;&lt;p&gt;本教程的内容速览：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;序号&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;章节&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;主要内容&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/quickstart/&#34;&gt;快速入门&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;创建你的第一个 ReAct Agent&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/stategraph/&#34;&gt;状态图&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;使用 StateGraph 创建工作流&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;3&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/middleware/&#34;&gt;中间件&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;使用自定义中间件实现四个功能：预算控制、消息截断、敏感词过滤、PII 检测&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;4&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/human_in_the_loop/&#34;&gt;人机交互&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;使用内置的 HITL 中间件实现人机交互&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;5&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/memory/&#34;&gt;记忆&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;创建短期记忆、长期记忆&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;6&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/context/&#34;&gt;上下文工程&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;使用 State、Store、Runtime 管理上下文&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;7&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/mcp_server/&#34;&gt;MCP Server&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;创建 MCP Server 并接入 LangGraph&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;8&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/supervisor/&#34;&gt;监督者模式&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;两种方法实现监督者模式：tool-calling、langgraph-supervisor&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;9&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/parallelization/&#34;&gt;并行&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;如何实现并发：节点并发、&lt;code&gt;@task&lt;/code&gt; 装饰器、Map-reduce、Sub-graphs&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;10&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/rag/&#34;&gt;RAG&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;三种方式实现 RAG：向量检索、关键词检索、混合检索&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;11&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/web_search/&#34;&gt;网络搜索&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;实现联网搜索：DashScope、Tavily 和 DDGS&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;12&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/deep_agents/&#34;&gt;Deep Agents&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;简单介绍 Deep Agents&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;13&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/gradio-app/&#34;&gt;Gradio APP&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;基于 Gradio 开发流式对话智能体应用&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;14&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://www.luochang.ink/dive-into-langgraph/langgraph-cli/&#34;&gt;附录：调试页面&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;介绍 langgraph-cli 提供的调试页面&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;三拓展阅读&#34;&gt;三、拓展阅读&lt;/h3&gt;&#xA;&lt;p&gt;以下是推荐阅读的文档和教程：&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
