当前位置: 首页 > news >正文

LangChain / Middleware / Overview

原文链接:https://docs.langchain.com/oss/python/langchain/middleware/overview

中间件

概述

复制页面

中间件提供了一种更精细地控制Agent内部行为的方式。中间件适用于以下场景:

  • 通过日志记录、分析和调试来跟踪Agent行为。
  • 转换提示词、工具选择和输出格式。
  • 添加重试、回退和提前终止逻辑。
  • 应用速率限制、防护栏和PII(个人身份信息)检测。

通过将中间件传递给create_agent来添加它们:

fromlangchain.agentsimportcreate_agentfromlangchain.agents.middlewareimportSummarizationMiddleware,HumanInTheLoopMiddleware agent=create_agent(model="gpt-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_agent=create_agent(model="claude-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。
http://www.jsqmd.com/news/1336932/

相关文章:

  • 专业PCB逆向分析:用OpenBoardView高效处理.brd文件的完整指南
  • 【JVM原理详解】36-JIT编译器概述-C1与C2与分层编译
  • 2026年8月福建省莆田市广电单宽带办理全流程避坑攻略 - 找卡家园
  • 2026年江苏固液分离热门厂家哪家强?看这里就对了 - 品牌优推
  • Unity字体批量替换:Editor脚本自动化解决Arial缺失与中文显示问题
  • Ubuntu 20.04 Samba服务重启与故障排查实战指南
  • 基于大语言模型与安全策略的智能家居Agent系统设计与实现
  • 外贸网站建设注意避坑指南:新手卖家必看的外贸网站建设注意事项与运营策略全解析
  • 大模型面试实战:从Agent、RAG到微调,100问构建核心知识体系
  • 图像锯齿与摩尔纹:从奈奎斯特采样到抗锯齿技术的视觉瑕疵全解析
  • Flink与Elasticsearch实时数据处理实战指南
  • 2026年8月潍坊市移动300M宽带怎么报装 - 找卡家园
  • 2026年8月福建省宁德市移动宽带我的真实踩坑与实操 - 找卡家园
  • 从零理解感知机:神经网络基石与线性分类实战
  • 科研工具祛魅:理性选择与高效应用指南
  • 郑州空气能品牌推荐:【芬尼】中原优选 - 18102756859
  • 分形哲学与状态驱动:构建非线性业务流程的工程实践
  • DrugCLIP:基于对比学习的蛋白质-分子跨模态检索与虚拟筛选新范式
  • AI Agent开发实战:从零构建智能体,掌握LangChain与CrewAI核心技能
  • 锂电供电高效降压新选择|尚芯维尔 CN8050,6V/5A 同步降压 DC-DC 实力出圈
  • 2026 年新消息:日照专业的草坪护栏供货厂家联系方式,小区里不起眼的它,居然能藏着这么多养护小秘密? - 品质体验官
  • 2026 年淅川评价高的可移动电动推拉棚销售厂家深度剖析,下雨天还敢户外聚餐?这玩意儿居然能把大半个场地罩得严严实实-杰昇电动雨棚 - 鉴选官
  • 2026知名的ai网站建设公司有哪些,你都认识吗~
  • AI替代论新解:从任务解构到价值捕获的认知迭代
  • 分布式系统一致性协议:从心跳同步到状态复位的Python模拟实现
  • Oracle与达梦数据库元数据查询实战:表结构、同义词与存储过程源码解析
  • Plus Jakarta Sans 字体完全指南:免费开源字体快速上手教程
  • 2026 年 8 月新发布:益阳大型的工地防护护栏厂家怎么联系,你绝对想不到,它竟能让工地的安全事故降九成-耀邦丝网 - 行业严选官
  • 2026实测AI写论文工具,6款打分哪个靠谱
  • 2026年8月福建省南平市移动宽带怎么办理 - 找卡家园