跳到正文
This is Oscar
返回

Middleware 如何让你自定义 Agent Harness

原文标题:How Middleware Lets You Customize Your Agent Harness
原文链接:https://blog.langchain.com/how-middleware-lets-you-customize-your-agent-harness/

Middleware 如何让你自定义 Agent Harness

作者: Sydney Runkle 发布日期: 2026 年 3 月 26 日 阅读时间: 5 分钟

Hero Image


引言

Agent harness 将语言模型连接到其环境中,使其能够执行实际操作。在构建特定应用解决方案时,“Agent Middleware”允许开发者在扩展 LangChain 和 Deep Agent 框架的同时,保持针对特定用例的自定义能力。

什么是 Agent Harness?

Agent 代表一个围绕模型组织的系统,需要连接到环境、数据源、记忆系统和工具。Agent harness 就是促成这些连接的组件。

其基础结构很直接:“一个 LLM,在循环中运行,调用工具。“LangChain 的 create_agent 提供了这一核心抽象。

Agent Loop Diagram

为什么要自定义 Agent Harness?

不同的应用需要不同的方法。虽然基本自定义——如系统提示词和工具选择——可以直接集成到 create_agent 中,但修改核心执行循环需要更深层的架构变更。

Middleware 解决了需要”在模型执行前始终运行某个步骤”或”始终检查工具输出中的某些内容”的场景。

什么是 Agent Middleware?

Middleware 暴露了一系列 hook,使你能在每个执行阶段前后运行自定义逻辑:

Middleware Diagram

可用的 Hook:

Middleware 组件可以灵活组合,允许策略性地搭配使用。LangChain 为常见模式提供了预构建的 middleware,同时开发者可以通过继承 AgentMiddleware 来实现自定义。

Middleware 示例

业务逻辑与合规

像 PII 脱敏这样的确定性策略不能仅依赖于提示词。PIIMiddleware 实现了 before_modelafter_model hook,在模型输入、输出和工具响应中对敏感信息进行掩码、删除或哈希处理。

动态 Agent 控制

运行时重塑能力包括基于状态注入工具、在任务中途切换模型以及更新提示词。LLMToolSelectorMiddlewarewrap_model_call 中运行一个快速语言模型,从注册表中识别相关工具,减少上下文开销。

上下文管理

SummarizationMiddleware 实现了 before_model hook,当对话历史超过 token 阈值时进行摘要。扩展变体使用 wrap_tool_call hook 将冗长的工具交互卸载到文件系统存储中。

生产就绪

ModelRetryMiddleware 实现了 wrap_model_call hook,用重试处理器包裹 API 调用,支持配置重试次数、退避因子和初始延迟,用于处理速率限制问题。

工具集

ShellToolMiddleware 实现了 before_agentafter_agent hook,在 agent 循环周围初始化和销毁 shell 资源,同时注册 shell 工具供模型使用。

Deep Agents 案例研究

Deep Agents 是一个完全构建在 create_agent 之上的综合 agent harness,具有一套有主见的 middleware 栈。关键组件包括:

可以在 Deep Agents 之上叠加额外的 middleware 以进一步自定义。

为什么 Agent Middleware 很重要

随着模型的进步,某些 middleware 功能——摘要、工具选择、输出裁剪——最终可能会集成到模型本身中。然而,基本的自定义需求仍然存在:确定性策略执行、生产环境护栏和业务特定逻辑仍然属于 harness 层。

自 LangChain v1 以来,middleware 使团队能够专业化分工、将业务逻辑与核心代码解耦,并促进组织级别的逻辑复用。

开始使用

基础方式: 使用 create_agent 尝试 middleware

健壮的基础: 使用 create_deep_agent 尝试 middleware

自定义开发: 贡献指南


引用


分享到:

上一篇
维阿:非洲王者的孤独与荣光
下一篇
Vibe Physics:AI 研究生