首页 > 基础资料 博客日记
Harness Engineering 学习与实践
2026-04-03 18:00:03基础资料围观1次
原文:https://openai.com/index/harness-engineering/
一、核心含义
Harness 的英文原意是“马具”(包括缰绳、鞍具等),用来控制马匹的方向和力量。借用到AI领域,Harness Engineering 就是为AI Agent“套上缰绳”、构建控制系统的工程实践。
它强调:不是去进一步优化AI模型本身(Model),而是优化模型运行的“环境”(Harness),让Agent在人类设定的边界内自主、可靠、可持续地工作。
核心理念一句话总结:“Humans steer, Agents execute”(人类掌舵,智能体执行)。工程师的角色从“手动写代码”转变为“设计AI的工作系统、环境和控制机制”。
二、为什么会出现 Harness Engineering?
随着AI模型(如Claude、Codex等)能力大幅提升,能自主生成大量代码(甚至百万行代码的项目),传统 Prompt Engineering(提示工程)或单纯的 Context Engineering(上下文工程)已不够用。问题包括:
Agent容易“跑偏”、幻觉、陷入循环或犯重复错误。
长时任务、复杂项目中,上下文窗口有限、记忆不持久。
缺乏可靠的反馈、验证和纠错机制,导致输出不可控或质量不稳定。
OpenAI 等公司在内部实验中发现:当完全不让人手写一行代码、全部靠Agent完成百万行代码项目时,关键不是换更强的模型,而是重新设计Agent运行的环境。于是 “Harness Engineering” 这个术语被正式提出和推广。
三、Harness Engineering 的主要组成部分
一个完整的 Harness 通常包括以下几个关键模块(不同资料表述略有差异,但核心一致):
约束机制(Guardrails / Constraints):定义规则、架构边界、权限控制,避免Agent做危险或无关操作。
反馈回路(Feedback Loops):实时验证、测试、观测(Observability),让Agent自我纠错或人类干预。
上下文管理(Context Engineering):动态提供知识库、文档、当前状态,确保Agent“知道自己在哪、该做什么”。
工作流控制与工具集成(Workflows & Tools):编排多步任务、调用外部工具、内存/状态管理。
持续改进与垃圾回收(Continuous Improvement & Entropy Management):清理无效上下文、积累经验、防止系统“熵增”(混乱积累)。
本质上,Agent = Model(大脑) + Harness(操作系统/缰绳)。Harness 决定了模型的智能能否真正转化为可靠的生产力。
与相关概念的区别
Prompt Engineering:关注单次输入提示的优化(已较早期)。
Context Engineering:更广义地管理Agent看到的上下文(Harness 的子集或前身)。
Harness Engineering:上升到系统级、全生命周期的工程实践,包含架构约束、反馈闭环、环境设计等,更注重长期可靠性与规模化。
实际意义与应用
在软件开发中:工程师设计规格、架构文档、验证流程,让AI Agent 自动写代码、跑测试、修复 Bug。
企业/团队层面:从“AI辅助编程”进化到“AI主导执行,人类主导设计”。
未来趋势:被视为AI Agent 时代软件工程的新范式,已有相关实践、工具和讨论在硅谷、OpenAI 等快速传播。
简单来说,Harness Engineering 解决的核心问题是:如何让强大的AI不失控地、稳定地完成复杂真实工作,而不是单纯追求模型参数更大或提示词更巧妙。
四、使用Ralph实践
1.创建AGENTS.md
如果使用Claude需要添加软链接(ln AGENTS.md CLAUDE.md),或者重命名为CLAUDE.md
你是一个经验丰富的 Harness Engineering 专家,正在使用 Ralph Wiggum Loop(snarktank/ralph)从零搭建项目。
当前项目是全新的 git 仓库,刚刚做了 initial commit。
## 你的唯一任务(只做这一件事,不要开始实现任何业务功能):
理解我对项目的整体需求(见下方描述)。
使用 PRD Creator 的思维方式,生成一个**结构化、细粒度、可执行**的 PRD。
将 PRD 拆解成多个小用户故事(user stories),每个故事要足够小(理想情况下 1-2 个小时内可完成)。
输出 `scripts/ralph/prd.json` 文件,格式严格遵循 snarktank/ralph 的要求(包含 id、title、description、priority、passes: false、branchName 等字段)。
同时创建或更新以下文件:
- `PRD.md` 或 `docs/prd.md`(人类可读版本)
- `progress.txt`(初始为空或只有 header)
- `AGENTS.md`(写入项目约定、编码规范、架构决策、质量门控规则等)
最后,创建一个 `setup.sh` 或 `dev.sh` 脚本,用于启动开发服务器、运行测试等。
项目需求描述:
[在这里详细写你的项目一句话或多句话描述,例如:
“构建一个简洁的个人任务管理工具(Todo App),支持用户注册/登录、创建/编辑/删除任务、任务优先级和截止日期、简单的看板视图。使用 Next.js 15 + TypeScript + Tailwind + shadcn/ui + Supabase 作为后端。需要移动端友好,支持暗黑模式。”]
严格规则:
- 每次只完成一个小步骤,不要一次性做完所有事。
- 完成后请 commit 更改,并输出总结:“PRD 和初始 harness 已准备好,可以开始运行 ./scripts/ralph/ralph.sh 进入自主循环。”
- 优先级从高到低排序核心 MVP 功能。
- 强调质量门控:每个故事完成后必须能通过 build / test / lint。
现在开始工作。
2.初始化仓库
git init
3.安装Ralph
仓库地址:https://github.com/snarktank/ralph
有三种方式:
- 下载Ralph仓库文件复制到当前项目
- 下载Ralph仓库文件复制到 Amp/Claude Code 的全局配置目录
- 使用Claude插件市场添加,一键安装所有技能
本人使用方式三
# 添加插件市场
/plugin marketplace add snarktank/ralph
# 安装Ralph
/plugin install ralph-skills@ralph-marketplace
# 刷新插件
/reload-plugins
# 如果没有 /ralph命令就退出重新启动claude
/exit
claude
4.执行Ralph
通过内置 /prd 技能,由 AI 生成结构化的 Markdown 格式 PRD,需回答 AI 的澄清问题,文件保存至tasks/prd-[feature-name].md
通过 /ralph 技能,将 Markdown PRD 转换为 JSON 格式的prd.json,该文件包含带优先级、完成状态的用户故事,是 Ralph 的核心执行依据
生成如下文件表示成功:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 微软前CTO长文控诉:Windows被搞成一锅粥!14年14次转变、17种GUI共存
- Prompt、Agent、Skill、MCP 到底是啥?用一家饭馆的后厨给你讲透
- Ant Design Ellipsis 中的判断逻辑 isEleEllipsis 方法非常消耗性能
- Harness Engineering 学习与实践
- 聊聊 ASP.NET Core 中间件和过滤器的区别
- 鱼皮 AI 导航网站,突然起飞了!
- 基于 Irrlicht 和 WASAPI 的 Simple Audio Visualization 技术开发报告
- .NET 8 性能优化实战:让你的应用起飞
- Kthena + vLLM-Ascend:云原生大模型推理的编排与调度实践
- 网页端3D编程小实验-一种多人自走棋游戏原型

