如何构建自定义 Agent Harness

构建有用的 Agent,核心在于定制化:将你的 Agent 连接到适合当前任务的上下文、数据和环境等。

从本质上讲,Agent 是一个模型循环调用工具,直到完成任务并返回结果:

你也可以将 Agent 定义为:agent = model + harness

Harness 是围绕模型的脚手架,负责将其与现实世界连接起来。

本文的其余部分基于以下假设:

  • Agent 的好坏取决于提供给模型的上下文质量
  • Harness 的职责是在每一步都为模型提供上下文

因此,要构建一个有用的 Agent,你需要一个 Harness,能够针对给定任务向模型精准交付正确的上下文。

  1. 基础 Harness
    =============

create_agent 是 LangChain 用于构建 Harness 的原语。传入模型、工具集和系统提示词,你就拥有了一个可运行的 Agent:

from langchain.agents import create_agent
agent = create_agent(
model="anthropic:claude-sonnet-4-6",
tools=tools,
system_prompt="you are a helpful assistant..."
)

像 Deep Agents 和 Claude Agent SDK 这样的 Harness 已经预装了带有明确设计取向的中间件(Middleware)栈:记忆、上下文管理、沙箱环境等。它们旨在让你快速构建生产级 Agent,并且在大多数场景下表现良好。但许多 Agent 需要比这些 Harness 更细粒度的定制:自定义提示词、业务逻辑、护栏(Guardrails)等。

create_agent 采取了不同的方法:它是有意极简的。我们的理念与 Pi(一个高度可配置的编程 Agent Harness)类似。create_agent 只实现了核心的 Agent 循环,并将中间件(Middleware)作为定制的原语暴露出来。

  1. 中间件:定制 Harness 的方式
    =====================

中间件在 Agent 循环的每一步进行介入:在模型调用之前和之后、在工具调用之前和之后、在 Agent 启动和销毁时。每一块中间件只处理一个关注点,并可以自由地与其他中间件组合:

中间件允许你通过几个通常协同工作的杠杆,为 Agent 添加能力:

  • 确定性逻辑(Deterministic Logic)

业务逻辑、策略执行、动态 Agent 控制,任何需要在循环特定节点触发的逻辑。这包括对 Agent 本身的运行时控制:根据任务复杂度切换模型、调整提示词、更新 Agent 的消息历史(例如在历史压缩时)。任何无法(或不应)放在提示词中的逻辑,都应该放在这里。

  • 工具(Tools)

与其直接在 Agent 上注册工具,不如让中间件来处理工具的完整生命周期:初始化、销毁、注册,并向 Agent 提供一套干净的工具集。当工具存在依赖、需要初始化或需要在运行结束时被干净地销毁时,这一点尤为重要。它还能让工具配置与其管理逻辑紧密耦合,而不是散落在 Agent 定义各处。

  • 自定义状态(Custom state)

如果你的中间件需要在各个 Hook 之间追踪状态,中间件可以通过自定义属性扩展 Agent 的状态。这使得中间件能够在整个执行过程中追踪状态(维护计数器、标志位或其他在 Agent 运行期间持久化的值),并在不同 Hook 之间共享数据。

  • 流处理器(Stream handlers)

中间件可以拦截并转换 Agent 的输出流,过滤事件、注入元数据、将不同类型的事件路由到不同的消费者。当你的技术栈中不同部分需要对 Agent 的不同行为做出反应时,这就非常有用:UI 消费 Token 增量、审计日志捕获工具调用、监控系统追踪延迟。

中间件的优雅之处在于:

  • 它允许在 Agent 循环的任意节点进行定制
  • 它将相关逻辑打包为可组合、可共享的代码单元

LangChain 为最常见的模式提供了预构建的中间件。任何针对你特定用例的定制需求,只需一个自定义中间件即可实现。由于每一块都是独立的,同一个中间件可以在组织内的每一个 Agent 中复用,从而让新 Agent 继承经过实战检验的行为,无需重复构建。

  1. Harness 能力
    =============

Harness 的职责是在正确的时间,为给定任务向模型提供正确的上下文。

下表将常见能力映射到支持它们的中间件。大多数生产级 Agent 最终会根据自身需求(它是长时运行的吗?任务有多复杂?Agent 的行为有多敏感?等)组合使用多个中间件:

能力为什么重要中间件
防止上下文溢出长会话会快速累积消息历史。如果不加干预,会超出上下文窗口限制。SummarizationMiddleware, ContextEditingMiddleware
访问和更新记忆在启动时加载相关知识,在运行结束时写回。让 Agent 能从实际使用中不断进化。FilesystemMiddleware, MemoryMiddleware, SkillsMiddleware
在环境中执行操作固定的工具集限制了 Agent 的能力。访问文件系统和执行环境可以解锁更具创造性的解决方案,通常还能带来更高的 Token 效率。ShellToolMiddleware, FilesystemMiddleware, CodeInterpreterMiddleware
委派任务子 Agent 以干净的上下文窗口处理复杂的子任务。待办列表用于追踪长时运行的进度。SubAgentMiddleware, AsyncSubAgentMiddleware, TodoListMiddleware
处理瞬时故障模型和工具会不可预测地失败。生产级 Agent 需要带退避(backoff)的重试逻辑,以及在模型不可用时进行降级。ToolRetryMiddleware, ModelRetryMiddleware, ModelFallbackMiddleware
执行策略PII 处理、合规检查、审批关卡,这些需要在每次调用时触发,无论模型做什么。它们不应该放在提示词中。PIIMiddleware, HumanInTheLoopMiddleware
引导 Agent完全自主并不总是合适的。在执行关键操作前暂停,等待人类批准、拒绝或重定向。HumanInTheLoopMiddleware
控制成本提示词缓存可以减少长时运行任务的 Token 消耗。调用限制可以防止成本无节制地累积。ModelCallLimitMiddleware, ToolCallLimitMiddleware, PromptCachingMiddleware

查看完整的预构建中间件列表,如下所示:

https://docs.langchain.com/oss/python/langchain/middleware/built-in

  1. 任务-Harness 适配度
    =================

任务-Harness 适配度(Task-harness fit)衡量你的 Harness 与实际任务需求的匹配程度:它需要的上下文、可能遇到的故障、必须执行的策略、以及它运行的环境。一个客服 Agent 的 Harness 与一个长时运行的编程 Agent 的 Harness 看起来截然不同。

我们在 LangChain 构建的每一个 Agent,包括我们的 GTM Agent、异步编程 Agent 和无代码 Agent 构建器,都是基于 create_agent 构建的,并配有针对该 Agent 使命定制的中间件栈。

最好的 Agent 不仅仅是用强大的模型构建的,而是它们是用与任务高度适配的 Harness 构建的。构建自定义 Harness 的最简单方式,就是使用 create_agent。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值