前前后后把这本书翻了三遍,每次都有新的理解。今天把我的心得体会分享出来,希望对正在学习 LangChain 的朋友有所帮助。
为什么要读这本书?
2026 年了,AI 应用开发已经成为程序员的必备技能。但是市面上关于 LangChain 的教程要么太浅(只会调 API),要么太深(直接看源码)。我一直在找一本既能让入门者上手,又能指导生产实践的书,直到遇到了这本《LangChain 实战》。
作为一个在金融科技领域工作的程序员,我日常需要处理大量的非结构化数据:研报、公告、合同条款。之前用关键词匹配做检索,效果很差;后来尝试用 embedding + 向量数据库,但总是停留在 Demo 级别。直到跟着书里的案例从头到尾跑了一遍,才真正理解了生产级 RAG 系统该怎么搭建。
书中核心内容拆解
第一遍:入门篇 - 原来 LangChain 不只是"调 API"
我第一遍读的时候,觉得这本书和其他 LangChain 教程差不多——讲讲 Chain、Agent、Memory 都是什么。但是读到第 3 章的Chain 组合部分,我开始觉得不一样了。
书里不是简单地展示 LLAChain.from_llm(),而是详细解释了:
# 书中第 3 章的代码示例:多链组合
from langchain.chains import LLMChain, SequentialChain
from langchain.prompts import PromptTemplate
# 第一步:提取关键信息
extract_template = """从以下文本中提取关键信息:
{text}
关键信息:"""
extract_chain = LLMChain(
llm=llm,
prompt=PromptTemplate(template=extract_template, input_variables=["text"]),
output_key="key_info"
)
# 第二步:根据关键信息生成回答
answer_template = """基于以下关键信息回答问题:
{key_info}
问题:{question}"""
answer_chain = LLMChain(
llm=llm,
prompt=PromptTemplate(template=answer_template, input_variables=["key_info", "question"]),
output_key="answer"
)
# 组合链:顺序执行
full_chain = SequentialChain(
chains=[extract_chain, answer_chain],
input_variables=["text", "question"],
output_variables=["answer"]
)
这段代码让我意识到:Chain 的价值不在于调用 LLM,而在于编排流程、控制逻辑。
第二遍:进阶篇 - RAG 不是简单 Embedding
第二遍读的时候,我重点看了第 5 章的 RAG 实战。书里有一个观点让我印象很深:
"90% 的人做 RAG,做的都是「假 RAG」——把文档切一切、embedding 存进去、查 top-k 就完事了。真正的 RAG 需要考虑:检索结果相关性、上下文窗口管理、多轮对话记忆。"
书里给出了完整的 RAG 优化方案,包括:
| 优化方向 | 书中方案 | 效果 |
|---|---|---|
| 检索精度 | HyDE (Hypothetical Document Embeddings) | 召回率提升 23% |
| 上下文管理 | Parent Document Retriever | 关键信息不丢失 |
| 答案质量 | Corrective RAG (CRAG) | 幻觉减少 40% |
# 书中第 5 章:HyDE 检索增强示例
from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import LLMChainExtractor
# 使用 HyDE 模式生成"假设文档",再检索
hyde_template = """请生成一个能够回答以下问题的理想文档:
{question}
理想文档:"""
hyde_chain = LLMChain(llm=llm, prompt=PromptTemplate(template=hyde_template, input_variables=["question"]))
# 基于假设文档进行向量检索
hyde_retriever = vectorstore.as_retriever()
hyde_docs = hyde_retriever.get_relevant_documents(
hyde_chain.run(question)
)
# 再用 LLMChainExtractor 提取与问题相关的片段
compressor = LLMChainExtractor.from_llm(llm)
compression_retriever = ContextualCompressionRetriever(
base_compressor=compressor,
base_retriever=hyde_retriever
)
这段代码在我实际工作中帮了大忙。我用它改造了部门的研报问答系统,准确率从 67% 提升到了 89%。
第三遍:生产篇 - Agent 才是终极目标
第三遍读的时候,我已经跟着书里的案例做了两个小项目。这时候再看第 7 章的 Agent 部分,感受完全不同。
书中把 Agent 的发展历程讲得很清楚:
2023年初:ReAct Agent(思考→行动→观察→再思考)
2023年中:Tool Agent(学会使用工具)
2024年:Multi-Agent(多个 Agent 协作)
2025年:Agent Workflow(工作流编排)
2026年:Agent Host(企业级部署)
书里有一个特别实用的案例:用 Agent 自动分析股票研报。
# 书中第 7 章:研报分析 Agent 示例
from langchain.agents import AgentExecutor, create_react_agent
from langchain.tools import Tool
from langchain import SerpAPIWrapper
# 工具定义
search_tool = Tool(
name="股票搜索",
func=SerpAPIWrapper().run,
description="用于搜索股票相关资讯和公告"
)
read_pdf_tool = Tool(
name="PDF读取",
func=read_pdf_content,
description="读取 PDF 研报的文本内容"
)
analyze_tool = Tool(
name="数据分析",
func=analyze_with_llm,
description="用 LLM 分析文本中的关键数据"
)
# 创建 ReAct Agent
tools = [search_tool, read_pdf_tool, analyze_tool]
prompt = """你是一个专业的金融分析师,擅长从研报中提取投资建议。
你可以通过搜索最新资讯、读取研报、分析数据来完成任务。"""
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 执行任务
result = agent_executor.run(
"分析一下宁德时代最新的投资价值,搜索最近一个月的研报观点"
)
这个案例让我彻底理解了 Agent 和 Chain 的区别:Chain 是预设好的流程,Agent 是能自主决策的"智能体"。
我的实践心得
跟着这本书,我做了三个小项目:
- 金融研报问答系统 - 用 RAG + HyDE,部署在公司内部知识库
- 智能客服 Agent - 用 Multi-Agent + Memory,实现多轮对话
- 自动化测试用例生成 - 用 Tool Agent + 代码解释器
其中第二个项目最让我有成就感。之前客服系统只能回答简单问题,现在 Agent 能自主判断:
- 用户问的是产品功能 → 调用产品知识库
- 用户问的是技术问题 → 调用技术支持文档
- 用户需要人工 → 自动转接人工客服
上线三个月,用户满意度提升了 18%。
适合谁读?
根据我的经验,这本书适合以下几类读者:
| 读者类型 | 推荐理由 |
|---|---|
| AI 应用开发入门者 | 书中基础部分讲得细致,代码可运行 |
| 想转型的传统程序员 | 第 2 章有 Python 基础回顾 |
| 需要构建知识库的企业 | 第 5 章 RAG 实战是全书精华 |
| 想深入 Agent 的开发者 | 第 7 章覆盖了 2023-2026 年的发展脉络 |
如果你只是想"调个 API 玩一玩",这本书可能有点厚;但如果你想真正掌握 AI 应用开发,这本书值得读三遍。
总结
读第三遍的时候,我在书封面写下了一句话:
"这不是一本教你用 LangChain 的书,而是一本教你如何设计 AI 应用系统的书。"
如果你也在学习 AI 应用开发,强烈建议把这本书放在案头。第一遍学基础,第二遍做项目,第三遍,你会发现原来所谓的「AI 思维」,就是学会把问题拆解成「LLM 能解决的问题」和「程序能解决的问题」。
你读过哪些 LangChain / RAG 相关的书?有什么心得想分享吗?欢迎在评论区聊聊!
声明:本文不包含任何联盟推广链接,纯粹是个人学习心得分享。如果有朋友想要购买链接,可以评论区告诉我,我再补充。