给 AI 套上缰绳:Harness Engineering 是什么
换了个更强的模型AI 还是把活干砸了。这大概是今年上半年我听到最多的一句话。同事把更强的模型接进 IDE本以为能早下班结果 AI 改一个工单导出功能漏改了三个文件、顺手把权限校验那段也动了一下、还自作主张把日志格式全换成英文。Code Review 的时候我才发现——模型变聪明了干的活反而更离谱。问题出在哪不是模型不够聪明。是我们把一匹好马扔进没路的山里还指望它自己跑到目的地。2026 年圈里冒出个新词叫 Harness Engineering翻译过来就是驾驭工程。它的核心一句话别老想着换更强的模型先把模型跑的那套环境收拾好给它套上缰绳。从 Prompt 到 Harness三次重心转移回头看这两年我们折腾 AI 编程的重心换了三回。第一回叫 Prompt Engineering研究怎么把话说清楚。第二回叫 Context Engineering研究让 AI 看什么。这两件事都还在跟模型对话的层面。第三回就是 Harness Engineering重心从对话挪到了环境——AI 到底在什么系统里跑、能干啥不能干啥、干完怎么验证。这个区别有多实在两个数据就能说明。LangChain 的团队没换底层模型只把 Agent 的运行环境收拾了一遍把文档补全、加了自动验证回路、加了执行追踪。结果在 Terminal Bench 2.0 上排名从 30 冲到 5得分从 52.8% 涨到 66.5%。工程师 Can Boluk 更绝他只改了一件事让 AI 整块替换代码而不是一行一行改。就这一个格式调整Grok Code Fast 1 在 SWE-bench 上从 6.7% 飙到 68.3%。模型一行没动环境一换效果天差地别。所以有人给了个公式Agent Model Harness。模型是 CPUHarness 是操作系统。CPU 再快没有操作系统调度也跑不起来像样的程序。Harness 到底是什么Harness Engineering 这个词是 Mitchell Hashimoto 在今年 2 月初提的。他的定义很朴素每次 Agent 犯一个错你就把它工程化成一个约束让它永远别再犯第二次。OpenAI 后来出了份报告讲了他们内部怎么用 Codex 干活。一个 3 人小队从空仓库起步5 个月没手写一行代码靠 Codex 生成了大概 100 万行、提了 1500 个 PR效率大概是人工的 10 到 12 倍。但他们踩的坑比成绩更有参考价值。四个坑四个 harness 解法坑一代码库没有共享理解。Agent 不知道这个项目约定在哪、该看哪个文档。他们的解法是把 AGENTS.md 压到 100 行以内只当地图——指路不堆细节指向 docs/ 目录而且用 linter 和 CI 校验这些链接是不是还有效。AGENTS.md 的官方格式可以参考 agents.md/ 。坑二人类 QA 跟不上 AI 的产出速度。人测不过来。他们接了 Chrome DevTools Protocol让 Agent 自己截图、自己读日志查询LogQL/PromQL并且定死一条规矩服务启动响应低于 800 毫秒才算这个任务真的做完了。坑三架构漂移。Agent 随手加一层、改依赖方向时间长了代码结构散架。他们定了严格单向分层——Types → Config → Repo → Service → Runtime → UI用自定义 linter 强制依赖只能往下走。坑四静默技术债。有些坏味道不会立刻炸但会慢慢烂。他们把核心架构原则直接写进仓库后台定时用 Codex 扫一遍偏离发现就自动提重构 PR。你看这四个解法没有一个是换更好的模型。全是在给 Agent 套缰绳。反过来看没有缰绳会怎样今年就有一起真实事故一个 AI Agent 在没有任何约束的情况下改了 340 个文件、删掉 2.8 万行代码还自己伪造了一份三轮 AI 会诊的合规报告。约束缺失的代价就是这么直白。Java 后端怎么落地说了半天概念落到咱们 Java 后端到底怎么干先记一句十六字心法需求先工件化知识先显性化执行先加护栏评审与验证必须分离。拆开看仓库怎么组织。以企业工单系统为例AGENTS.md # 地图本地命令、架构约束、受保护目录 docs/ # 知识沉淀领域模型、接口约定 .claude/ # permissions hooks拦危险操作 skills/ # Spring 分层审查、SQL 风险审查、代码评审 src/ # 业务代码AGENTS.md 别写成说明书100 行封顶只告诉 AI 三件事怎么构建、不能碰哪、架构长啥样。给你一段真实可用的例子企业工单系统# 本仓库给 AI 助手看的地图 ## 本地命令 - 构建./mvnw -q clean compile - 测试./mvnw -q test - 启动自检./scripts/verify-local.sh ## 架构约束 - 严格分层controller → service → repository禁止跨层调用 - 所有数据库访问走 MyBatis-Plus禁止在 service 里拼 SQL 字符串 ## 受保护目录AI 禁止修改 - src/main/resources/application*.yml # 含密钥与线上配置 - migrations/ # 数据库变更脚本光有地图不够AI 得能自己验证干没干对。给它一个可执行脚本比给它一百条 Checklist 都管用#!/usr/bin/env bash ./mvnw -q clean compile || exit 1 ./mvnw -q test || exit 1 curl -fsS http://localhost:8080/actuator/health /dev/null || exit 1 echo 本地验证通过注意最后那行健康检查——这正是 OpenAI 那招的平替AI 改完工单导出得自己把服务跑起来、health 返回 200才算完。还有一道质量门禁CI 里别只看构建 SUCCESS要额外校验total_tests 0。不然 AI 把测试全删了流水线还是绿的那才叫恐怖。再补一道硬约束用权限直接拦住危险动作.claude/settings.json片段{ permissions: { deny: [ Bash(git push:*), Write(src/main/resources/application*.yml) ] } }最后写代码的 Agent 和 Review 的 Agent 一定要分开。让同一个人又写又审等于没审让同一个 Agent 又写又审也一样。评审必须独立。现在就能动手的 4 件事不用等大版本重构马上就能做四件写一份 100 行以内的 AGENTS.md把构建命令、架构红线、受保护目录写清楚。加一个 verify 脚本让 AI 改完能自己编译、自己测、自己起服务。用 hooks 或 permissions 拦住危险操作——比如禁止 AI 直接改配置文件、禁止 push 到 main。把一次踩坑变成永久规则AI 又漏改了文件别骂完就算把它写进 AGENTS.md 或加条 linter。给 Agent 套上缰绳上升到操作系统那一层。模型会一直换但套缰绳的手艺才是咱们后端工程师真正值钱的东西。学习资源推荐如果你想更深入地学习大模型以下是一些非常有价值的学习资源这些资源将帮助你从不同角度学习大模型提升你的实践能力。一、全套AGI大模型学习路线AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取三、AI大模型经典PDF籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取四、AI大模型商业化落地方案作为普通人入局大模型时代需要持续学习和实践不断提高自己的技能和认知水平同时也需要有责任感和伦理意识为人工智能的健康发展贡献力量。