尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Agent = Model + Harness:为什么说Harness是决定Agent成败的关键?

Agent = Model + Harness:为什么说Harness是决定Agent成败的关键? “模型负责思考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包含六个可治理的组件组件符号职责执行循环EObserve-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 执行出错工具执行可能出现各种错误缺乏依赖需要的库或环境不存在逻辑错误工具本身的逻辑有问题缺少参数模型调用工具时没有提供足够的参数上下文过长任务累积的上下文导致模型上下文长度被撑爆……工具如何设计这其实是属于工程问题从广义上来讲我们pythonjavaC 等语言中的方法、接口、对外暴露的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是否稳定、可复现在具体指标上业界常用passk在k次尝试中至少成功一次的概率pass^kk次尝试全部成功的概率用哪个指标取决于应用场景——写代码能找到一个可行解就够了用passk如果是面向用户的客服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%免费】
返回列表