版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LangChain开发实战——含Chain/Agent/Memory
标签:LangChain|Chain|Agent|Memory|LCEL|大模型开发|2026最新
日期:2026年9月22日
一句话简介:从LCEL管道组合、create_agent智能体构建到短期/长期记忆管理,系统讲解LangChain1.0的三大核心
模块——每种Chain都有可复制的代码模板,每个Agent都有完整的工具定义示例,Memory的短期与长期方案逐一拆
解。
关键词/标签:LangChain实战、LCEL管道、create_agent、Agent工具调用、短期记忆、长期记忆、Checkpointer、
中间件
适用人群:大模型应用开发者、Python开发者、AI产品经理、需要构建LLM应用的工程团队、从零开始学习
LangChain的开发者
文档类型:教程攻略类
目录
第一章:LangChain1.0架构全景与版本迁移
第二章:Chain实战——LCEL管道组合
第三章:LCEL进阶——并行/分支/结构化输出
第四章:Agent实战——create_agent与工具调用
第五章:Agent中间件——上下文工程的核心机制
第六章:Memory实战——短期记忆与长期记忆
第七章:完整项目实战——智能电商客服系统
第八章:避坑指南——10个常见错误及正确做法
第九章:常见问题解答
附录:速查表
第一章:LangChain1.0架构全景与版本迁移
1.1LangChain1.0的核心变化
LangChainv1于2025年10月发布,是一个专注于构建智能体的生产就绪基础框架。官方围绕三个核心改进精简了框
架:新的标准智能体创建方式、统一的内容块、以及简化的包结构。
变化项旧版本v1.0
智能体创建create_react_agent(LangGraph)create_agent(langchain包)
AgentExecutor主要入口维护模式至2026年12月,新代码不应使用
包结构langchain包含大量传统功能精简为核心构建块,传统功能移至langchain-classic
提示词参数promptsystemPrompt
结构化输出提示词输出toolStrategy/providerStrategy
关键迁移要点:所有新的LangChain智能体都运行在LangGraph运行时之上。create_agent是v1.0中构建智能体的
标准方式,它生成的底层是一个LangGraph状态机,开箱即用地支持流式输出、持久化和可观测性。
1.2生态全景
2026年的LangChain生态已形成清晰的分层架构:
层级组件职责
核心框架LangChain1.0模型抽象、提示词、工具、RAG组件、LCEL
编排运行时LangGraph1.0将流程变为图,支持持久化、人工介入、流式
智能体入口create_agent智能体工厂+中间件
可观测平台LangSmith追踪、评测、数据集
学习顺序建议:ChatModel→Prompt→Tool→RAG→LCEL→LangGraph→create_agent。
1.3安装与环境配置
#安装LangChain1.0
pipinstall-Ulangchain
#安装模型集成包(按需选择)
pipinstalllangchain-openai
#OpenAI
pipinstalllangchain-anthropic
#AnthropicClaude
pipinstalllangchain-community
#社区集成
#安装LangGraph运行时
pipinstalllanggraph
环境变量配置(以OpenAI为例):
importos
os.environ["OPENAI_API_KEY"]="sk-..."
#替换为实际密钥
1.4模型统一接口
LangChain1.0通过init_chat_model提供统一的模型接口,业务代码不需要知道背后是OpenAI、Anthropic还是国
产模型:
fromlangchain.chat_modelsimportinit_chat_model
#统一接口,模型标识格式:provider:model
model=init_chat_model("openai:gpt-4o")
model=init_chat_model("claude-sonnet-4-6")
model=init_chat_model("google_genai:gemini-2.5-flash-lite")
model=init_chat_model("ollama:llama3")
#三种调用方式
resp=model.invoke("LangChain是什么?")
#一次调用
forchunkinmodel.stream("讲个故事"):
#流式输出
print(chunk.content,end="")
resp=model.batch(["问题1","问题2","问题3"])
#批量调用
第二章:Chain实战——LCEL管道组合
2.1LCEL的核心逻辑
LCEL(LangChainExpressionLanguage)是LangChain1.0推荐的链组合方式,采用管道操作符|将组件串联。每个
组件(提示词、模型、解析器、检索器)都实现了Runnable接口,前一步的输出自动作为后一步的输入。
chain=prompt|model|output_parser
2.2基础Chain——单步管道
fromlangchain_mptsimportChatPromptTemplate
fromlangchain_openaiimportChatOpenAI
fromlangchain_core.output_parsersimportStrOutputParser
#1.定义提示词模板
prompt=ChatPromptTemplate.from_template(
"用一句话介绍{city}这个城市的特点。"
)
#2.初始化模型
model=ChatOpenAI(model="gpt-4o-mini",temperature=0.7)
#3.定义输出解析器
parser=StrOutputParser()
#4.用管道符组合Chain
chain=prompt|model|parser
#5.调用
result=chain.invoke({"city":"杭州"})
print(result)
执行流程:提示词模板将{city}替换为“杭州”→模型生成回答→解析器提取字符串内容。
2.3多步骤Chain——顺序流水线
多步骤Chain将多个操作串联,前一步的输出作为后一步的输入。以下示例实现“总结→翻译”两步任务:
fromlangchain_mptsimportChatPromptTemplate
fromlangchain_openaiimportChatOpenAI
model=ChatOpenAI(model="gpt-4o-mini")
#第一步:总结
summarize_prompt=ChatPromptTemplate.from_template(
"请总结以下文本的核心内容:\n\n{text}"
)
summarize_chain=summarize_prompt|model
#第二步:翻译
translate_prompt=ChatPromptTemplate.from_template(
"请将以下内容翻译成英文:\n\n{summary}"
)
translate_chain=translate_prompt|model
#组合:总结→数据映射→翻译
full_chain=(
summarize_chain
|(lambdax:{"summary":x.content})
|translate_chain
)
result=full_chain.invoke({"text":"气候变化正在导致海洋快速升温..."})
print(result.content)
关键点:(lambdax:{"summary":x.content})是数据映射步骤,将上一步的ChatMessage对象转换为下一步需
要的字典格式。
2.4RunnablePassthrough——传递原始输入
RunnablePassthrough用于在链中传递原始输入,常用于需要同时保留原始问题和检索结果的场景:
fromlangchain_core.runnablesimportRunnablePassthrough
chain=(
{"context":retriever,"question":RunnablePassthrough()}
|prompt
|model
|parser
)
这里RunnablePassthrough()将用户的原始问题原样传递给提示词模板的{question}变量。
2.5RunnableLambda——自定义处理函数
RunnableLambda允许将普通Python函数嵌入LCEL管道:
fromlangchain_core.runnablesimportRunnableLambda
defclean_text(text):
returntext.strip().lower()
defcount_words(text):
return{"text":text,"word_count":len(text.split())}
chain=(
RunnableLambda(clean_text)
|RunnableLambda(count_words)
|prompt
|model
)
2.6不带LLM的Chain
并非所有Chain都必须包含LLM。预处理和后处理流水线同样可以用LCEL构建:
defremove_extra_spaces(text):
return"".join(text.split())
defto_lowercase(text):
returntext.lower()
cleanup_chain=RunnableLambda(remove_extra_spaces)|RunnableLambda(to_lowercase)
result=cleanup_chain.invoke("Hello
World
From
LangChain")
print(result)
#"helloworldfromlangchain"
2.7LCEL与旧版LLMChain的对比
维度旧版LLMChainLCEL
组合方式类继承/参数配置管道操作符
流式支持需额外配置原生支持
并行执行不支持原生支持
类型提示弱强
异步支持有限完整
第三章:LCEL进阶——并行/分支/结构化输出
3.1并行Chain
使用RunnableParallel同时执行多个Chain,然后合并结果:
fromlangchain_core.runnablesimportRunnableParallel
#同时进行摘要和关键词提取
summarize_chain=summarize_prompt|model|parser
keywords_chain=keywords_prompt|model|parser
parallel_chain=RunnableParallel(
summary=summarize_chain,
keywords=keywords_chain,
)
result=parallel_chain.invoke({"text":"这是一篇关于AI的长文..."})
print(result["summary"])
print(result["keywords"])
3.2分支Chain
使用RunnableBranch根据输入条件选择不同的处理路径:
fromlangchain_core.runnablesimportRunnableBranch
branch=RunnableBranch(
(lambdax:"技术"inx["topic"],tech_chain),
(lambdax:"营销"inx["topic"],marketing_chain),
general_chain,
#默认路径
)
3.3结构化输出
LangChain1.0推荐使用with_structured_output替代手动拼JSON格式说明,更稳定可靠:
frompydanticimportBaseModel,Field
fromtypingimportList
classArticleInfo(BaseModel):
title:str=Field(description="文章标题")
outline:List[str]=Field(description="文章大纲")
keywords:List[str]=Field(description="3-5个关键词")
model=ChatOpenAI(model="gpt-4o-mini",temperature=0.7)
structured_model=model.with_structured_output(ArticleInfo)
prompt=ChatPromptTemplate.from_messages([
("system","你是一位资深技术博主。"),
("human","请针对「{topic}」生成文章标题、大纲和关键词。"),
])
chain={"topic":RunnablePassthrough()}|prompt|structured_model
result=chain.invoke("主流Agent框架对比")
print(f"标题:{result.title}")
print(f"大纲:{result.outline}")
print(f"关键词:{result.keywords}")
3.4回调与Token统计
使用回调机制统计Token消耗和监控链执行过程:
fromlangchain_community.callbacksimportget_openai_callback
withget_openai_callback()ascb:
result=chain.invoke({"topic":"LangChain实战"})
print(f"消耗Token:{cb.total_tokens}")
print(f"费用:${cb.total_cost:.4f}")
开发环境可以开启调试模式查看链的详细执行过程:
importlangchain
langchain.debug=True
生产环境务必关闭调试模式,避免输出敏感信息。
第四章:Agent实战——create_agent与工具调用
4.1create_agent的核心用法
create_agent是LangChain1.0中构建智能体的标准方式。它生成的底层是一个LangGraph状态机,开箱即用地支持
流式输出、持久化和可观测性。
fromlangchain.agentsimportcreate_agent
agent=create_agent(
model="claude-sonnet-4-6",
tools=[search_web,analyze_data,send_email],
system_prompt="你是一位有帮助的研究助手。"
)
result=agent.invoke({
"messages":[
{"role":"user","content":"研究AI安全趋势"}
]
})
print(result["messages"][-1].content)
4.2工具定义
使用@tool装饰器定义工具,LangChain自动将函数签名和文档字符串转换为模型可理解的工具描述:
fromlangchain_core.toolsimporttool
frompydanticimportBaseModel,Field
classSearchInput(BaseModel):
query:str=Field(description="搜索关键词")
max_results:int=Field(default=5,description="最大结果数")
@tool(args_schema=SearchInput)
defsearch_web(query:str,max_results:int=5)->str:
"""搜索互联网获取信息。当需要查询最新信息时使用此工具。"""
#实际实现:调用搜索引擎API
returnf"关于'{query}'的搜索结果({max_results}条)"
@tool
defcalculate(expression:str)->str:
"""计算数学表达式。当需要进行数值计算时使用此工具。
参数:
expression:数学表达式,如"2+3*4"
"""
try:
result=eval(expression)
returnstr(result)
exceptExceptionase:
returnf"计算错误:{e}"
工具的文档字符串(docstring)直接影响模型是否能在正确时机调用工具。描述应清晰说明工具的功能和适用场景。
4.3Agent执行循环
create_agent基于基本的智能体循环:调用模型→让模型选择要执行的工具→执行工具→将结果返回给模型→
重复直到模型不再调用工具。
#注册多个工具
agent=create_agent(
model="gpt-4o-mini",
tools=[search_web,calculate],
system_prompt="你是一个智能助手。需要搜索信息时使用search_web,需要计算时使用calculate。"
)
#模型会自动判断是否需要调用工具
result=agent.invoke({
"messages":[
{"role":"user","content":"计算123*456等于多少?"}
]
})
#模型会调用calculate工具,然后返回计算结果
4.4ReAct模式与FunctionCall模式对比
LangChain支持两种主要的Agent推理模式:
维度ReActFunctionCall
推理方式显式“思考-行动-观察”循环模型原生工具调用
稳定性需处理格式解析高(模型原生支持)
适用场景需要显式推理过程的复杂场景大多数生产场景
推荐度复杂推理时可结合使用优先使用
建议优先使用FunctionCall模式(稳定性高),复杂推理场景可结合ReAct模式的显式思考过程。
4.5Agent状态与流式输出
Agent的执行过程可以流式获取,便于构建实时响应的应用:
foreventinagent.stream({
"messages":[{"role":"user","content":"搜索LangChain1.0新特性"}]
}):
fornode_name,node_outputinevent.items():
if"messages"innode_output:
formsginnode_output["messages"]:
ifhasattr(msg,"content")andmsg.content:
print(f"[{node_name}]{msg.content}")
节点名称在v1.0中从“agent”更名为“model”,需要注意更新相关代码。
第五章:Agent中间件——上下文工程的核心机制
5.1中间件的作用
中间件是create_agent的定义性特征,它提供了高度可定制的入口点,提升了可构建的上限。优秀的智能体需要上
下文工程:在正确的时间将正确的信息传递给模型。中间件帮助控制动态提示词、对话摘要、选择性工具访问、状态
管理和护栏。
5.2预置中间件
LangChain提供多个预置中间件覆盖常见模式:
中间件功能使用场景
PIIMiddleware在发送给模型前遮蔽敏感信息处理用户个人数据
SummarizationMiddleware对话历史过长时压缩长对话管理
HumanInTheLoopMiddleware敏感工具调用需要审批发送邮件、执行支付
fromlangchain.agentsimportcreate_agent
fromlangchain.agents.middlewareimport(
PIIMiddleware,
SummarizationMiddleware,
HumanInTheLoopMiddleware,
)
agent=create_agent(
model="claude-sonnet-4-6",
tools=[read_email,send_email],
middleware=[
PIIMiddleware("email",strategy="redact",apply_to_input=True),
PIIMiddleware(
"phone_number",
detector=r"(?:\+?\d{1,3}[\s.-]?)?(?:\(?\d{2,4}\)?[\s.-]?)?\d{3,4}[\s.-]?\d{4}",
strategy="block"
),
SummarizationMiddleware(
model="claude-sonnet-4-6",
trigger={"tokens":500}
),
HumanInTheLoopMiddleware(
interrupt_on={
"send_email":{
"allowed_decisions":["approve","edit","reject"]
}
}
),
]
)
5.3自定义中间件
通过createMiddleware函数实现自定义中间件,支持以下钩子:
钩子执行时机使用场景
beforeAgent调用智能体之前加载记忆、验证输入
beforeModel每次LLM调用之前更新提示词、裁剪消息
wrapModelCall包裹每次LLM调用拦截和修改请求/响应
afterModel每次LLM调用之后处理模型输出
wrapToolCall包裹每次工具调用工具错误处理、日志记录
5.4中间件与LCEL的关系
中间件工作在Agent层面,LCEL工作在Chain层面。两者可以结合使用:在中间件中使用LCEL构建的Chain来处理特定
的上下文工程任务。例如,SummarizationMiddleware内部就是一个LCEL链,用于将长对话压缩为摘要。
第六章:Memory实战——短期记忆与长期记忆
6.1短期记忆——线程级持久化
LangChain的智能体将短期记忆作为智能体状态的一部分进行管理。通过将这些内容存储在图的状态中,智能体可以
访问给定对话的完整上下文,同时保持不同线程之间的隔离。
核心概念:
概念说明
Thread(线程)一次会话中的多个交互,类似邮件中的一次对话
Checkpointer将状态持久化到数据库的组件
thread_id标识不同会话的唯一ID
启用短期记忆:在创建智能体时指定一个checkpointer:
fromlangchain.agentsimportcreate_agent
fromlangchain_core.toolsimporttool
fromlanggraph.checkpoint.memoryimportMemorySaver
@tool
defget_user_info()->str:
"""查询当前用户的信息。"""
return"用户档案:张先生,偏好中文回复。"
checkpointer=MemorySaver()
agent=create_agent(
model="gpt-4o-mini",
tools=[get_user_info],
checkpointer=checkpointer
)
#定义线程配置
thread_config={"configurable":{"thread_id":"session-1"}}
#第一轮对话
result=agent.invoke(
{"messages":[{"role":"user","content":"你好!我叫张先生。"}]},
thread_config
)
print(result["messages"][-1].content)
#"你好张先生!有什么可以帮你的吗?"
#第二轮对话(同一线程,模型记住了名字)
result=agent.invoke(
{"messages":[{"role":"user","content":"我叫什么名字?"}]},
thread_config
)
print(result["messages"][-1].content)
#"你叫张先生。"
生产环境Checkpointer选择:
Checkpointer存储方式适用场景
MemorySaver内存字典开发测试
SqliteSaverSQLite数据库单机生产
PostgresSaverPostgreSQL分布式生产
6.2长期记忆——跨会话存储
长期记忆让智能体在不同对话和会话之间存储和回忆信息。与短期记忆不同,长期记忆存储的是用户级别的信息,如
用户偏好、历史事实等。
fromlanggraph.store.memoryimportInMemoryStore
fromlangchain.agentsimportcreate_agent
#创建长期记忆存储
store=InMemoryStore()
agent=create_agent(
model="gpt-4o-mini",
tools=[get_user_info],
store=store,
)
#写入长期记忆
store.put(
namespace=("users","user-001"),
key="preferences",
value={"language":"中文","response_style":"简洁"}
)
#在智能体中检索长期记忆
memory=store.get(namespace=("users","user-001"),key="preferences")
print(memory.value)
#{"language":"中文","response_style":"简洁"}
6.3三层记忆架构
将短期记忆和长期记忆结合,形成完整的三层记忆架构:
层次存储内容存储方式生命周期
短期记忆当前线程的对话历史Checkpointer当前会话
长期记忆用户偏好、稳定事实Store跨会话
摘要记忆远期对话的压缩摘要SummarizationMiddleware当前会话
6.4生产环境注意事项
多用户隔离:使用thread_id区分不同用户的会话,使用namespace区分不同用户的长期记忆。确保一个用户的数据
对另一个用户不可见。
数据持久化:生产环境不要使用MemorySaver和InMemoryStore,它们仅在内存中存储数据,重启后丢失。应使用
数据库支持的Checkpointer和Store。
上下文窗口管理:长对话会超出模型的上下文窗口。使用SummarizationMiddleware在Token数超过阈值时自动压
缩对话历史。
第七章:完整项目实战——智能电商客服系统
7.1项目需求
构建一个智能电商客服系统,具备以下能力:
查询订单状态(工具调用)
查询商品库存(工具调用)
记住用户偏好和对话历史(短期+长期记忆)
敏感操作需人工审批(中间件)
7.2工具定义
fromlangchain_core.toolsimporttool
@tool
defquery_order(order_id:str)->str:
"""查询订单状态。当用户询问订单进度时使用此工具。
参数:
order_id:订单编号
"""
#实际实现:查询订单数据库
returnf"订单{order_id}:已发货,预计3天内到达。"
@tool
defcheck_inventory(product_name:str)->str:
"""查询商品库存。当用户询问商品是否有货时使用此工具。
参数:
product_name:商品名称
"""
#实际实现:查询库存系统
returnf"商品'{product_name}':当前有货,库存充足。"
@tool
defprocess_refund(order_id:str,reason:str)->str:
"""处理退款申请。当用户要求退款时使用此工具。
参数:
order_id:订单编号
reason:退款原因
"""
returnf"订单{order_id}的退款申请已提交,原因:{reason}。"
7.3构建Agent
fromlangchain.agentsimportcreate_agent
fromlangchain.agents.middlewareimport(
SummarizationMiddleware,
HumanInTheLoopMiddleware,
)
fromlanggraph.checkpoint.sqliteimportSqliteSaver
#短期记忆
checkpointer=SqliteSaver.from_conn_string("customer_service.db")
#构建Agent
agent=create_agent(
model="gpt-4o-mini",
tools=[query_order,check_inventory,process_refund],
system_prompt="""你是一位专业的电商客服助手。
服务准则:
1.对用户保持礼貌和耐心
2.查询订单需要用户提供订单号
3.退款操作需要用户说明原因
4.如果无法解决问题,主动建议转接人工客服
请根据用户需求,选择合适的工具来解决问题。""",
checkpointer=checkpointer,
middleware=[
SummarizationMiddleware(
model="gpt-4o-mini",
trigger={"tokens":800}
),
HumanInTheLoopMiddleware(
interrupt_on={
"process_refund":{
"allowed_decisions":["approve","edit","reject"]
}
}
),
]
)
7.4调用与验证
#用户会话
thread_config={"configurable":{"thread_id":"user-zhang-001"}}
#第一轮:查询订单
result=agent.invoke(
{"messages":[{"role":"user","content":"帮我查一下订单ORD-2026-0912的状态"}]},
thread_config
)
print(result["messages"][-1].content)
#输出:订单ORD-2026-0912:已发货,预计3天内到达。
#第二轮:追问(模型记住上下文)
result=agent.invoke(
{"messages":[{"role":"user","content":"那这个订单可以退款吗?"}]},
thread_config
)
#模型理解“这个订单”指代ORD-2026-0912
print(result["messages"][-1].content)
7.5项目架构总结
层级组件实现方式
用户接口Web/APIFastAPI或Streamlit
Agent编排create_agentLangChain1.0
工具层订单/库存/退款工具@tool装饰器
短期记忆对话历史SqliteSaver
长期记忆用户偏好InMemoryStore/数据库Store
中间件摘要/人工审批SummarizationMiddleware+HumanInTheLoopMiddleware
模型LLMinit_chat_model统一接口
第八章:避坑指南——10个常见错误及正确做法
错误1:在新代码中使用AgentExecutor
错误做法:使用AgentExecutor构建新的智能体。
正确做法:使用create_agent。AgentExecutor处于维护模式至2026年12月,新代码不应使用。
错误2:拼接字符串而非使用提示词模板
错误做法:用Pythonf-string拼接提示词。
正确做法:使用ChatPromptTemplate,支持变量注入、格式校验和可复用。
错误3:忘记在LCEL中处理数据格式转换
错误做法:chain=summarize_chain|translate_chain,前一步输出ChatMessage对象,后一步期望字典格
式。
正确做法:在中间添加数据映射步骤:chain=summarize_chain|(lambdax:{"summary":x.content})|
translate_chain。
错误4:工具文档字符串描述不清
错误做法:工具函数没有docstring或描述过于笼统。
正确做法:清晰描述工具的功能、适用场景和参数含义。描述质量直接影响模型是否能正确调用工具。
错误5:生产环境使用MemorySaver
错误做法:在生产环境中使用MemorySaver作为Checkpointer。
正确做法:使用数据库支持的持久化方案(SqliteSaver/PostgresSaver),确保服务重启后会话可恢复。
错误6:不设置thread_id导致会话混淆
错误做法:多个用户共用一个线程,对话历史混乱。
正确做法:为每个用户或每个会话分配唯一的thread_id,确保不同线程之间的隔离。
错误7:不启用LangSmith追踪
错误做法:Agent运行时没有任何可观测性,出错后无法排查。
正确做法:启用LangSmith追踪,89%的生产团队使用可观测性工具。不启用的话,调试Agent行为只能靠猜。
错误8:在开发环境开启调试模式后忘记关闭
错误做法:生产环境仍保留langchain.debug=True。
正确做法:生产环境务必关闭调试模式,避免输出敏感信息。
错误9:中间件顺序错误
错误做法:将PIIMiddleware放在SummarizationMiddleware之后,敏感信息在摘要过程中泄露。
正确做法:PIIMiddleware应放在最外层,确保在发送给模型之前先完成脱敏。
错误10:忽视上下文窗口限制
错误做法:让对话无限增长,最终超出模型的上下文窗口。
正确做法:使用SummarizationMiddleware在Token数超过阈值时自动压缩对话历史。推荐阈值设为模型上下文窗
口的60%-70%。
第九章:常见问题解答
Q1:LCEL和Agent有什么区别?
LCEL是链式组合方式,适合线性流程(A→B→C)。Agent是动态决策方式,模型根据任务自主选择调用哪些工具、
以什么顺序调用。LCEL适合流程固定的场景,Agent适合需要动态决策的场景。
Q2:create_agent和create_react_agent有什么区别?
create_agent是LangChain1.0的标准方式,从langchain.agents导入。create_react_agent是旧版LangGraph
的预构建函数,从@langchain/langgraph/prebuilts导入。v1.0中推荐使用create_agent。
Q3:短期记忆和长期记忆如何选择?
短期记忆用于记住当前对话的上下文(如同一会话中的指代关系),使用Checkpointer实现。长期记忆用于记住跨会
话的用户偏好和事实,使用Store实现。大多数应用需要同时使用两者。
Q4:如何控制Agent的工具调用成本?
三种方法:第一,在系统提示词中明确工具的适用条件,减少不必要的调用;第二,使用中间件限制工具访问权限;
第三,在生产环境使用LangSmith监控Token消耗,识别高成本调用。
Q5:中间件可以叠加使用吗?
可以。多个中间件按列表顺序执行。建议的顺序是:PII脱敏(最外层)→摘要压缩→人工审批→自定义中间件。
Q6:如何处理Agent调用工具时的错误?
LangChain1.0将工具错误处理移至中间件的wrapToolCall方法中。可以自定义中间件捕获工具调用异常,返回友好
的错误信息而非中断整个Agent执行。
Q7:LangChain1.0的包结构有什么变化?
langchain包被精简为智能体核心构建块,传统功能(如旧的Chain类)移至langchain-classic包。新代码应优先
使用langchain包中的组件。
Q8:生产环境推荐什么Checkpointer?
单机部署推荐SqliteSaver,分布式部署推荐PostgresSaver。开发测试使用MemorySaver即可。
附录:速查表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中级卫生职称-主管技师-病理学技术(中级)代码:380历年参考题库含答案详解
- DB32/T 4957-2024防汛抗旱物资储备定额规范
- 2027届云南省玉溪市元江民中高一上物理期中复习检测试题含解析
- 2026年安徽省煤田地质局第三勘探队离退办会计员公开选调笔试模拟试题及答案详解
- 2027国家管网集团共享运营公司高校毕业生招聘笔试备考题库及答案详解
- 2026年9月黄陂区“学子聚汉”工程武昌理工学院专场招聘活动笔试模拟试题及答案详解
- 2025-2026学年飞机音乐教案幼儿
- 2026年税务师税法押题密卷模拟试卷(含答案)
- 高中政治统编版(2019)必修一教学设计+教学设计
- 2026年江苏省苏教版小学语文第7册第10单元课后练习
- 国际贸易学 第五版 课件全套 金泽虎 第1-14章 导论、传统国际贸易理论-国际贸易与经济增长
- 中西医临床医学大学五年规划
- 《翰墨之情》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册
- 2025年北京市延庆区中考零模语文试题(原卷版+解析版)
- 临床生物化学检验进展
- lng应急预案演练培训
- 2020网络安全应急响应技术实战指南
- 水利工程中的淤泥处理与底泥清淤
- 大班语言《祖国到处有欢乐》
- 多级冲动式背压汽轮机课程设计说明书
- 诊断学脊柱及四肢体格检查
评论
0/150
提交评论