AI Harness 到底是个啥?6 张图给你讲明白

news2026/4/12 14:30:51
最近AI 圈有个很火的词叫 Harness原意是马的“挽具”或“缰绳”。我之前曾写文章简单介绍过这个概念。OpenClaw 火了你准备好和它一起工作了吗但今天看到 Sebastian Raschka 博士的一篇文章它对 Harness 的解释堪称全面且透彻。我之所以想和大家分享这篇文章的核心观点是因为作者没有纸上谈兵。他亲手编写了一个极简版的 Harness 框架 Coding Agent并在实践中提炼出了 Harness 的 6 大核心组件。文章图文并茂地解释了 Harness 究竟是什么以及它为何如此重要。原文链接https://magazine.sebastianraschka.com/p/components-of-a-coding-agentLLM、Agent、Harness 啥关系在深入探究之前我们得先理清几个容易混淆的概念。千万别把大语言模型LLM和智能体Agent画等号。我们可以用“造汽车”来打个通俗的比方大模型LLM它是汽车的“发动机”。早期的 GPT-3、GPT-4核心能力是“文字接龙”。推理模型Reasoning Model它是一款“带涡轮增压的超级发动机”。在开口说话前它会在脑子里先打草稿、自我验证即 Thinking 过程。Agent智能体它是这辆车的“自动驾驶系统”。Agent 是一个循环Loop。当你下达“帮我修个 Bug”的指令时Agent 会自己做决策第一步看哪段代码第二步用什么工具报错了怎么纠正什么时候完成任务并交差。Harness框架这是围绕着发动机和司机打造的“汽车底盘、方向盘和仪表盘”。没有它Agent 就无法与真实世界交互。它负责帮模型读取本地文件、运行终端命令、管理各种工具。LLM / Agent / Harness 关系图大模型再聪明如果被关在网页聊天框里它也看不见你本地电脑里的项目结构。LLM Agent Harness 这套系统的出现彻底改变了游戏规则。模型提供“引擎”算力Agent 循环驱动问题被迭代解决而 Harness 提供的运行时支持则像“水电管道”一样构成了底层基础设施。Coding Harness 编程 Harness解剖 Harness 的六大核心组件当我们谈论 Harness框架时通常是指包裹在模型外围的那层软件系统。这套系统就像个“大管家”负责组装提示词、提供可用工具、追踪文件状态、应用代码修改、运行终端命令、管理权限、缓存提示词前缀、存储记忆等一系列脏活累活。在如今的大模型时代相比于在网页端干聊正是这层框架决定了我们绝大部分的 AI 体验。接下来我们就以 Raschka 博士的“迷你编程智能体”为例盘点 Coding Harness 的 6 大核心组件。Mini Coding Agent: https://github.com/rasbt/mini-coding-agent1. 实时上下文如果你直接在聊天框里对 AI 喊一句“帮我修一下测试代码的报错”。这就好比拉来一个对业务一无所知的程序员帮你看代码。结果肯定是满头大汗这是什么项目用的什么框架在哪报的错大模型也是如此。如果不知道你的代码仓库长什么样它就只能“瞎蒙”。但在 Harness 系统里情况完全不同。当你下达指令的瞬间Harness 会在后台迅速扫描代码库收集“情报”项目类型、文件目录排布、最新的代码提交记录等。随后它会自动生成一份简明的工作区摘要连同你的指令一起打包递给大模型。这样一来AI 每次接到新指令时就拥有了全局视野不再是大脑一片空白。2. 提示词缓存赋予 AI 全局视野后随之而来的是一个致命的体验问题如果每次对话AI 都要把项目从头到尾重新读一遍结果必然是又慢、又卡、还极其烧钱。为了解决这个问题Harness 引入了提示词的结构化设计与缓存复用。它会对信息进行“干湿分离”稳定前缀Stable Prefix包含不常变动的信息如 Agent 的人设、系统指令、可用工具列表、项目基础概况等。这部分会被系统缓存起来。动态状态Session State包含最新的聊天记录、AI 的短期记忆以及你刚刚下达的指令。每次对话大模型真正需要重新计算和处理的只有那一点点“动态状态”从而大幅提升了响应速度并降低了 API 成本。3. 工具用大模型写过代码的人都经历过这种痛点AI 甩出一段代码和几行终端命令你得自己复制粘贴、自己运行一旦报错还得把鲜红的报错信息再复制回网页问它。当跨入 Harness 领域时最大的质变发生了AI 长出了“手和脚”能亲自在你电脑里搜文件、改代码、跑测试。Harness 会提前给 AI 准备一个预设好的“工具箱”例如查看文件、读取文件、执行终端命令、修改代码。你可能会担心“让 AI 直接在我的电脑上运行命令万一它操作失控把数据库删了怎么办”别慌Harness 不仅给了 AI 手脚还给它戴上了“紧箍咒”。当 AI 提交行动申请后指令并不会立刻执行Harness 会在后台进行严密的拦截检查“这是已知的合法工具吗” “提供的参数格式正确吗” “这个高危操作需要用户点击授权吗” “它要访问的文件路径是否超出了当前工作区 (Workspace) 的限制”这种看似限制 AI 自由的机制反而换来了极高的系统安全性和可用性。4. 上下文管理在多轮编程对话中Agent 会不断读取长文件、接收冗长的工具输出和报错日志。AI 的“临时记事本”很容易被塞满这在专业上称为 Context Bloat上下文膨胀。如果不加节制不管多大的窗口分分钟都会被撑爆。Harness 主要是通过两套动作给 AI 的记忆“做瘦身”动作一暴力裁剪 (Truncation)Harness 会像无情的剪刀手将过长的日志或文档强制截断。它绝不允许单篇长篇大论霸占 AI 宝贵的脑容量。动作二去重与摘要 (Deduplication Summarization)如果在解决一个 Bug 的过程中AI 反复查看了同一个核心代码文件好几次Harness 会合并这些多余的读取记录。它还会将完整的历史记录浓缩成更适合放入提示词的摘要。真正的高手设计往往就藏在这些控制上下文长度的枯燥细节里。5. 会话记忆 (Session Memory)既然历史记录被精简了万一以后要查“旧账”怎么办这就引出了 Harness 核心的底层机制存储维度的双轨记忆结构。成熟的 Harness 系统会极其聪明地将记忆拆分成两本截然不同的“账本”完整对话记录 (Full Log)你输入的指令、系统吐出的每一行长日志、AI 的每一句回复都会被一字不落地记录在本地硬盘。这本账本是为了“留底”也是为了重建提示词 提供近期历史的准确快照。工作记忆 (Working Memory)这本账本极其精简没有啰嗦的运行日志只记录当前任务的关键情报。它会随着工程的推进不断擦除和更新侧重于保持任务的连贯性 防止 AI 在漫长的 debug 中“迷失自我”。6. 子智能体 (Subagents)顶级 Harness 还祭出了最后一件大杀器子智能体Subagents。简单来说就是让主模型学会“当老板”。当主 Agent 推进主线任务时突然遇到一个棘手的边缘问题比如某个冷门的测试跑不通。过去它只能停下核心工作去翻遍几十个文件找答案。但在 Harness 框架下主 Agent 会动态召唤出一个“子智能体”“你去把那个测试跑不通的原因查清楚只向我汇报结果。” 主 Agent 继续思考核心逻辑小弟在后台吭哧吭哧翻日志。关键在于Harness 必须对子智能体实施严格的权限控制Bounded。如果小弟没有被限制权力它可能会为了修一个边缘 Bug一顿乱改毁了你的核心代码或者它自己又去召唤一堆“孙子 Agent”导致系统无限套娃。因此Harness 在召唤小弟时会给它戴上极其严格的“镣铐”。小弟继承了老大的一部分上下文但权限被死死锁住通常处于“只读”模式或受限沙箱中。老大负责运筹帷幄把控主线小弟负责跑腿死磕支线细节。总结到这里我们一口气拆解了 Harness 的 6 大核心部件。当然在真正的系统源码中这六个组件是互相穿插、紧密咬合的。为什么我们要费这么大劲去搞懂这些底层逻辑因为一旦你在脑海中建立起这套高维度的“心智模型”。你会深刻地明白真正能让大模型从“聊天玩具”蜕变成“生产力工具”的正是外面这层看不见、摸不着的 Harness 系统。它补足了大模型的短板赋予了 AI 视野、记忆、手脚以及团队协作的能力。最近文章列表[1] Claude Code 竟然暗藏了 187 种“思考”状态[2] 手搓了一个 Skill让 AI 画出我心目中的流程图[3] 智能体 Skill 入门教程附下载地址[4] 两年踩坑换来这条 AI 学习路径[5] 难怪 Skill 不好用来看看 Google 总结的 5 种 Skill 设计模式[6] AI 是怎么学会唠嗑的系统提示词又是什么[7] Claude 控诉中国 AI 组团“偷家”到底什么是“大模型蒸馏”[8] 价值 3000 元的 AI 内部培训课今天我把它“开源”了[9] 拆解 AI 的大脑看懂谷歌“弱智”提示词[10] 日均30万亿拆解 AI 时代的“计量单位” Token[11] 2 分钟讲透为什么 AI 会胡说八道附避坑指南[12] AI 的回复怎么完美转 Word只要看懂这个格式 Markdown效率翻倍[13] 学习 AI 的最大障碍不懂大模型背后的灵魂[14] Vibe Coding 提示词指南内附编程提示词速查表[15] 为什么你的 AI 用得没别人好AI 真正的核心不是提示词而是逆向工程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2509891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…