V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kenshinhu
0.01D
V2EX  ›  程序员

如何 实践 Harness 工程?

  •  
  •   kenshinhu · 10 小时 6 分钟前 · 3163 次点击
    看了好几个内容:
    https://openai.com/zh-Hans-CN/index/harness-engineering/
    https://github.com/walkinglabs/learn-harness-engineering/blob/main/README-CN.md
    還有最近 宝玉也有和原作有争论的内容
    https://baoyu.io/blog/2026-04-13/ai-first

    这几个内容后,該怎样实践 Harness ? 有别于 specs, vibe 这種 现有些项目可以尝试进行 Harness 工程?

    对于后端 API 服务的话我可以理解怎样做,我认为 有需求,让 AI 處理需求,在提交 PR 时可以做单元测試,再加个定时器做全量的测試,

    但是像 前端 项目这種又是怎样做的?

    带着好奇心恳请教各位 V2 的大大 ORZ
    37 条回复    2026-04-15 19:51:45 +08:00
    mooncakeSec
        1
    mooncakeSec  
       10 小时 0 分钟前
    核心目标是通过约束验证保证质量吧,因为人的注意力在 ai coding 中是无法提升的瓶颈,要放弃 review
    kenshinhu
        2
    kenshinhu  
    OP
       9 小时 56 分钟前
    @mooncakeSec 我看到的实践都是哪里是卡在人类的就用 AI 介入,如果不能完全介入就是人类和 Agent 协助。
    从工具层来看還是需要人类精心安排吧?
    momogzp
        3
    momogzp  
       9 小时 53 分钟前
    https://github.com/shareAI-lab/learn-claude-code/blob/main/README-zh.md
    这个, 看完理解了一些 AI 的操作. 然后在此基础上可以更容易搞一些, 比如 subagent,task 啥的.
    kenshinhu
        4
    kenshinhu  
    OP
       9 小时 49 分钟前
    @momogzp 对的,这个也有看过,可以对整个 Agent 的處理流有更深入的了解。同时我在想,如果现在有新的业务要做新的项目,該怎样可以让 Agent 在预期来完成需求(而不是有 人类介入 vibe 这種)
    NoobNoob030
        5
    NoobNoob030  
       9 小时 39 分钟前
    我之前遇到了跟你一样的困惑: https://www.v2ex.com/t/1202411

    我在阅读了许多相关文章和项目之后,看的云里雾里,似懂非懂。然后我带着模糊的概念,直接进入实战,尝试各种框架( superpowers ,gstack ,gsd ,openspec ,omo ......),用过才知道咸淡。

    我建议直接实践一个项目,只是问和看却不做,很难构建出清晰的认知
    glacer
        6
    glacer  
       9 小时 38 分钟前
    还是 TDD 那一套,要将需求边界、测试用例确定后再进行开发
    kenshinhu
        7
    kenshinhu  
    OP
       9 小时 32 分钟前
    @NoobNoob030 我的了解不知道是不是这样子的,請大佬指点业下:
    我觉得是这个概念不能是从工具出发,是从原来的软件工程通过 AI 来介入。
    人类在 harness 相当于一个布道者,前期理多的是在工具是怎样配置,如在 github actions 中配置好相关的 Agent 介入,如果有测式工具就接入;
    所以我在想当于有一个新的需求时,把需求定义好,分 里程->phase->PR 这个處理,人类做功能的验证:说白了就是做在测試,按界面/数据事件触发看看是否已对齐
    kenshinhu
        8
    kenshinhu  
    OP
       9 小时 31 分钟前
    @glacer 我个人理解也是这样子的,如果需要人类确认就协助。需求边界、测试用例以开发前期需要列明
    mangmaimu
        9
    mangmaimu  
       9 小时 21 分钟前
    最后这篇不错,符合我对 ai 构想
    mooncakeSec
        10
    mooncakeSec  
       9 小时 20 分钟前
    @kenshinhu 是的,人的角色从开发变成为 ai 搭建开发环境,业务约束,验收标准这些
    NoobNoob030
        11
    NoobNoob030  
       9 小时 19 分钟前
    @kenshinhu #7 我理解 harness 是能让 AI 更好的完成任务的一套架构,针对不同需求,架构的内容也不同。如果理解成字面意义上的“马具”,那么“需求定义”“自动化执行”“多 agent 交互”这些就相当于“缰绳、马鞍”,你提到的“把需求定义好,分 里程->phase->PR ”也能算是 harness 。
    DICK23
        12
    DICK23  
       8 小时 53 分钟前
    看的云里雾里
    darksword21
        13
    darksword21  
    PRO
       8 小时 45 分钟前
    只能说老外挺能发明概念的

    我理解所谓的 harness 是不是就是之前就有的帮助 llm 处理的东西,现在把他们打包称为 harness ?
    kenshinhu
        14
    kenshinhu  
    OP
       8 小时 45 分钟前
    @NoobNoob030
    是的,我在思考是否需要把工具体系从“人类使用”转为“Agent 可编排”的视角重新设计。

    例如测试工具如果具备完善的 CLI 接口,就可以被纳入 CI/CD 流程,
    并进一步作为 Agent 的可调用能力,由 Agent 进行调度和控制。

    从工程结构来看,这一层本质上就是 harness ,
    即对工具、执行流程和反馈机制的统一编排系统,而不是单一工具本身。

    它不是前期任务,而是 Agent 能否稳定运行的基础设施。

    還是通过一个 todos h5 的 webapp 試試过,還需要是实践一下才知道是怎么一回事
    Clannad0708
        15
    Clannad0708  
       8 小时 43 分钟前
    我来回答你把,在这个概念火之前,有个 cursor 的工程师来做分享。说他们内部做了大量的工程来实现 harness 。这个东西在我看来就是一套“规则说明” 他不是某个具体的框架或者技术,而是说一系列的包括提示词 prompt ,边界约束,工具描述等。一系列相关的东西来对 agent 进行 规则说明。 你要做的不是 直接告诉他 帮我实现 xxx 功能,而是详细的描述这个功能是什么样的,怎么测试他是否正常。通过一系列的 精雕细刻的设置说明和限制以及你的期望。他就能工作的更好
    kenshinhu
        16
    kenshinhu  
    OP
       8 小时 37 分钟前
    @Clannad0708 对这个我也想过是否是通过 prompt 来驱动,但这样整 个 LOOP 還是需要 人类介入,就如描述 好了让 Agent 處理,把他的结果看一下,再把瑕疵的地方再輸入新的 Prompt 再處理最后这样好像又变化
    人类 -> Agent -> 人类 -> Agent 这相环节;
    huaweii
        17
    huaweii  
       7 小时 1 分钟前 via Android
    openai 是站在商业公司的立场,宝玉是在站在高级打工人的立场。
    sqlNice
        18
    sqlNice  
       6 小时 6 分钟前
    我最近也在实践,目前项目是微前端架构。
    1.完善所有的 ts+ tslint + eslint
    2.统一所有应用的基建层
    3.各种业务 skill
    4.skill 生成的文件增加 skill-artifacts.json 文件做索引,后续 AI 修改过程中涉及到对应的文件则提示用户 [是否迭代 skill]
    5.增加 hook (强制 lint 校验)
    6.完善 doc 以及子应用之间常用的业务关系

    总结:如果在使用 AI 过程中产生了手动修改代码的行为,那么这个行为都视为应该改为 skill 或增加自动化流程。

    缺陷:vue2 项目没法做单元测试,目前只能把报错扼杀在发布之前。
    sqlNice
        19
    sqlNice  
       6 小时 3 分钟前
    我是如何开始的:
    - 我大概搜罗了七八篇 harness 相关的文章,openAI cc vercel 等官方的 blog
    - 参考 x 比较火的 LLM wiki ,总结这些文章,出一个在前端项目中如何探索 harness
    - 列 plan 一项项去实施
    - 旧项目改造了四五天,目前还没完

    后续:
    - 想着增加 jenkins 后反馈,基建/类型报错就直接让他改,业务相关的没办法只能人来
    beimenjun
        20
    beimenjun  
    PRO
       5 小时 58 分钟前
    fennu2333
        21
    fennu2333  
       5 小时 44 分钟前
    正好我昨天也发了一篇自己的实践: https://v2ex.com/t/1205752

    我的理解是 Harness 在于给 Agent 构造外部环境和约束,让 Agent 能在你制定的规则下满足你某个垂直领域的需求,写 Skill ,CC 插件 等等手法最终的目的还是让 Agent 能更好地遵从你的工作流程来真正创造价值

    有兴趣也可以看下最近比较火的一篇 Harness 综述 https://v2ex.com/t/1206029
    kenshinhu
        22
    kenshinhu  
    OP
       5 小时 40 分钟前
    @sqlNice 有感而发,旧项目使用 harness 才有价值,新项目使用 harness 就好像有點带偏。可能 specs + TDD 也够。 旧项目的话更多是需要对旧有的代碼和业务 有个归纳,这个过程 中肯定 会有一些细节的损失,需要好次迭代才能也旧项目拉到一个新的高度,当然旧有的项目是意大利面条这種的就另说了,可能 重新再做会更快
    joyyu
        23
    joyyu  
       5 小时 21 分钟前
    Harness 本质还是围绕构建稳定可靠 Agent 的工程,和 web 开发没很大关系。
    新的 web 应用开发范式主要是基于现有的 Claude Code 、Codex 之类 Coding Agent 构建而生的 SDD TDD 之类的概念。
    qianxaingmoli
        24
    qianxaingmoli  
       4 小时 33 分钟前
    我的理解以及实践是,harness 是针对 llm 驱动的 agent ,langgraph 这种始终是 workflow 框架,束缚 llm 。
    loop 要由 agent 管理,让它自己管理 subagent 。我把有些 agent 做成了 cli 的形式,给到 agent 自己去管理运用,而不是 agent 编排。自行管理记忆,保存 trace 。agent 自己观测,然后自进化。
    按照业务进行深耕,在有限的上下文内,优化 cli 和记忆,agent 获取到更相关的东西。
    而 harness 就是针对这种形式的最小化约束,比如合适的控制模式、渐进式披露、更合适的 cli(agent-friendly),引导约束 agent 在规范内自主运行,能获得很意外的智能涌现。
    kenshinhu
        25
    kenshinhu  
    OP
       4 小时 6 分钟前
    @joyyu 看样子我之前一直抽混了,以为 Harness 是可以用到所有领域的开发。
    wangxinpier
        26
    wangxinpier  
       3 小时 18 分钟前
    这个太好了,还在学习中,感谢你的提问
    NizumaEiji
        27
    NizumaEiji  
       3 小时 11 分钟前
    感觉概念都是看的云里雾里的,目前学到的一个点就是强约束若约定。简单说就是你对 ai 提的要求它未必遵守,所以所有的要求都要有对应的约束去限制,
    比如要保证生成的代码可用,加个 hook ,修改完代码自动编译启动。
    要求代码质量就是改完代码走一次类似的 sonar 之类的检测。
    hook 执行失败直接把错误信息提交给 ai ,让去修改直到问题解决。
    xiaomushen
        28
    xiaomushen  
       3 小时 10 分钟前
    宝玉的文章不错,上次和他吃火锅,还是 2008 年时候的事儿了
    Huyii
        29
    Huyii  
       3 小时 5 分钟前
    楼上说得对,harness 是用在 agent 上的,有个公式是:agent = harness + model 。不过我还是不太清楚如何工程实践它,挺模糊的
    YanSeven
        30
    YanSeven  
       3 小时 4 分钟前
    @darksword21 我也这么理解的,就是围绕 prompt 和软件工程实践做的升级和打包概念。即在上下文窗口的约束之下,通过 prompt 管理来让 llm 践行软件工程最佳实践。
    kenshinhu
        31
    kenshinhu  
    OP
       2 小时 52 分钟前
    @NizumaEiji 这就是人机协助的情況吧,仅是人类做了指导员,整个 LOOP 人类的比重還是高于 AI 的
    kenshinhu
        32
    kenshinhu  
    OP
       2 小时 50 分钟前
    @Huyii 因为我一直在想,harness + model 是怎样處理需求精细化的,就像 前端 ( APP / H5 ) 里有很多细节,这種還是需要人类介入比例比较 重的,但对于像 agent 这種就真的控制 好边界就可以了
    kenshinhu
        33
    kenshinhu  
    OP
       2 小时 49 分钟前
    @YanSeven 所以我在想,未来如果 上下文窗口 可以有现在好几百倍的容器,是否现在的 Agent 理论都仅是过渡式
    NizumaEiji
        34
    NizumaEiji  
       2 小时 29 分钟前
    @kenshinhu #31
    hook 都是自动触发的,错误信息可以在 function call 的过程中以结果的形式反馈给 llm 。
    这个和开发者在 vibe coding 中的比重没啥关系吧,比重这个东西和你的规则和项目的适配度有关,最开始规则不够适配,只能边写边调。
    OXOYO
        35
    OXOYO  
       2 小时 21 分钟前
    我浅薄了
    meeop
        36
    meeop  
       1 小时 24 分钟前
    对于大部分人来说,你什么都不用做,等待 agent 自己升级就行,你做什么大概率都会被快速追赶。
    爱折腾的,最多装一下比如 superpowers ,on-my-xxx 系列开源封装好的 harness
    bytesfold
        37
    bytesfold  
       5 分钟前 via iPhone
    我已经做了两套 harness 了,
    - 第一套去年 9 月开始做的,跟 2 月 codex 的文章 90%相似
    - 第二套上个月做的,已经上生产了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3409 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 111ms · UTC 11:57 · PVG 19:57 · LAX 04:57 · JFK 07:57
    ♥ Do have faith in what you're doing.