harness engineering学习

1 什么是Harness Engineering

针对agent的设计和构建约束机制、反馈回路、工作流控制和持续改进循环的系统工程实践。解决agent 1)无有效的实时评测,不稳定。2)输出一致性不强。3)不好长期维护的问题。

注:仅做自己的学习笔记用

2 harness的工程架构

2.1 架构介绍

Harness Engineering 并不是凭空出现的,它是Prompt Engineering和Context Engineering的自然延伸。三者构成嵌套关系。

harness engineering有四大支柱:

  1. 上下文工程

实践中分为三层记忆:

三层上下文体系

|---------------|-------------------|------------------------------|-------|
| 层级 | 加载时机 | 内容示例 | 上下文占用 |
| Tier 1:会话常驻 | 每次会话自动加载 | AGENTS.md / CLAUDE.md,项目结构概览 | 最小 |
| Tier 2:按需加载 | 特定子 Agent 或技能被调用时 | 专业化 Agent 的上下文、领域知识 | 中等 |
| Tier 3:持久化知识库 | Agent 主动查询时 | 研究文档、规格说明、历史会话 | 按需 |

  1. agent专业化

将agent根据领域进行技能划分,子agent只要获取相关上下文即可,通用性agent由于上下文巨大反而不利于扩展,子agent化有利于扩展。

实践中的角色分工

|----------|---------------|----------------------|
| Agent 角色 | 职责范围 | 工具权限 |
| 研究 Agent | 探索代码库、分析实现细节 | 只读(Read, Grep, Glob) |
| 规划 Agent | 将需求分解为结构化任务 | 只读,无写入权限 |
| 执行 Agent | 实现单个具体任务 | 限定范围的读写权限 |
| 审查 Agent | 审计完成的工作,标记问题 | 只读 + 标记权限 |
| 调试 Agent | 修复审查发现的问题 | 限定范围的修复权限 |
| 清理 Agent | 对抗熵积累,清理低质量代码 | 读写权限 |

  1. 持久化记忆

核心原则:进度持久化在文件系统上,而非上下文窗口中。每次新 Agent 会话从零开始,通过文件系统制品重建上下文。

* Linter 错误消息即修复指令

传统 Linter 错误消息仅标记违规。OpenAI 的自定义 Linter 在错误消息中直接包含修复方法------Agent 在遇到违规时同时获得了"教学"。

  1. 结构化执行

核心原则:将思考与执行分离。研究和规划在受控阶段进行,执行基于验证过的计划,验证通过自动化反馈(测试、Linter、CI)和人类审查完成。

Harness 模板可能包含

自定义 Linter 规则

结构测试

基础上下文和知识文档

额外的上下文提供者

预配置的 CI/CD 管道

2.2 最佳实践总结

2.2.1 立即可行的行动清单

创建并维护 AGENTS.md:不是一次性任务,而是每当 Agent 犯错时都更新的活文档。

在仓库中建立单一事实源:所有团队知识作为版本控制的制品存放在代码仓库中,不放在 Slack、Wiki 或 Google Docs。

构建自定义 Linter 并在错误消息中嵌入修复指令:工具在 Agent 工作时同时"教会"它。

为 Agent 提供端到端测试工具:浏览器自动化(如 Puppeteer MCP)显著提升验证质量。

实施增量执行策略:每次会话只处理一个功能,完成后提交 git 和进度更新。

分层管理上下文:避免将所有信息堆叠在单个文件中,使用 Tier 1/2/3 渐进式披露。

上下文利用率保持在 40% 以下:更多 token 不代表更好的结果。

建立定期"垃圾回收"机制:自动化 Agent 定期清理技术债、检查文档一致性。

2.2.2 Harness 成熟度评估模型

|-------------------|------------------------------|------------------|
| 阶段 | 特征 | 工程师角色 |
| Level 0:无 Harness | 直接给 Agent prompt,无结构化约束 | 手动写代码+偶尔使用 AI |
| Level 1:基础约束 | AGENTS.md + 基础 Linter + 手动测试 | 主要写代码,AI 辅助 |
| Level 2:反馈回路 | CI/CD 集成 + 自动化测试 + 进度追踪 | 规划+审查为主,部分 AI 编码 |
| Level 3:专业化 Agent | 多 Agent 角色分工 + 分层上下文 + 持久化记忆 | 环境设计+管理为主 |
| Level 4:自治循环 | 无人值守并行化 + 自动化熵管理 + 自修复 | 架构师+质量把关者 |

2.2.3 关键 Harness 组件检查清单

|----------------------------|----------------|-----|
| 组件 | 用途 | 优先级 |
| AGENTS.md / CLAUDE.md | 会话常驻上下文,动态反馈循环 | P0 |
| 自定义 Linter + 结构测试 | 机械化执行架构约束 | P0 |
| CI/CD 管道 | 自动化测试和验证反馈 | P0 |
| 进度文件 (progress.txt / JSON) | 跨会话的持久化记忆 | P1 |
| 功能列表文件 (feature_list.json) | 结构化完成标准 | P1 |
| 浏览器自动化 (Puppeteer MCP) | 端到端测试验证 | P1 |
| 可观测性集成 | Agent 可查询日志/指标 | P2 |
| 熵管理 Agent | 定期清理低质量代码 | P2 |
| 专业化子 Agent | 分工协作减少上下文污染 | P2 |
| MCP 工具集成 | 连接外部工具和数据 | P2 |

3 参考

https://zhuanlan.zhihu.com/p/2014014859164026634

相关推荐
头疼的程序员2 小时前
计算机网络:自顶向下方法(第七版)第七章 学习分享(二)
网络·学习·计算机网络
星幻元宇VR2 小时前
VR航空航天学习机|让航天梦想在虚拟现实中起航
科技·学习·安全·生活·vr
be to FPGAer2 小时前
多时钟域系统设计的基本策略
学习
AnalogElectronic2 小时前
uniapp学习1,hello world 项目,打包到微信小程序,贪吃蛇小游戏
学习·微信小程序·uni-app
li星野2 小时前
大模型的定义、特点
学习
NULL指向我2 小时前
信号处理学习笔记5:卡尔曼滤波理论
笔记·学习·信号处理
wefly20172 小时前
零基础上手m3u8live.cn,免费无广告的M3U8在线播放器,电脑手机通用
前端·javascript·学习·电脑·m3u8·m3u8在线播放
Flittly2 小时前
【SpringAIAlibaba新手村系列】(5)Prompt 提示词基础与多种消息类型
java·笔记·spring·ai·springboot
Yeh2020582 小时前
JDBC笔记
笔记