面试官问你:“什么是 Harness Engineering?”如果你回答“就是给 Agent 写一份规则文件呗,类似 AGENTS.md”,恭喜你,出门右拐回家等通知吧。
为什么?
因为规则文件只是 Harness 的冰山一角。Harness Engineering 管的是 Agent 的整个运行时环境——能做什么、不能做什么、做错了怎么自我修正。

哈喽大家好,我是二哥呀。今天用 3 分钟,带你搞懂 Harness Engineering。
面试官问这道题,考三层:第一,它和提示词工程、上下文工程有什么关系;第二,Harness 具体包含哪些核心组件;第三,为什么管好上下文还不够,还需要Harness(爱马仕)。
好,接下来给你满分回答,照着背就完事了。
提示词工程管的是“怎么说”——怎么写出让模型理解的指令。
上下文工程管的是“知道什么”——在正确的时间给模型提供正确的信息。
Harness Engineering 管的是“能做什么、不能做什么”——Agent 的整个运行时环境和安全边界。
说白了,就是“每次 Agent 犯错,就工程化一个方案,让它不再犯同样的错。”
Harness 这个词的本意是马具。LLM 就像一匹有力量有速度的千里马,但没有缰绳和马具的话,它想去哪就能去哪,越狱了也没人能管得住。Harness 就是缰绳加马鞍加围栏,让你的骏马在正确的赛道上全速奔跑。
具体包含什么?四个核心组件。
第一,验证循环。Agent 写完代码不能直接提交,要先自动化跑测试,发现问题自动修复。改完再验,通过了才算完成。
第二,错误恢复。Agent 调了一个不存在的工具怎么办?自动重试,换一个正确的。进入死循环了怎么办?超时打断,回到上一个稳定状态。
第三,权限控制。删文件、推代码、执行系统命令,这类危险操作要么人工确认,要么有严格的策略限制。Agent 再聪明,也不能让它不经你同意就把代码推到生产环境。
第四,状态管理。Agent 跑到一半挂了——网络断了、token 用完了——能从断点恢复,不用从头再来。
Claude Code 就是一个典型的 Harness。它有权限模型、有 Hooks 系统、有上下文自动压缩、有 Sub-agent 隔离。每一个组件都是经过大量错误倒逼出来的。
面试官如果继续追问:Harness Engineering 和 Agent 是什么关系?
告诉他——一个公式:Agent = 模型 + Harness。
拿 Claude Code 举例。模型是 Opus,负责推理——理解你的需求、决定调哪个工具、写代码。但光有模型,Claude Code 跑不起来。
你输入一句【帮我重构这个模块】,背后发生了什么?Harness 先把 CLAUDE.md、对话历史、工具定义组装进上下文。模型读完,决定先读源码,Harness 检查权限——读文件,自动放行。模型改完代码想执行删除命令,Harness 拦住——危险操作,弹出确认。你同意了,执行完,Harness 自动跑测试。测试挂了,Harness 把报错喂回模型,模型自己修。修完再跑,通过了,这一轮才算结束。
整个过程,模型只管思考和生成,Harness 管剩下的所有事——上下文组装、权限拦截、验证循环、错误回传等。模型是大脑,Harness 是身体。没有身体,大脑再强也只是一个 idea。
最后一句口诀——提示词管嘴巴,上下文管大脑,Harness 管手脚——三件齐活了,Agent 才靠谱。
这道题你学废了吗?想解锁更多 Agent 面试题的源码级拆解,点赞关注,我是二哥,下期见!
回复