首页 > 基础资料 博客日记

Harness Engineering 学习与实践

2026-04-03 18:00:03基础资料围观1

极客资料网推荐Harness Engineering 学习与实践这篇文章给大家,欢迎收藏极客资料网享受知识的乐趣

原文: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

有三种方式:

  1. 下载Ralph仓库文件复制到当前项目
  2. 下载Ralph仓库文件复制到 Amp/Claude Code 的全局配置目录
  3. 使用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 的核心执行依据

生成如下文件表示成功:

image


文章来源:https://www.cnblogs.com/chumochen/p/19818454
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云