滴滴一面:怎么做好 Harness?大部分面试者的回答只停留在怎么用,没有回答的更系统 现在这个时代嘛“Vibe Coding”氛围感编程特别火相信大家身边不少开发者都已经习惯了拉上 AI Agent 就是一顿狂刷代码。你只要把 Prompt 写好了代码那不就哗哗出来了嘛。但是呢话说回来你真的管得住 AI 吗说实话很多时候确实是这样代码是刷出来了可坑也跟着一块儿埋进去了分层不对的情况就是那种本该写在 Service 层的逻辑结果被硬生生塞进了 Controller 里面。格式混乱的问题也挺常见缩进和命名五花八门的看了真的逼死强迫症。还有异常乱抛的一个 try-catch 就想包揽天下要不就是直接把异常给吞掉了。再就是没有测试跑不跑得通全凭运气更别说什么单测覆盖率了。“光靠提示词Prompt根本管不住 AI Agent。坑往往比功能还要多。”在最近某大厂的一面真题里面试官就直接抛出了一个挺前沿的考点就是问 Harness Engineering安全绳/缰绳工程具体怎么做。这道题现在已经是大模型相关岗位面试的经典必考题之一了但是呢据面试官反馈说大部分面试者的回答都只是停留在怎么用这个层面——说说自己配过 ESLint、写过 .cursorrules然后就没有然后了很少有人能讲出一套完整的、成体系的分层方法论出来。那今天我们就来把这套方法论给讲透了帮你在回答这道题的时候能够更有深度一些。什么是 Harness Engineering简单来说的话呢Harness Engineering 就是给 AI Agent 去搭建一套工程约束。在传统开发里面我们靠的是规范和人肉 Code Review 来约束程序员的。但是到了 Agent 时代呢我们就需要把这些规范变成硬规则做成一套让 AI Agent 绕不过去的反馈闭环才行。这套闭环的核心其实就是八个字能跑、能查、能拦、能改。[ AI Agent 生成代码 ] ── 1. 跑得起来 ── 2. 查得出问题 ── 3. 拦截不合格 ── 4. 逼它改过 (循环自我修正)这绝不是说你在 Prompt 里面反复唠叨请注意代码格式必须写单测就行了因为 Agent 这东西它很容易就转头就忘了。我们要做的是用硬性门禁让它在一遍遍的失败和报错当中去进行自我修正直到把合格的代码给写出来。核心框架Harness 工程约束的三层修炼如果你用过 AGENTS.md 或者 .cursorrules 的话呢那恭喜你你其实已经迈入了 Harness 的大门了入门版的。但这还只是怎么用这个层面。真正能让面试官眼前一亮的回答是能够往下做得更加扎实的三层约束1. 第一层架构级约束落在既定架构里AI 最容易放飞自我的地方就是系统架构了。架构级约束的本质说白了就是Agent 写出来的东西必须落在你定好的框架里面才行。统一技术栈这一块比如说 Java 项目就必须统一使用 Spring Boot。统一分层呢就是要严格限制 Controller - Service - Mapper 的调用链路。统一异常与返回体就是规定好全局异常处理的机制和统一的 JSON 返回格式。统一依赖边界就是严格禁止模块之间的循环依赖和越权调用。举个例子来说吧你让 Agent 帮你加一个用户注册接口如果没有架构约束的话呢它可能就直接在 Controller 里面写数据库操作了手动拼 SQL返回体格式跟其他接口完全不一样。但是你要是有了架构级约束——比如在 AGENTS.md 里面写明所有业务逻辑必须在 Service 层Controller 只做参数校验和调用统一返回 Result包装类——那 Agent 生成的代码就能跟项目里其他接口长得一样了你就不用去逐行搬家了嘛。2. 第二层质量级约束格式、规范、覆盖率把质量指标做成铁律一层一层地卡死。这里呢就需要祭出各种自动化静态分析和检测工具了配在本地或者 CI 阶段都行工具名称约束维度作用说明Spotless统一格式化强制规范代码缩进、空格、换行格式不对的话直接编译就失败了。Checkstyle编码规范约束命名风格、类大小、魔术常量这些。SpotBugs缺陷拦截自动扫描代码里面常见的空指针、资源未关闭这些潜在的 Bug。JaCoCo覆盖率门禁强制单测门禁比如说单测覆盖率必须达到 90%不然就不给通过。ESLint / Prettier前端规范前端质量约束同样也不能落下把语法和样式都给卡死了。举个例子来说明一下Agent 写了一段代码里面 catch (Exception e) {} 直接就把异常给吞掉了——这种写法人眼一看就知道是坑但是 Agent 自己往往意识不到有什么问题。你要是配上 SpotBugs 之后呢这类空 catch 块资源未关闭的问题就会被自动标红构建直接就失败了Agent 拿到报错信息之后才会老老实实地把异常处理给补全了。JaCoCo 覆盖率门槛也是同样的道理没有它的话 Agent 大概率就只写业务代码不写测试了你卡了 90% 的门槛呢它就必须把边界情况的单测也给补上才行。3. 第三层流程级约束CI/CD 门禁反馈闭环工具都有了那怎么才能让 Agent 乖乖听话呢这就需要流程级门禁了。不要等到人肉 Review 的时候才发现问题。要通过 CI/CD比如 Jenkins、Git Hooks来构建自动化流水线Agent 提交代码之后就触发流水线了。然后编译器去进行编译Spotless 去做格式化检查Checkstyle 去做静态扫描JaCoCo 去运行单测。任何一步要是挂了的话呢流水线就直接中断了并且把编译报错、测试未通过的这些堆栈信息作为上下文自动反哺给 Agent。然后逼迫 Agent 根据这些报错信息去进行自我修正直到流水线全部变绿通过为止。举个实际的例子Agent 提交了一版代码Git Hook 触发了本地检查Checkstyle 报出了 3 处命名不规范的问题JaCoCo 显示覆盖率只有 72%。这些报错不需要人工去转述直接把日志喂回给 Agent 就行了它就能照着报错逐条去修——改命名、补单测直到门禁全部变绿了才允许合入。整个过程当中工程师几乎就不用插手了真正做到把重复修正的工作交给 Agent 来扛。有没有 Harness差别有多大我们可以用一张图来直观对比一下两种开发模式下的长远走向没有 Harness 约束的情况是这样的现状就是 AI 刷代码确实挺快的但是技术债呈指数级飙升越滚越大。结局呢就是后期维护成本变得极高项目最终就沦为没人敢动的屎山了。引入 Harness 约束之后呢现状就是 AI 生成代码之后在编译器、测试报告、质量门禁、人工审查的这些层层关卡当中被一逼再逼。结局就是 Agent 在编译和测试当中进行自我修正最终产出符合高标准的企业级代码。终局思考Vibe Coding 时代程序员的活是什么在 AI 这个时代呢开发者的定位正在悄悄地发生变化。我们需要记住下面这三个关键点工程规范比以前更严了——正因为代码生成变得简单了嘛入口的把关就必须比以前更加严苛才行不然的话垃圾代码就会泛滥成灾了。重复的修正工作呢大部分都可以交给 Agent 来扛了——程序员不再需要机械地去改格式、补单测、修小 Bug 了把门禁日志丢给 Agent 让它自己去改就行了。工程师的核心价值——其实就是去设计和维护好这套 Harness也就是安全绳工程。未来的优秀工程师不再是那个写代码最快的人了而是那个能为 AI 搭建完美运行轨道的轨道设计师。这也是为什么面试官会在这道题上格外挑剔——他想看到的不是我用过什么工具而是我能不能设计出一套完整的、能够自我闭环的约束体系。学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%免费】