执行摘要:Harness Engineering(缰绳工程)是 2026 年 AI 工程领域最重要的范式转变。本报告显示,通过系统性构建围绕 AI 模型的约束和反馈机制,团队能够在不改变模型的情况下将 agent 性能提升 36%(从 Top 30 到 Top 5)。Hermes Agent 是该方法论的第一次完整产品化实现。
研究日期:2026-04-08
研究方法:多 MCP
工具协同搜索(Exa、Tavily)、网页内容提取(Exa Web
Fetch)、Sequential-Thinking 结构化分析
报告类型:深度研究 / 技术分析
Harness Engineering(缰绳工程) 是一种系统设计方法论,通过构建围绕 AI 模型的约束、反馈和控制机制,使 agent 在真实环境中可靠运行,而无需等待模型本身的改进。
核心洞察:瓶颈不是模型,是环境设计。
| 时间 | 事件 | 意义 |
|---|---|---|
| 2023-2024 | Prompt Engineering 巅峰 | “一问一答”结构,优化指令 |
| 2025 年中 | Context Engineering 兴起 | Karpathy remarks + LangChain/Anthropic 正式定义,RAG、MCP、记忆等系统级上下文设计 |
| 2026-02-05 | Mitchell Hashimoto 博客 | 首次命名 “Engineer the Harness” |
| 2026-02-11 | OpenAI 实地报告 | 描述 0 行手写代码构建内部产品的 harness |
| 2026-02-17 | LangChain 实验报告 | 证明 harness 优化可将 agent 从 Top 30 提升至 Top 5 |
| 2026-03 | 社区广泛采用 | Martin Fowler、Ethan Mollick 等跟进分析 |
实验设计: - 模型:固定使用
gpt-5.2-codex(一行未改) - 基准:Terminal Bench 2.0(89
个任务,涵盖机器学习、调试、生物学等领域) - 变量:仅调整
harness(系统提示、工具、中间件)
结果:
| 迭代 | Harness 变更 | 得分 | 排名 |
|---|---|---|---|
| 基线 | 默认提示 + 标准工具 | 52.8% | Top 30 外 |
| 迭代 1 | 添加 Self-Verify 提示 | 59.6% | Top 20 |
| 迭代 2 | 添加 LocalContextMiddleware | 63.6% | Top 10 |
| 迭代 3 | 添加 LoopDetectionMiddleware | 66.5% | Top 5 |
关键改进措施:
规模: - 约 100 万行代码 - 0 行手动编写的源代码 - 5 个月开发周期
Harness 架构: - 分层架构 enforced by custom linters 和 structural tests - Agent-to-Agent 审查循环(合并前) - 后台清理 agent 修复 drift - 结构化仓库文档作为真实来源
结论:“我们最困难的挑战现在集中在设计环境、反馈 loop 和控制系统上。”
┌─────────────────────────────────────────────────────────┐
│ AI Agent │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Model │ │
│ │ (GPT, Claude, etc.) │ │
│ └───────────────────────────────────────────────────┘ │
│ + │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Harness │ │
│ │ ┌───────┬───────┬───────┬───────┬───────┐ │ │
│ │ │指令层 │约束层 │反馈层 │记忆层 │编排层 │ │ │
│ │ └───────┴───────┴───────┴───────┴───────┘ │ │
│ └───────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
作用:告诉 AI 应该做什么、如何做
| 实现方式 | 手动实现 | Hermes 内建 |
|---|---|---|
| 工具 | CLAUDE.md / AGENTS.md | Skill 系统 |
| 更新频率 | 手动 | 自动创建 + 自改进 |
| 格式 | 静态文档 | Markdown Skill 文件 |
示例:
# Cloudflare Workers Pages 部署技能
## 何时使用
当需要部署静态 HTML 到 Cloudflare Workers Pages 时
## 流程
1. 检查 wrangler 配置
2. 执行 `npm run deploy`
3. 验证部署 URL
## 常见陷阱
- 确保 API Token 有正确权限
- 检查 project name 唯一性作用:限制 AI 不能做什么,防止错误
| 机制 | 实现方式 |
|---|---|
| 工具权限 | 每个工具独立权限控制 |
| 沙箱隔离 | Docker / SSH 后端 |
| Toolset 管理 | 按需启用工具集 |
| 静态检查 | Linters, Type Checkers |
示例:
# 危险命令需要确认
if command.startswith("rm -rf"):
require_user_confirmation()作用:给 AI 提供执行结果的反馈
| 类型 | 计算型(CPU) | 推理型(GPU) |
|---|---|---|
| 速度 | 毫秒 - 秒 | 秒 - 分钟 |
| 成本 | 低 | 高 |
| 确定性 | 确定 | 概率 |
| 示例 | 测试、linter | AI 代码审查 |
Hermes 实现: - 每 15 个 tool calls 自动 self-evaluation checkpoint - 任务完成后自动复盘生成/更新 Skill - 用户纠正自动记录到 MEMORY.md
作用:存储历史经验和知识
| 层级 | 内容 | 实现 |
|---|---|---|
| 会话记忆 | 当前对话上下文 | Context Window |
| 持久记忆 | 跨会话事实、偏好 | SQLite + FTS5 + LLM 总结 |
| Skill 记忆 | 程序性知识 | Markdown Skill 文件 |
| 用户建模 | 用户画像 | Honcho 系统 |
作用:协调多个 AI 或工具的协作
| 功能 | 手动实现 | Hermes 内建 |
|---|---|---|
| 多 Agent | 自建 pipeline | 子 Agent 委派 |
| 定时任务 | Cron + 脚本 | 内置 Cron 调度 |
| 并行执行 | 手动管理 | 自动并行化 |
Hermes Agent 将 Harness 五组件全部内建,从”你给 AI 造缰绳”变成”AI 自己给自己造缰绳”。
| Harness 组件 | Claude Code(手动) | Hermes Agent(自动) |
|---|---|---|
| 指令层 | 手写 CLAUDE.md | 自动生成 + 自改进 Skill |
| 约束层 | 手动配 hooks | 权限控制 + 沙箱 |
| 反馈层 | 人工审查 | 自动复盘 + 优化 |
| 记忆层 | 手动维护知识库 | 三层记忆 + 用户建模 |
| 编排层 | 自建多 Agent | 子 Agent 委派 + cron |
四阶段流程:
Stage 1: Task Execution
↓
Stage 2: Self-Evaluation Checkpoint(每 15 tool calls)
↓
Stage 3: Skill Creation or Update
↓
Stage 4: Memory Update
↓
(回到 Stage 1,循环)
具体机制:
每 15 个 tool calls,Hermes 暂停并评估: - 我做了什么? - 什么有效?什么失败了? - 这个经验值得捕捉吗? - 应该创建或更新哪个 Skill?
Skill 创建:
skill_manage(action="create",
name="competitor-analysis-workflow",
content="# Competitor Analysis Workflow\n\n## 何时使用\n当研究竞争对手内容策略时...")Skill 自改进:
skill_manage(action="patch",
name="competitor-analysis-workflow",
old_text="不要分析超过 5 个竞争对手",
new_text="不要分析超过 3 个(5 个会导致上下文溢出)")20-30 个任务后的效果: - 速度:从 25 tool calls 降至 8-10 - 准确率:停止重复被纠正的错误 - 预期性:主动应用品牌指南、代码规范 - Skill 库:10-40 个自动创建的定制技能
| 特性 | 实现 |
|---|---|
| 语言 | Python (92.9%) |
| 依赖管理 | uv |
| 内置工具 | 40+ |
| MCP 支持 | 完整集成 |
| Skill 标准 | agentskills.io |
| 用户建模 | Honcho |
| 许可证 | MIT |
部署选项: - 本地终端 - Docker 沙箱 - SSH 远程 - Daytona - Singularity - Modal(无服务器)
背景:YouTube 评测者,内容生产 pipeline
初始状态: - 手动生成图片(Nano Banana + fal.ai) - 手动用 Python 添加 logo - 每次重复相同流程
Hermes 介入后: 1. 自动识别混合方法需求 2. 创建 “brand-image-generation” Skill 3. 下次任务直接复用
结果: - 设置多 Agent 工作流: - 社交媒体经理:排期 + 写帖子 - 视觉 Agent:生成图片 - 广告创建 Agent:合成最终素材 - 仅需一句话:“研究这些竞争对手品牌”
规模: - 每周 1000+ 合并 PR - 隔离环境执行 - 硬性 CI 限制 + 升级规则
Harness 特点: - Pre-push hooks 基于启发式运行相关 linter - “Shift feedback left”原则 - Blueprint 系统集成反馈传感器
创新点:将生产遥测作为 harness 一部分
流程: 1. Agent 生成代码 → 部署 2. 性能回归检测 3. 信号反馈回 loop 4. Agent 自动修复
模式:Generate → Validate → Fix → Observe
第一步:识别重复错误 - 记录 agent 犯的同样错误 - 分类:指令不清?缺少约束?无反馈?
第二步:添加约束
# 示例:添加 pre-commit hook
hermes tools add --hook pre-commit
# 运行 linter + 测试第三步:创建 Skill
# 手动创建或让 Hermes 自动创建
hermes skills create my-workflow第四步:建立反馈 loop - 启用 self-evaluation checkpoints - 配置自动复盘 - 连接错误追踪系统
根据 Martin Fowler 的分析,三种 Harness 类别:
| 类别 | 目标 | 工具示例 |
|---|---|---|
| Maintainability Harness | 代码可维护性 | Linters, 结构测试,ArchUnit |
| Architecture Fitness Harness | 架构适应性 | 性能测试,可观测性规范 |
| Behavior Harness | 功能正确性 | 功能规格 + AI 生成测试 + 人工测试 |
| 陷阱 | 症状 | 解决方案 |
|---|---|---|
| Harness Debt | Harness 本身变得复杂难维护 | 定期重构 Harness 代码 |
| 过度约束 | Agent 无法完成创造性任务 | 分层约束,核心 vs 边缘 |
| 反馈延迟 | 错误在 pipeline 后期才发现 | Shift feedback left |
| 上下文溢出 | Skill 库太大导致 prompt 膨胀 | Progressive disclosure |
| 一次性任务 | 为只用一次的任务创建 Skill | 设定 ROI 阈值 |
本次研究使用以下 MCP 工具协同工作:
| 工具 | 用途 | 调用次数 |
|---|---|---|
| Sequential-Thinking-MCP | 研究流程规划与结构化思考 | 5 |
| Exa MCP | 语义搜索 + 网页内容提取 | 4 |
| Tavily-MCP | 补充搜索验证 | 1 |
| Jina-MCP-Server | (离线,未使用) | 0 |
- "Harness Engineering AI agent framework Mitchell Hashimoto LangChain experiment"
- "Harness Engineering AI agents five components instruction constraint feedback memory orchestration"
- "Hermes Agent Nous Research self-improving agent skill system memory architecture 2026"
使用 Exa Web Fetch 提取以下关键页面完整内容: - LangChain 官方博客 - Martin Fowler 分析文章 - Louis Bouchard 深度解析 - Hermes Agent 官方指南
报告生成时间:2026-04-08 23:30
研究总耗时:约 15 分钟
总引用来源:12+ 篇核心文献
本报告由 Hermes Agent 使用 MCP 工具编排生成,是 Harness Engineering 方法论的实践演示。