当前位置: 首页 > article >正文

别让你的 Coding Agent 瞎忙活,你最缺的可能是这套 Harness 规则

别让你的 Coding Agent 瞎忙活你最缺的可能是这套 Harness 规则团队把 Claude Code、Codex、Cursor 这类工具接进日常开发后最先暴露出的瓶颈通常在协作环节。一个简单的 bug fix 任务agent 可能会扩出十几个文件的改动。跑了一行测试它就已经在回消息里写下“问题已修复”。仓库里原本就很乱的模块它会毫无顾忌地顺着旧写法继续往下堆叠。这类情况多了大家最近开始频繁提到Harness Engineering。这个词讲的事情很具体项目要主动给 agent 准备一套能工作的配套环境。入口、规则、验证和反馈都在里面。什么是 Harness Engineering“Harness” 的字面本义是马具和缰绳。如果把大模型比作一匹能日行千里的马那 Harness 就是配套的马鞍和缰绳体系。在传统软件开发中这个词多数时候对应测试脚手架Test Harness是一套用来自动化跑输入、约束运行边界、验证结果的包裹环境。当 AI 接手项目里具体的编码任务时Harness Engineering 指的就是给 Agent 搭建的这层项目“外包围”结构。模型不管多聪明直接扔进一个有历史包袱的业务仓库里都很容易踩坑。为了让它踏实干活项目必须给它套上一层确定的工作环境明确指路告诉它该去哪找上下文哪些老旧文件动不得备好现成的验证脚本让它依靠真实的运行报错来改代码避免盲猜划定动作边界强制它在跨模块大改前必须停下来重新确认。Prompt 负责让大模型听懂你的意图Harness 负责让 Agent 在你的代码库里把事干对。先看一个极其常见的场景假设产品提了个小改动设置页里切换语言后顶部标题不会刷新很多 agent 接到这个任务后会做出这样的提交内容改了语言切换逻辑顺手调整了settingsStore.ts更换了i18n.ts里的旧接口再顺手把两个相关组件的 props 命名做了一遍统一规范最后看 diff一共改了 9 个文件。最麻烦的地方在于任务边界完全发散了你已经没法把它当成一个普通 bugfix 来做 code review。想管住这种发散靠口头嘱咐通常没用规则必须以具体形式落进项目里。最常见的做法是在AGENTS.md中写好For bug fixes: - Keep changes within the reported feature boundary. - Do not refactor nearby modules unless asked. - If you need more than 3 files, stop and explain why first. - Run: - pnpm test --filter settings - pnpm lint - pnpm typecheck这层设定非常具体上来就直接收住了 agent 的发散手脚。Harness 管的就是这些事项目全面引入 agent 后底下这几个环节就不该再依赖口头传达它该先查阅哪份指导文档平时高频跑的几个测试和检查命令是什么什么时候要先给计划再写代码提交完成前保底要过掉哪些检查仓库里哪些祖传代码目录绝不能碰触发什么条件必须直接停下等人类介入最终的验证结果依赖哪些指标不听凭它的主观回答仓库里这些要素越散agent 自由度越高猜错的几率也越大。规则只要能归拢到一个固定入口最终产出的可用度都会稳当很多。顶级团队已经靠它跑出了惊人产能如果觉得搭建这些环境太繁琐可以看看头部团队的真实数据。OpenAI 的研发团队在 2026 年初交出了一张靠 Harness 跑通的极端验证答卷他们花 5 个月构建出了一个包含内部工具和测试环节的商业应用总代码量级达到 100 万行但全组工程师没有手写过 1 行真正的逻辑代码。他们仅安排了 3 到 7 个工程师平均每人每天能吃下 3.5 个 Pull Request 的合并量。这种吞吐量的核心就是人类工程师完全调转了职能——大家不再当“语法打字员”而是全部转岗变成了“给 Agent 搭场子的人”。用他们的话说只要把环境切分、自动化跑测跟验收机制也就是 Harness架设得足够牢固Agent 便能在里面极其稳定地输出大体量代码。为什么大家开始认真聊这个前一波关于 AI 编程的探讨大部分围绕 prompt、context、RAG 和 memory。这些非常核心解决的是如何把上下文准确喂进模型里的问题。但现在的 agent 已经能处理很综合的操作读取和分析项目结构修改多个耦合模块调用外部接口自己跑测试验证接管一条独立的完整需求在这些复合动作下项目的本地环境直接决定了产出好坏。让同一个模型去改两个配置不同的仓库表现往往天差地别。差异通常出在这几个维度一边命令入口极其统一另一边靠 README、口头传达和碎块化的约定拼起来一边测试报错直观透明另一边遇到校验必须靠人工亲自去点页面测试一边明确了目录和模块的进出许可另一边连人类开发者都摸不清依赖关系遇到后面那种仓库不管大模型能力多强也只能依靠生猜。常见的三个坑1. 小任务扩成大重构你可能只提了一句简单的修一下订单页 total price 计算错误它交回来的作业却像在做全局重构修复了价格计算逻辑把格式化代码抽了出来变成formatPrice批量换了几个变量的混乱命名顺便清理了一些老旧的单测文件看起来每一步都很有道理但这一连串动作已经彻底脱离了最初的任务边界。对应的管束手段就是直接写死通用规则Bugfix tasks should prefer the smallest working change. Avoid refactoring unless the user asks for it. If the change grows, stop and summarize before continuing.这种硬性限制极其抗造对喜欢“过度重构”的 agent 非常管用。2. 谎报测试通过凡是用过 agent 的人都面对过它的“虚空汇报”已修复报错后端验证已通过界面调整完成但你一跑起来原来的问题照旧躺在原地。这通常是因为它的检查范围过于局限它只跑过了核心计算的单测并没顾及整体代码流程的集成问题它观测到调用响应是 200就笃定这块没问题彻底忽视了异常分支、容错处理和移动端的布局等边界情况项目里必须给它设定确切的完成指标pnpmtest--filterorderspnpmplaywrightteste2e/orders-total-price.spec.ts然后附加一条铁纪律Do not report completion until the targeted test passes. If you cannot run the browser flow, say so explicitly.压缩幻觉空间避免含糊其辞。3. 原样复刻老毛病很多工程师一开始没留意这个盲点agent 吸纳当前代码风格的学习能力极强。如果当前的模块充满了不规范设计它会原封不动地照着样子走随处粘贴复制的工具方法各自为营的新旧接口混用类型定义满仓库随机散落不具备统一结构的底层依赖继续堆叠Agent 很少并在这种时候跳出框外反问“是不是应该先把这些依赖规范”顺着烂摊子继续添砖加瓦就是它的默认机制。项目的基本面越乱agent 制造技术债的规模效应越惊人。优先补齐五件事引入 Harness 不需要搞大而全的方法论先落地最务实的几步。1. 设立固定的引导文档至少保证项目起步有这份清单一份AGENTS.md或者CLAUDE.md索引一套用着顺手的执行指令一个极其简单的开发工作流步骤这里的条款越少越精准越好只涵盖项目依赖及跑库跑通需要过哪些关测试或校验命令对应哪些快捷调用代码修改严厉禁止越线的那些深水区当大架构可能产生波及时要有什么申请动作示例Start: - pnpm install - pnpm dev Checks: - pnpm lint - pnpm typecheck - pnpm test Rules: - Do not edit /generated - Ask before changing shared schema - For UI bugs, run the related Playwright spec before reporting done这份核心指引确立了 agent 干活不可动摇的下限。2. 把常规嘱咐转换成硬 CI很多团队乐于把这些话大面积写进配置里注意考虑上下文兼容建议照顾代码命名的一致性多考虑补充相关的验证模块这类虚话对自动化修改的约束力极低。不如把口语要求转化成会亮红灯的 CI 校验命令{scripts:{check:pnpm lint pnpm typecheck pnpm test,check:settings:pnpm test --filter settings pnpm playwright test e2e/settings.spec.ts}}然后在对应的规范里只要求Before reporting completion, run the relevant check script.用强制的命令替代松散的话语。3. 及时透传运行反馈光看静态文件排查 bug 很容易歪曲原意。下面这些动态结果才是调试代码的核心依据Web UI 测试工具跑出来的验证过程DOM 组件报错对应的页面报错截图测试框架捕获抛出的 console error各类复杂的全链路后台日志表现解决渲染 bug别只让它死心眼地跟单测耗着。直观地喂一条看到效果的测试命令pnpmplaywrightteste2e/settings-language.spec.ts--reporterline让它真正借助反馈去打补丁输出水平能立刻上来。4. 用工具彻底截断重蹈覆辙一旦同一个 agent 在处理类似问题上接连踩空三四回别指望它自己变聪明。习惯性错引包地址、忘记类型同步排查、瞎改那些底层配置文件。这些情况就是固化防御规则的好时机。常见抓手包括设置严防死守的 pre-commit 勾子做强阻断的包限制权限收拢高频组合出来的集成 wrapper让跑飞的代码执行触发 fail-fast 尽早失败截停以常见的多包管理 monorepo 为例它非常容易跑在最上层直接发起耗时极长的全库校验。通过收拢命令去掐死这种无差别动作pnpmcheck:orders阻断它毫无意义的探索尝试自然就能降低后续不必要的人工盘查时间。5. 设立定期的“后台清道夫”面对 AI 极易产生的代码发散比如不知不觉间写乱的工具包、冗余的旧逻辑最前沿的解法是用魔法打败魔法建立后台 Garbage Collection垃圾回收机制。与其让工程师天天跟在 Agent 屁股后面修补烂代码不如直接专门起一个跑在后台的重构 Agent。只要明确了黄金规则给它设定固定的扫描频次让它专门拉分支去按节奏清理散落各处的偏离规范代码小步快跑地持续清还技术债。防范 Agent 制造屎山的最优解就是再给它套一个专门重整基建的 Harness。无法逃避的基建隐形成本做这些整顿并不能像交付一个光鲜功能那样收获快感主要心智都花在解决原有腐化问题上。补齐测试边界缺口、收敛零散冗长的代码脚手架、理顺那些年久失修的错误机制响应样样都是苦茬。但凡避开了这层基底隐形成本会快速体现在更长远的维护周期里。由于 agent 出库节奏远远大于人工打字连带带回的将是由它放大的批量返工排雷。退一万步讲Harness 工具仅仅是帮你管住了做事流程不失控。实际功能正不正确还得由具体的用例覆盖程度来最终买单。测试脚本测不到的长尾边缘问题agent 也一样会漏进线上系统。适用的边界如果业务场景对应以下画像Harness 工程基建越快铺完越舒服项目将会有大批日常小维护单扔给 agent 去扫尾内部存在高度重叠与密集的研发交互协作节点严格配备着严谨审核要求与完备流程闭环规范的仓库失误带来的代价极其敏感沉重的系统代码模块尝试通过这些智能机器去消化大量长周期宽边界的繁杂开发相对的仅仅是随手写验证脚本的实验文件、没有长臂约束的一波流独立原型小应用。不需要生搬硬套挂设枷锁。体量过小一两个人花三五分钟手动看两眼反而还更容易。现汇的一个检验办法单纯地跟跑一两个测试数据集模型的准确率百分比说服力已经严重贬损了。当各家公司接连让 AI 接管真正的产线任务业务包里遗留的标准、命令统一的集中度、校验反馈链的通畅率甚至是极其基础的代码整洁程度已经实质上决定了你能通过智能获得什么水平的回报率。大白话讲这依然是场实打实的传统软件防跑偏工作。如果你的业务仓库已经接连透出这样的危险信号处理一个小调整被发散拉扯到了多条核心主线链路变动界面上的回复永远光彩照人下个场直接启动测试立卡成麻代码评审时面对它发散过头的提交比起人工写出的错误更感觉心力交瘁仓库内过去沉淀下来的不良祖传规范成了它大规模复制的标尺那其实就在表明这套代码环境已经包不住 agent 干活的负外溢了。赶紧先把项目的 Harness 篱笆扎起来吧。参考文章OpenAI: Harness engineering: leveraging Codex in an agent-first worldWhat Is Harness Engineering? Complete Guide for AI Agent Development (2026)

相关文章:

别让你的 Coding Agent 瞎忙活,你最缺的可能是这套 Harness 规则

别让你的 Coding Agent 瞎忙活,你最缺的可能是这套 Harness 规则 团队把 Claude Code、Codex、Cursor 这类工具接进日常开发后,最先暴露出的瓶颈通常在协作环节。 一个简单的 bug fix 任务,agent 可能会扩出十几个文件的改动。 跑了一行测试…...

腾讯音乐开源的SuperSonic到底强在哪?手把手教你配置专属数据分析Agent

腾讯音乐SuperSonic深度解析:如何打造智能数据问答Agent 当企业数据量呈指数级增长时,传统BI工具已经难以满足实时决策的需求。腾讯音乐开源的SuperSonic作为新一代AIBI平台,通过融合Chat BI与Headless BI两大范式,正在重新定义数…...

Video2X问答指南:用AI无损放大视频的10个常见问题解答

Video2X问答指南:用AI无损放大视频的10个常见问题解答 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/…...

YOLO11实战:从零到一搭建高效目标检测开发环境

1. 为什么选择YOLO11? 目标检测是计算机视觉领域最基础也最实用的技术之一。从自动驾驶的车辆识别到工业质检的缺陷检测,都离不开这项技术。而YOLO系列作为目标检测领域的"常青树",一直以速度快、精度高著称。最新推出的YOLO11在保…...

想找好用的建筑机器人?专业度是核心考量

在建筑行业智能化转型的浪潮中,建筑机器人正从“概念产品”变为“生产力工具”。面对市场上众多的品牌,如何选择一家专业、可靠、能真正解决问题的供应商,成为许多施工企业决策者的核心关切。本文将结合具体数据和案例,为您提供一…...

Windows系统优化终极指南:AtlasOS完整解决方案深度解析

Windows系统优化终极指南:AtlasOS完整解决方案深度解析 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atla…...

保姆级教程:在Ubuntu 20.04上用Docker搞定GPUStack,让Atlas 300I Duo推理卡跑通LLM

保姆级教程:Ubuntu 20.04Docker部署GPUStack全流程指南(Atlas 300I Duo专版) 最近在折腾Atlas 300I Duo这块推理卡的朋友应该都深有体会——虽然硬件性能强悍,但要让它在Ubuntu系统上顺利跑起大语言模型,光驱动和依赖就…...

避开RK3568 MPP开发的那些坑:V4L2缓冲区管理与实时码流稳定性优化实战

RK3568 MPP开发实战:V4L2缓冲区管理与码流稳定性优化指南 在嵌入式视频处理领域,RK3568凭借其强大的多媒体处理能力成为中高端项目的首选方案。但当我们真正将其应用于工业视觉、安防监控等对稳定性要求严苛的场景时,开发者常常会遇到令人头疼…...

告别网络烦恼:Stanza 1.5.1英文语言模型离线安装保姆级教程(Anaconda环境专用)

深度解析Stanza 1.5.1英文语言模型离线部署:Anaconda环境全流程实战 在企业内网或学术研究环境中,我们常常面临无法直接访问外部资源的情况。这时,掌握关键工具的离线部署能力就显得尤为重要。今天我们将全面剖析自然语言处理工具Stanza在受限…...

从‘碎饼干’到‘稳如狗’:机器视觉定位项目避坑指南与SAME原则实战

从‘碎饼干’到‘稳如狗’:机器视觉定位项目避坑指南与SAME原则实战 去年接手某食品包装线改造项目时,产线主管指着满地饼干碎屑苦笑道:"这哪是智能生产线,简直是饼干粉碎机。"这个价值两百万的视觉定位系统&#xff0c…...

【具身智能实战】从零部署LeRobot-ALOHA:仿真环境搭建、机械臂标定与GPU高效训练避坑指南

1. 环境准备与基础配置 第一次接触LeRobot-ALOHA项目时,最头疼的就是环境配置。这个开源项目依赖的库版本非常新,和很多现有环境存在兼容性问题。我花了三天时间反复折腾,总结出一套稳定可靠的配置方案。 首先需要准备Ubuntu 20.04或22.04系统…...

智能日程管理系统:OpenClaw+Qwen3-32B自动安排会议时间

智能日程管理系统:OpenClawQwen3-32B自动安排会议时间 1. 为什么需要自动化日程管理 每天早晨打开邮箱,总能看到十几封会议邀请混杂在各类邮件中。手动核对时间、检查日历冲突、协调参会人可用性——这些重复性工作消耗了我至少30%的工作时间。直到上个…...

西门子触摸屏报警处理:除了弹窗,用这个‘非中断式’方法让产线更丝滑

西门子HMI非中断报警系统设计:让产线效率提升30%的实战方案 在快节奏的工业现场,每一次操作中断都意味着产能的隐形流失。传统HMI报警弹窗就像突然按下的暂停键——操作员必须停下手中任务去点击确认,而流水线上的产品仍在流动。这种矛盾在汽…...

Mac新手必看:保姆级教程教你用阿里源加速Homebrew安装(附一键脚本)

Mac新手必备:用阿里云镜像极速部署Homebrew全攻略 刚入手MacBook的你,可能正摩拳擦掌准备搭建开发环境。但当你在终端输入brew install python后,进度条却像蜗牛爬行——这不是你的网络问题,而是Homebrew默认从GitHub拉取资源时&a…...

别再踩坑了!Win10下从零编译Mamba-SSM 2.2.2的保姆级避坑指南(含修改好的源码包)

Win10平台Mamba-SSM 2.2.2终极编译指南:避开90%开发者踩过的坑 在深度学习领域,Mamba-SSM因其高效的状态空间模型架构而备受关注。然而,当开发者们兴冲冲地想在Windows 10平台上搭建这一环境时,往往会遭遇各种"玄学报错"…...

STM32串口环形队列实现与优化

## 1. STM32串口环形队列实现方案### 1.1 环形队列数据结构设计环形队列(Ring Buffer)是嵌入式系统中处理串口数据流的经典方案,其核心数据结构定义如下:c #define RING_BUFF_SIZE 256 // 根据实际需求调整缓冲区大小typedef str…...

Path of Building完整指南:5个步骤打造你的流放之路终极角色构建

Path of Building完整指南:5个步骤打造你的流放之路终极角色构建 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building是一款强大的离线角色构建工…...

论文降AI率全流程教程:检测→分析→降AI→复查四步走完全指南

论文降AI率全流程教程:检测→分析→降AI→复查四步走完全指南 很多同学面对"论文AI率超标"这个问题时,第一反应是慌,第二反应是随便找个工具处理一下,第三反应是发现没降下来,更慌了。 这篇文章要解决的&…...

iOS证书(.p12)和描述文件生成避坑指南:从App ID创建到真机测试UDID添加

iOS证书与描述文件生成全流程解析:从核心概念到实战避坑 第一次接触iOS应用打包的开发者,往往会在证书和描述文件这一关卡住。明明按照教程一步步操作,却总是遇到各种报错——"证书无效"、"描述文件不匹配"、"设备未…...

Python金融数据获取终极指南:用mootdx高效处理通达信股票数据

Python金融数据获取终极指南:用mootdx高效处理通达信股票数据 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化投资和金融数据分析领域,获取稳定、免费的股票数据一直…...

macOS Monterey安装OpenClaw:对接Qwen3-32B镜像全记录

macOS Monterey安装OpenClaw:对接Qwen3-32B镜像全记录 1. 为什么选择OpenClaw与Qwen3-32B组合 去年冬天第一次接触OpenClaw时,我正被重复性的文件整理工作折磨得焦头烂额。当时试过几个自动化工具,要么功能太局限,要么需要把数据…...

RLT火了,但拧螺丝的真问题真是它解决的吗?

先说结论RLT的核心价值在于“分工”:让笨重但泛化好的VLA做感知和粗规划,让轻快但专精的小网络做在线微调,这是一种计算和样本成本的折中架构。它没有解决数据收集的根本成本,而是优化了“数据利用率”和“策略更新效率”&#xf…...

大模型核心技术概述:Token、Prompt、Tool与Agent的关系详解

你是不是经常听人聊AI时蹦出这些词:LLM、Token、Context、Prompt、Tool、MCP、Agent?听着好像都认识,但真要问“这到底是啥”,又有点懵。今天把这些词一个个拆开揉碎,讲清楚它们到底是啥、有啥用、又是怎么串起来的。 …...

Python AI部署效能革命(Cuvil编译器内核逆向工程实录)

第一章:Python AI部署效能革命的底层驱动力Python 已成为 AI 模型开发的事实标准,但其在生产环境中的部署效能长期受限于解释执行、全局解释器锁(GIL)及内存管理机制。近年来,一场静默却深刻的效能革命正在重塑 Python…...

【LaTex】花体字应用全指南:从基础到高级的字体美化技巧

1. LaTeX花体字入门:为什么需要字体美化? 第一次用LaTeX写论文时,我被导师退回的文档上画满了红圈:"数学符号要用黑板粗体"、"集合论部分需要手写体"、"正文变量用意大利斜体"。当时完全不明白为什…...

卸载软件后,“打开方式”里仍有残留怎么办?我是这样在 Windows 里彻底清理掉的

有时候我们明明已经把某个软件卸载干净了,但右键文件时,“打开方式”列表里依然还能看到它。 这种情况看起来不严重,但确实很烦:一方面影响整洁,另一方面也容易让人误以为软件没有卸载干净。我最近就遇到了这个问题&am…...

别再死记硬背了!用矢量网络分析仪实测PA的P1dB和OIP3(附详细步骤与曲线解读)

矢量网络分析仪实战:PA的P1dB与OIP3测量全流程解析 在射频放大器设计与测试领域,P1dB和OIP3是两个无法绕开的性能指标。许多工程师虽然能背诵定义,但面对实验室里的矢量网络分析仪(VNA)时却无从下手。本文将彻底改变这…...

百川2-13B模型微调实战:提升OpenClaw中文邮件处理准确率

百川2-13B模型微调实战:提升OpenClaw中文邮件处理准确率 1. 问题背景与挑战 去年在尝试用OpenClaw自动化处理公司内部邮件时,我发现了一个棘手的问题:当邮件内容涉及复杂业务术语或非标准表达时,基于通用大模型的OpenClaw经常出…...

responder使用教程

Responder是Kali Linux中一款强大的网络欺骗工具,主要用于在局域网中捕获各种网络协议的认证信息,特别是NTLM哈希。它通过响应LLMNR(链路本地多播名称解析)、NBT-NS(NetBIOS名称服务)和mDNS(多播…...

嵌入式开发硬件知识体系与核心技能解析

嵌入式开发中的硬件知识体系构建1. 嵌入式开发的技术架构1.1 嵌入式系统技术分类现代嵌入式系统开发主要分为两大技术方向:嵌入式硬件开发:聚焦电路原理设计、PCB布局及硬件系统集成嵌入式软件开发:包含驱动层开发和应用程序开发两个层级1.2 …...