news 2026/7/29 2:05:20

【学习笔记】Harness到底是什么

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【学习笔记】Harness到底是什么

一、Harness的演化

1、提示词工程

提示词工程(Prompt Engineering),就是在不改动 AI 模型参数的前提下,通过系统化设计、测试、迭代输入文本(提示词),让大语言模型(LLM)稳定、准确、可控地输出符合预期结果的方法论与实践技能。

提示词的设计原则:

提示词为何有效?

大模型本质上是一个对上下文非常敏感的概率生成系统。所以,你给它什么身份,它更容易沿着那个身份去回答;你给它什么样例,它更容易沿着那个范式去补全;你强调什么约束,它就更容易把那部分当成重点

所以 Prompt Engineering本质上不是"命令模型”而是塑造一个局部概率空间。这个阶段最重要的能力不是系统设计,而是语言设计。

但Prompt很快就遇到了天花板。因为很多任务不是"你说清楚就行",而是“你得真的知道”。

提示词擅长任务是:

1、澄清任务
2、约束输出
3、激发模型已有能力

不擅长任务是:

1、凭空补齐缺失知识
2、管理大量动态信息
3、处理长链路状态变化

提示词解决的是表达问题,不是信息问题。

在聊天机器人时代,场景的特征是:任务短、链路短、状态少,靠"把话说清楚”就能解决问题。

但Agent火了之后,场景发生了变化,需要处理多轮对话、需要调用外部工具,需要传递中间结果,还需要根据反馈修改计划。

这时候,问题就变了:从一次回答对不对 --> 整条任务链路能不能跑通?

提示词已经无能为力了:

2、上下文工程

Context Engineering的核心:模型未必知道,所以系统必须在调用时把正确的信息送进去。Context不只是几段背景资料,从工程上讲,它是所有会影响模型当前决策的信息总和。

涉及:系统规范、安全约束、Agent结果等等。

也正因为如此,同样的模型、同样的Prompt放进不同系统里,效果可能差得非常大。
差别往往不在模型,而在上下文供给机制。

说到 Context Engineering,RAG算是一个比较典型的实践。

RAG的价值很直接: 模型参数里没有的知识怎么在运行时补进去?

但真正成熟的Context Engineering关注的远不止"检索一下”,它关心的是整条链路,如:

(1) 文档怎么切块?

(2)结果怎么排序?

(3)长文怎么压缩?

(4)历史对话怎么保存,什么时间使用原文,什么时间使用摘要。

(5)工具返回:要不要全部暴露给模型?

(6)多个Agent之间传输原文还是摘要,还是结构化的字段?

包括最近很火的Agent Skills本质上也是Context Engineering 的高级实践。

如果把所有工具、说明、参数全部一上来塞给模型效果并不佳,原因是:上下文窗口是稀缺资源,信息一多,注意力就散了

所以Skills采用的是一种特别典型的思路:渐进式披露。

但是新的问题也出现了,即使上下文信息给对了,模型也不一定能稳定执行。

你会发现,之前的努力都在解决输入侧的问题:

输入侧(Input):Prompt用于优化意图表达,Context用于优化信息供给。
但是对于执行侧(Execution):连续行动中的不确定性没有解决。

当模型开始连续行动的时候,谁来持续监督它、约束它、纠偏它。

3、Harness工程

1和2解决的是怎么让模型更能思考?3解决的是模型别跑偏、跑得稳、出了错还能拉回来。

提示词工程重点是把话说明白,上下文工程重点是把资料准备齐,Harness就是有没有一套持续观测、持续纠偏、最终验收的机制。

三者的关系如下:

二、成熟的Harness包括哪些

在一个Agent系统里,除了模型本身以外,几乎所有决定它能不能稳定交付的东西,都可以算进Harness。

一个成熟的Harness包括六层:

第一层: 上下文管理,从Harness视角去看Context。

模型能不能稳定发挥,很多时候不取决于它“聪不聪明”而取决于它看到了什么?Harness的第一职责:让模型在边界内思考

(1)角色和目标定义:模型要知道自己是谁、任务是什么、成功标准是什么。

(2)信息选择和裁剪:上下文不是越多越好,而是越相关越好。

(3)结构化组织:固定规则放哪里,当前任务放哪里,运行状态放哪里,外部证据放哪里,最好分层清楚。

因为信息一旦乱,模型就很容易:漏重点、忘约束、甚至自我污染。

第二层:工具系统

没有工具系统,大模型本质上还是一个文本预测器,会解释、会总结、会推理,但接触不到真实世界。

Harness的功用不是简单把工具挂上去,而是要解决三个问题:

(1)给模型什么工具?

(2)什么时间该调用工具?

(3)工具结果怎么返回给大模型?

第三层:执行编排,解决大模型下一步如何工作

1、理解目标-> 2、判断信息-> 3、不够就去补充 -> 4、继续分析 -> 5、生成输出 -> 6、检查输出 -> 7、不满足进行修正。

第四层:状态和记忆

Harness需要处理:当前任务状态、会话中间结果、长期记忆与偏好。

第五层:评估与观测

这一层容易被忽视。很多系统不是“生成不出来”而是"生成完了以后,根本不知道自己做得好不好"?

通常包括:输出验收、环境验证、自动测试、日志和指标、错误归因。

也就是说,系统不仅要会做,还要知道自己有没有真的做对。

第六层:约束、校验与失败恢复

成熟的Harness需要包括三部分:

三、Harness的工程实践

1、 Anthropic的工程实践

(1)Anthropic发现的第一个典型问题:长程任务的深度洞察

上下文焦虑问题:出现丢细节、丢重点;感觉装不下,着急收尾。

常用解法: Context Compaction,把历史压缩。

Anthropic发现压缩智能变短,不解决问题。

(2)Anthropic发现的第一个典型问题:自评失真

将问题拆分,分为2个独立的角色:

最关键的是,这个Evaluator不是只看代码,他会操作页面、看交互、检查结果。也就是说,它不是抽象审查,而是带环境的验证。实现“生产和验收分离”。

2、OpenAI的工程实践

(1)开发工程师的核心工作不再是写代码,而是变成拆解任务、补充能力和建立反馈。

当Agent出问题时,修复方案几乎从来不是“更努力"而是"缺了什么结构性的能力”?

(2)渐进式披露

摒弃超大的Agents.md,把这个文档变为目录页,AGENTS.md只保留最核心的索引。

(3)让大模型看见整个工程

让Agent进行自我验证。

结果就是,Agent不再是"写完代码就说做完了",而是发现问题,验证后解决问题。

(3)OpenAI不是只靠人类Code Review来给代码质量兜底

重点是这些规则不是只负责报错,而是会把"怎么修”也一起反馈给Agent。

四、小结

当任务还只是单轮生成时,Prompt 很重要;当任务开始依赖外部知识和运行时信息时
Context很关键;但当模型真的进入长链路、可执行、低容错的真实场景时,Harness几乎不可避免。

未来的重点是让大模型在真实世界里稳定工作。

参考资料:

1、https://www.youtube.com/watch?v=3DlXq9nsQOE

2、https://zhuanlan.zhihu.com/p/2014014859164026634

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/27 23:12:10

基于QtPy (PySide6) 的PLC-HMI工程项目(四)为PLC创建开放式TCP连接

一、创建连接1、在PLC的接口配置中为PLC设置IP地址:2、使用TCON创建一个连接:新建FB,命名为:上位通信,从指令库中将TCON拖入FB的网络:会自动创建一个DB块:TCON_DB。点击“开始组态”按钮&#x…

作者头像 李华
网站建设 2026/7/27 23:10:45

教你如何在Windows下AOT发布Linux下运行的桌面应用程序

教你如何在Windows下AOT发布Linux下运行的桌面应用程序 开篇:为什么我们需要跨平台桌面应用?大家好,我是你们的老朋友——技术博主。今天我们来聊一个让很多Windows开发者头疼的问题:如何在Windows环境下开发并AOT发布一个能在Lin…

作者头像 李华
网站建设 2026/7/27 23:10:42

Claude 4.8并发代码实测:竞态问题发现率与修复建议

并发bug是程序员的噩梦。代码逻辑上完全正确,单元测试全部通过,上线后高并发下数据偶尔对不上——查半天发现是竞态条件。这种bug靠肉眼review很难发现,靠测试也不一定能复现。AI能不能帮上忙?我构造了一组真实的并发场景代码&…

作者头像 李华
网站建设 2026/7/27 23:10:20

Claude Code本地部署与API集成实战:从环境搭建到批量任务处理

这次我们来看一个名为“Claude Code”的项目。从标题和网络热词来看,这很可能是一个围绕Claude AI模型(特别是其代码能力)的本地部署、安装与使用教程。对于开发者而言,能否在本地环境快速、稳定地运行一个强大的代码生成与辅助模…

作者头像 李华
网站建设 2026/7/27 23:09:11

ARM Cortex-M系统控制寄存器实战:从TM4C129XKCZAD探秘嵌入式开发核心

1. 项目概述与核心价值 在嵌入式开发的世界里,尤其是基于ARM Cortex-M内核的微控制器,我们常常会听到“寄存器编程”这个词。对于很多刚入行的朋友来说,这听起来既神秘又令人头疼——不就是对着几百页的数据手册,去设置那些十六进…

作者头像 李华
网站建设 2026/7/27 23:06:10

Gemini多模态技术实战:图片与文档智能解析

1. 项目概述:Gemini多模态技术实战 作为一名长期深耕AI应用开发的工程师,我最近在多个企业级项目中成功落地了Gemini多模态解决方案。Gemini确实如业界传闻那样,在处理跨模态任务时展现出惊人的理解能力。不同于传统单模态模型需要复杂的管道…

作者头像 李华