模型负责思考,Harness负责让这份思考变得可理解、可协作、可验证、可长期运行。


过去一年,AI Agent从技术概念走向工程落地。但很多人仍然把注意力集中在“用哪个模型”上——换更强的模型、写更长的提示词,仿佛模型就是Agent的全部。

但实际开发过Agent 的人,大概率会认识到,这并非事实。

一个在业界已形成共识的公式是:Agent = Model + Harness。模型负责“思考”,Harness负责让这份思考变得有用。长程Agent对Harness的依赖,超过它对任何单个模型的依赖。更强的模型并不会自动变成更可靠的Agent服务。

更直白地说:Harness——而不仅仅是模型——决定了Agent的性能表现。有研究显示,仅通过重新设计Harness(模型保持不变),就能在SWE-bench上实现从6.7%到68.3%的性能飞跃。同一个基础模型,放在不同的Harness里会产生截然不同的结果。

那么,Harness到底是什么?并没有一个统一的定义,但大家的共识就是Harness 是智能体的基础设施。

在这里,我参考一篇Agent综述论文的表述,将Harness形式化为一个一级架构对象 H = (E, T, C, S, L, V)——即执行循环(Execution Loop)、工具注册(Tool Registry)、上下文管理(Context Manager)、状态存储(State Store)、生命周期钩子(Lifecycle Hooks)和评估接口(Evaluation Interface)。

本文将以此六元组为认知地图,来展开本篇的内容。


01

Model和Harness,各自的分工是什么?

在深入讨论之前,先厘清概念。

Harness是模型之外的一切——每一行代码、每一个配置、每一段执行逻辑,只要不是模型本身,都属于Harness。一个裸模型不是Agent,只有当Harness赋予它状态、工具执行、反馈循环和可执行的约束时,它才成为一个Agent。

一个完整的Harness包含六个可治理的组件:

组件 符号 职责
执行循环 E Observe-Think-Act循环、终止条件、错误恢复
工具注册 T 类型化的工具目录、路由、监控、Schema验证
上下文管理 C 什么信息进入上下文窗口、压缩、检索、记忆分层
状态存储 S 跨轮次/会话的持久化、崩溃恢复
生命周期钩子 L 认证、日志、策略执行、 instrumentation
评估接口 V 行动轨迹、中间状态、成功信号

模型负责理解和生成,但理解和生成是需要上下文(Context)的。而上下文是动态的——任务初始需要高质量上下文来保证成功率,任务进行中上下文需要持续更新。谁来组织这些上下文?谁来控制模型能看到什么、输出什么格式?谁来决定什么时候该停止、什么时候该继续?

这些都是Harness的责任。具体来说,上下文管理(C)决定什么信息进入模型视野;执行循环(E)控制模型的运行节奏;工具注册(T)定义模型能调用什么工具;状态存储(S)保证状态不丢失;生命周期钩子(L)提供可观测性和治理能力;评估接口(V)判断任务是否成功。

这六个组件共同构成了让模型真正“跑起来”的完整系统。


02

搞定上下文,也就搞定了Agent

“搞定上下文,也就搞定了智能体”,虽然这句话有点过头,但是不可否认,在当前阶段,上下文管理就是智能体开发的最核心的任务。

用户的任务刚开始时,模型面对的是一个空白的上下文窗口。初始上下文的质量,直接决定了任务的初始成功率。

2.1 初始上下文的组成

初始上下文是Agent的“工作台”,通常包括:

  • 用户当前任务描述
  • 系统提示词(定义角色、行为边界、输出格式)
  • 相关文件内容或项目规则 【文件系统】
  • 工具说明与定义(T)
  • 运行环境信息(系统时间、操作系统版本、可用命令等)

注意,这里没有“对话历史”——因为这是任务的初始状态,还没有任何历史交互发生。上下文中的所有信息都来自Harness对当前任务的理解和准备。

这里需要特别注意:上下文不是越多越好。真正难的是选择。比如让Agent修复支付回调问题,它应该优先看到支付入口、订单服务、状态流转等相关模块,而不是整个代码目录。

2.2 短长期记忆:上下文的分层管理

随着任务推进,上下文不断膨胀。Harness需要引入记忆分层的机制来管理这一挑战。记忆通常分为两个层次(仿照人的记忆模式):

  • 短期记忆(Short-term Memory):当前任务会话的上下文,直接保存在上下文窗口中。这是模型在做每一步决策时能直接注意到的全部信息。它包含当前任务的执行轨迹、最近的工具调用结果、尚未完成的目标等。
  • 长期记忆(Long-term Memory):跨越多个会话或任务的重要信息。包括语义记忆(项目规范、代码架构知识)和情景记忆(过往的错误经验、用户偏好、历史决策记录)。

Harness中的上下文管理(C)需要解决三个核心问题:

  • 什么信息从短期记忆沉淀到长期记忆?——比如任务完成后,Harness可以自动生成一段任务总结和关键经验,写入长期记忆库
  • 什么时候触发这个沉淀?——可以在每个任务结束时触发,也可以在上下文接近窗口限制时触发压缩和转移
  • 如何从长期记忆中检索最相关的信息回灌到当前上下文?——这需要检索增强(RAG)机制,根据当前任务意图从长期记忆库中召回最相关的片段

简单来说:短期记忆是模型正在“看着”的信息,长期记忆是模型需要时能被Harness“找回来”的信息。上下文管理的职责,就是在两者之间做动态的流转和调度。

2.3 上下文管理的核心原则

上下文管理(C)的核心工作可以归结为一句话:决定Agent每一步看到什么,以及哪些暂时看不到但可以被随时调取。

好的Harness会让模型逐步探索,而不是一次性吞下所有信息。信息应该“按需注入”,只把当前步骤真正相关的片段送入窗口,控制token预算。

这意味着Harness需要做好四件事:

  • 识别:哪些信息对当前任务至关重要?
  • 组织:如何把这些信息以模型最容易理解的方式呈现?
  • 动态调整:随着任务推进,哪些信息需要保留在短期记忆中、哪些可以压缩或归档到长期记忆?
  • 检索:当需要历史信息时,如何从长期记忆中快速准确地召回?

03

Loop、静态工作流还是动态工作流?

有了上下文,接下来要考虑的是执行机制——Agent以什么方式运行?

执行循环(E)是Harness的引擎。这里主要有几种选择:

  • Loop(循环):最基础的Agent执行模式。模型被包裹在一个while循环中,每一轮:调用模型 → 模型决定调用工具 → 执行工具 → 将结果返回给模型 → 继续下一轮。Loop把“迭代”变成了一等公民。
  • 静态工作流(Static Workflow):预定义好的步骤序列,每一步做什么、调用什么工具都是固定的。优点是确定性高、可控性强,缺点是缺乏灵活性。
  • 动态工作流(Dynamic Workflow):首先设计整个任务的行动指南,然后执行。这是最灵活的方式,但也最考验Harness的设计能力。

实际工程中,Agent Loop已经成为主流范式。它的核心主张是:别再死磕Prompt怎么写,去设计一个能让AI自己转起来的“循环”。

在Loop模式下,上下文是根据当前状态动态拼出来的——上一轮失败日志、当前文件树、最近N条调用记录,全自动拼进下一轮Prompt。

这又牵涉出了很多需要思考问题:

  • 前一轮上下文就撑爆了,这一轮怎么办?
  • 前一轮上下文虽然没有撑爆,但是已经接近了窗口阈值,怎么办?
  • 上一轮没有顺利执行,卡住了,怎么办?
  • ……

04

当“第一步”完成之后

当智能体完成第一轮任务,我们还需要在上下文中加入工具调用的结果。

工具调用的结果可能有几种情况:

4.1 顺利执行

工具顺利执行并返回了输出。但这里有一个关键问题:“顺利执行”不等于“正确答案”。工具可能成功运行了,但结果质量不达标。

4.2 执行出错

工具执行可能出现各种错误:

  • 缺乏依赖:需要的库或环境不存在
  • 逻辑错误:工具本身的逻辑有问题
  • 缺少参数:模型调用工具时没有提供足够的参数
  • 上下文过长:任务累积的上下文导致模型上下文长度被撑爆
  • ……

工具如何设计?

这其实是属于工程问题,从广义上来讲,我们python,java,C 等语言中的方法、接口、对外暴露的API 、APP 本身、智能体本身都可以称之为工具。工具设计的难点是:

1)要决定哪些任务给工具?这涉及到LLM 与工程的边界决策。

2)工具的输出是什么?这又回到了上下文管理的范畴。


05

多轮运行之后

任务运行很多轮之后,Agent面临的挑战变得更加复杂。

5.1 生命周期钩子(L):可观测性与治理

目前的进展如何?每一个部分的运行状态如何?

这是可观测性(Observability)的问题。生命周期钩子(L)提供了认证、日志、策略执行和 埋点能力。

通过生命周期钩子,开发者可以在Agent运行的各个阶段介入——在模型调用前、工具执行后、每一轮结束、会话创建或销毁时。通过Hooks,开发者可以:

  • 记录每一轮的输入输出
  • 监控工具调用的成功率
  • 追踪上下文大小的变化
  • 在关键节点注入额外的逻辑

5.2 状态存储(S):中断与恢复

运行多轮之后突然中断,如何记住当前的状态以便恢复?

这就涉及到状态存储(S)。Agent Loop每次运行会产生一组消息数组。如果不保存,进程退出就什么都没了。

Harness需要通过状态存储机制把对话历史持久化到磁盘,下次启动时通过sessionId来恢复。中间状态管理不好,Agent就很容易出问题——工具结果和前面的工具调用对不上、某一条消息被错误裁剪、服务重启后无法恢复之前执行到哪一步。

状态存储与上下文管理中的记忆机制相辅相成:状态存储(S)负责“在哪存、怎么存”的持久化技术问题,上下文管理(C)负责“存什么、取什么”的内容策略问题。两者共同保证了Agent在长时间运行中的连续性和可靠性。

5.3 安全性:Harness的治理责任

如何保证安全?不要把不该删的文件删了。重要操作要不要用户确认?频率如何?

这是Agent Harness中最不能忽视的一环。成熟的Harness必须处理好权限和安全问题:

  • 作用范围:Agent只能访问哪些目录?能不能读上级目录?能不能访问用户主目录?

  • 操作分级:通常采用 “拒绝 → 允许 → 询问”的优先级顺序:

  • 安全操作(如读文件、查看状态):自动执行,无需确认

    1)普通操作(如修改文件):询问用户确认

    2)高危操作(如rm -rf、部署命令、数据库迁移):禁止或强制人工审批

    3)改动可追踪:每次修改了哪些文件、改了什么、能不能回滚

  • 用户变更保护:用户已经改过但未提交的文件,Agent不能随便覆盖

生命周期钩子(L)中的策略执行机制,正是实现这些安全控制的关键入口。


06

成功了吗?

最后一个关键问题是:评估接口(V)——如何判断任务是否成功?

这可能是整个Harness中最容易被忽视、却又最重要的部分。

6.1 评估为什么难?

Agent与传统软件有本质不同——非确定性、Prompt即源代码、依赖会自己动。传统QA框架在Agent身上会系统性失效:

  • 非确定性:同样的输入,每次调用的输出在统计分布上是不同的。即使temperature设为0,输出仍然不能保证完全一致。
  • 没有确定的pass/fail:传统软件有单元测试和明确的通过/失败标准,Agent没有。开发者甚至无法用一行assert语句来验证一个多步推理的过程是否正确。

6.2 如何评估?

评估Agent不能只看最终答案,还要看路径、工具、证据、安全、成本和可恢复性。

常见的评估维度包括:

  • 正确性(Correctness):输出是否准确、真实
  • 完整性(Completeness):是否完整覆盖核心要点
  • 可靠性(Reliability):是否稳定、可复现

在具体指标上,业界常用:

  • pass@k:在k次尝试中至少成功一次的概率
  • pass^k:k次尝试全部成功的概率

用哪个指标取决于应用场景——写代码能找到一个可行解就够了,用pass@k;如果是面向用户的客服Agent,必须保证每次都稳定,就要看pass^k。

没有评测的Agent只能算demo。评估不是事后检查,而应该是从设计之初就嵌入Harness的一环。


07

Harness即产品

回顾整个思考框架,我们可以清晰地看到:

Agent = Model + Harness,模型只承担其中一部分——对于复杂的Agent产品,模型可能只完成20%的工作,剩下80%、让产品持续可靠工作的基础,是Harness。

这正是“Harness即产品”的含义:在大模型应用里,团队真正在设计和迭代的产品,往往不是一个个具体的功能,而是这一整层Harness本身。

当你开发Agent时,不妨带着这张以 H = (E, T, C, S, L, V)为核心的认知地图:

E:我的执行循环是什么?Loop还是工作流?为什么?

T:我的工具如何被描述、发现和调用?

C:我的上下文如何被组织、压缩、检索?短长期记忆如何协同?

S:我的状态如何跨轮次持久化?中断了能恢复吗?

L:我如何知道Agent的每一步在做什么?安全边界在哪里?

V:我怎么知道任务成功了?

回答好这六个问题,你的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%免费

在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐