Harness Engineering 学习与实践

张开发
2026/4/7 20:00:34 15 分钟阅读

分享文章

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 Loopsnarktank/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 init3.安装Ralph仓库地址https://github.com/snarktank/ralph有三种方式下载Ralph仓库文件复制到当前项目下载Ralph仓库文件复制到 Amp/Claude Code 的全局配置目录使用Claude插件市场添加一键安装所有技能本人使用方式三# 添加插件市场 /plugin marketplace add snarktank/ralph # 安装Ralph /plugin install ralph-skillsralph-marketplace # 刷新插件 /reload-plugins # 如果没有 /ralph命令就退出重新启动claude /exit claude4.执行Ralph通过内置 /prd 技能由 AI 生成结构化的 Markdown 格式 PRD需回答 AI 的澄清问题文件保存至tasks/prd-[feature-name].md通过 /ralph 技能将 Markdown PRD 转换为 JSON 格式的prd.json该文件包含带优先级、完成状态的用户故事是 Ralph 的核心执行依据生成如下文件表示成功

更多文章