ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

LangChain / Middleware / Overview

LangChain / Middleware / Overview 原文链接https://docs.langchain.com/oss/python/langchain/middleware/overview中间件概述复制页面中间件提供了一种更精细地控制Agent内部行为的方式。中间件适用于以下场景通过日志记录、分析和调试来跟踪Agent行为。转换提示词、工具选择和输出格式。添加重试、回退和提前终止逻辑。应用速率限制、防护栏和PII个人身份信息检测。通过将中间件传递给create_agent来添加它们fromlangchain.agentsimportcreate_agentfromlangchain.agents.middlewareimportSummarizationMiddleware,HumanInTheLoopMiddleware agentcreate_agent(modelgpt-5.5,tools[...],middleware[SummarizationMiddleware(...),HumanInTheLoopMiddleware(...)],)Agent循环核心Agent循环涉及调用模型、让其选择要执行的工具然后在它不再调用工具时结束核心Agent循环图中间件在每个步骤之前和之后暴露钩子中间件流程图在LangGraph工作流中使用中间件中间件不是一个独立的运行时钩子在create_agent返回的已编译LangGraph内部运行。您可以将整个Agent包括中间件和所有内容作为一个节点或子图放入更大的StateGraph中并且每个中间件钩子都会继续运行。当周围的拓扑结构不仅仅是标准的“循环直到完成”时请使用此模式在路由到多个Agent之一之前对输入进行分类、并行分发工作或将Agent调用与确定性步骤拼接在一起。HumanInTheLoopMiddleware针对每个工具的.name进行匹配。在Python中使用tool装饰器的函数名称来自函数本身因此下面的键是send_email在TypeScript中键与你传递给tool({...}, { name })的名称匹配。fromlangchain.agentsimportAgentState,create_agentfromlangchain.agents.middlewareimportHumanInTheLoopMiddlewarefromlanggraph.graphimportSTART,StateGraph# 假定 read_email、send_email、classify_node 和 route 在其他地方定义。email_agentcreate_agent(modelclaude-sonnet-4-6,tools[read_email,send_email],middleware[HumanInTheLoopMiddleware(interrupt_on{send_email:True})],)graph(StateGraph(AgentState).add_node(classify,classify_node).add_node(email_agent,email_agent).add_edge(START,classify).add_conditional_edges(classify,route).compile())HITL中断、摘要、PII编辑、重试以及任何自定义钩子都会随Agent节点一起传递。请参阅使用子图以获取完整的组合模式集包括子图检查点作用域每次调用与每个线程。其他资源内置中间件探索用于常见用例的内置中间件。自定义中间件使用钩子和装饰器构建您自己的中间件。中间件API参考中间件的完整API参考。中间件集成针对Anthropic、AWS、OpenAI等特定提供商的中介软件。测试Agent使用LangSmith测试您的Agent。
返回列表