Harness Engineering(驾驭工程)初识

文章目录

    • [核心概念:Harness 是什么](#核心概念:Harness 是什么)
    • [三大支柱:Harness Engineering 关注什么](#三大支柱:Harness Engineering 关注什么)
    • 如何落地:一个可执行的实践路径
      • [第 1 步:先设计环境,再谈 Agent](#第 1 步:先设计环境,再谈 Agent)
      • [第 2 步:把"需求"改写成 Agent 可执行计划](#第 2 步:把“需求”改写成 Agent 可执行计划)
      • [第 3 步:把规范变成"硬约束"](#第 3 步:把规范变成“硬约束”)
      • [第 4 步:构建闭环,而不是"更好的 Prompt"](#第 4 步:构建闭环,而不是“更好的 Prompt”)
      • [第 5 步:把每次事故都转化为 Harness 进化](#第 5 步:把每次事故都转化为 Harness 进化)
    • 团队层面的角色变化

Harness Engineering(驾驭工程)本质上是:在人类几乎不写代码的前提下,围绕 AI Agent 搭建一整套"环境 + 约束 + 工具 + 反馈闭环",让 Agent 能长期、可靠地完成软件开发工作。它把工程师的重心从"写代码"转移到"设计和优化 Agent 所处的环境"。 cloud.tencent

核心概念:Harness 是什么

  • Harness = 约束 + 工具 + 文档 + 反馈循环,是围绕 AI 编程 Agent 搭建的完整运行环境,而不是某个单一框架或库。 juejin
  • 在 OpenAI 的实践中,人类工程师不再直接写代码,而是通过系统设计、仓库结构、CI 规则、文档和工作流设计来"驾驭" Codex 这类 Agent 完成整个项目。 openai
  • LangChain 等社区把公式写得很直白:Agent = Model + Harness,模型只是大脑,Harness 提供状态、工具执行、反馈循环和可执行约束,模型才真正变成能干活的 Agent。 developer.aliyun

一个简单类比:在传统工程里你雇的是"程序员",在 Harness Engineering 里你雇的是"学徒 + 车间",你主要在设计车间(环境和规章),而不是亲自拧每一颗螺丝。

三大支柱:Harness Engineering 关注什么

主流文章会把 Harness Engineering 拆成几块,但实质上围绕三件事:上下文、约束、反馈。 cnblogs

  1. 上下文工程(Context Engineering)

    • 不再是"给 Agent 一份 1000 页文档",而是设计持续更新的知识库、动态上下文(代码仓、运行日志、导航状态等),并精细控制能塞进模型的那点上下文预算。 cloud.tencent
    • 代码库结构、文档目录、计划/决策日志、技术债清单,都被当作 Agent 的"操作说明书",并受版本控制,Agent 通过读取这些文件理解当前项目状态。 openai
  2. 架构约束与"围栏"(Guardrails)

    • 把架构/规范写进可执行规则,例如在 Linter、CI 脚本、依赖检查工具里强制"service 不能依赖 controller""禁止直接访问某些模块"。 aicoding.csdn
    • 一旦 Agent 提交的代码违规则,CI 会直接失败,错误信息本身又回流给 Agent 作为新上下文,引导其修正代码,形成自我矫正。 aicoding.csdn
  3. 垃圾回收与反馈回路

    • 每当 Agent 犯错,就改进 Harness,让同样错误"以后再也犯不了",这就是 Hashimoto 对 Harness 的朴素定义:持续把经验固化进环境。 yage
    • 通过测试、Linter、本地可观测性(日志/指标查询)、自动回归和 Agent 自己运行代码+看报错+修复,形成"写 → 跑 →看 → 改"的闭环,并尽量不打断到人类。 developer.aliyun

如何落地:一个可执行的实践路径

下面给你一个可以在团队里逐步落地的实践路线,从"有个会写代码的 LLM"走向"有 Harness 的 Agent 团队"。 juejin

第 1 步:先设计环境,再谈 Agent

  • 统一代码仓结构:明确模块边界、依赖方向,把架构约束写成 README 和机器可读规则(如 eslint/tslint、import-lint、自定义 check 脚本)。 cnblogs
  • 建立基础工具链:
    • 必须有:单元/集成测试、Linter、格式化工具、基础 CI 流水线。
    • 尽量有:可在本地或 CI 中由 Agent 调用的"运行/测试/打包/部署"命令,既能自动执行,又能产生日志和报错文本。 developer.aliyun

第 2 步:把"需求"改写成 Agent 可执行计划

  • 用"深度优先工作法":把大目标拆成模块,再拆成"设计 → 编码 → 测试 → 评审"等小步骤,每一步都有清晰输入、输出和验收标准。 openai
  • 这些计划作为文本文件(例如 plans/feature-x.md)放进仓库并版本化,Agent 通过读取计划文件知道当前任务和上下文,而不是靠零散对话记忆。 cnblogs

第 3 步:把规范变成"硬约束"

  • 对所有"口头约定/架构原则",问一句:能不能变成 Linter 规则、依赖图检查或者 CI 阶段脚本,让违规代码根本合不了并自动给出修复提示? aicoding.csdn
  • 对常见错误模式,给 Agent 提供专门的"纠错工具":如运行特定测试、调用日志查询、执行静态分析,结果作为新上下文返回,让 Agent 学会"自己查错"。 developer.aliyun

第 4 步:构建闭环,而不是"更好的 Prompt"

  • 默认流程应是:Agent 写代码 → 自动跑测试/Linter → 根据报错自己修 → 再次提交;只有它多次失败或涉及业务判断时,才升级到人工兜底。 openai
  • 部署可观测性栈(哪怕是简化版):让 Agent 能调用接口查看服务日志和指标,实现"自己排查问题",而不是每次出错都问人类。 cnblogs

第 5 步:把每次事故都转化为 Harness 进化

  • 每当 Agent 出非预期行为,优先问:"这能不能通过补充文档、规则或工具,让它以后再也犯不了?"而不是"让它这次写仔细一点"。 yage
  • 具体手段包括:
    • 增补架构文档、最佳实践示例,放入仓库固定位置。
    • 增加新的 Linter/测试用例,专门卡掉这类错误。
    • 为该类问题写专门"调试脚本"供 Agent 调用。 juejin

团队层面的角色变化

  • 工程师角色:从写业务代码,转向设计仓库结构、规则体系、计划与工作流、工具和观测能力,是更偏"系统设计 + 工程管理"的角色。 yage
  • 人类介入方式:从"审每一行 PR",变成"只兜底 Agent 搞不定的少数复杂判断",大部分流水线工作都在 Harness 里自动发生。 openai
  • 能力要求:反而更需要深厚的系统直觉,才能知道哪些约束要硬编码进环境,哪些自由度留给 Agent,这也是文章里说的"学徒缺口"问题。 hub.baai.ac
相关推荐
AI精钢2 小时前
在生产环境进行 vibe coding 的正确方式
大数据·人工智能·ai·agent·claude·devops·cursor
biuba10243 小时前
18 openclaw事务管理:确保数据一致性的最佳实践
开发语言·ai·c#·编程·技术
岁岁种桃花儿3 小时前
AI超级智能开发系列从入门到上天第九篇:SpringAI搭建本地知识库
数据库·人工智能·ai·llm·智能体
LQQrk智能排产物联网规则引擎3 小时前
你说的,就是“规则”(JVS-Rules规则引擎)
人工智能·决策树·ai·规则引擎·风控·jvs-rules·jvs
zzb15804 小时前
Claude Agent SDK 深度剖析:依赖、权衡与架构选择
人工智能·python·ai
程序员鱼皮4 小时前
我的免费 OpenClaw 零基础教程,爆了!
ai·程序员·编程·ai编程·openclaw
做萤石二次开发的哈哈5 小时前
如何实现高效多屏视频巡检?萤石开放平台多屏视频巡检产品详解
ai·智能体·萤石
chushiyunen5 小时前
lora和qlora的区别(概念版)
ai
涛tao讲道5 小时前
涛的天道观【其九十六】AI工具的危与机
人工智能·ai·涛tao讲道·涛tao悟道·涛的天道观