6.6 KiB
6.6 KiB
name, description
| name | description |
|---|---|
| harness-engineering | Master methodology for designing AI Agent work environments. Use when designing constraints, feedback loops, control planes, quality gates, or durable execution for Codex agents. Encodes the full Harness Engineering paradigm. |
Harness Engineering — 核心方法论
Harness = 约束 + 反馈 + 控制平面 + 持久执行
🔧 四大核心组件
1. 约束系统 (Constraints)
定义 Agent 行为边界和输出质量。四层金字塔:
| 层级 | 内容 | 本项目落地 |
|---|---|---|
| L1 架构约束 | 接口合约、包结构、命名规范、禁止模式 | AGENTS.md 铁律、全链路清单 |
| L2 代码质量 | 圈复杂度、代码风格、类型提示、文档要求 | 编译门禁 + 语法检查 |
| L3 安全约束 | 敏感信息检测、权限检查、输入验证 | 配置文件不可硬编码 |
| L4 业务规则 | 领域逻辑、数据一致性、事务边界 | 全链路数据流验证 |
关键原则:
- 约束越底层越自动(编译检查),越上层越需要人工裁决
- 约束冲突时:安全 > 架构 > 质量 > 业务
- 约束应随信任度动态调整(信任度模型见下文)
2. 反馈系统 (Feedback Loop)
测试 → 失败 → Agent 修复 → 重测。分三层:
| 层级 | 速度 | 覆盖范围 | 失败处理 |
|---|---|---|---|
| L1 编译检查 | <30 秒 | 语法、类型、签名 | 立即阻断,Agent 自行修复 |
| L2 数据流验证 | <5 分钟 | 全链路字段、Mapper XML、DTO | Agent 修复,必要时上报 |
| L3 人工审查 | 10-30 分钟 | 架构、设计、业务正确性 | 驳回 / 指导 / 批准 |
反馈设计铁律:
- 反馈必须可行动(指出:文件 + 行号 + 错误类型 + 修复方向)
- 反馈越及时越好(L1 即时 → L2 分钟 → L3 小时)
- 失败后先回滚到最近检查点,再重试
3. 控制平面 (Control Plane)
任务调度和 Agent 协调的核心机制:
┌─────────────────────────────────────────────┐
│ 控制平面三层架构 │
│ │
│ 战略层(人类主导) │
│ ├── 设定目标、审批关键决策 │
│ └── 异常升级处理 │
│ │
│ 战术层(Control Plane 主导) │
│ ├── 任务分解 + 规划 │
│ ├── update_plan / checklist_write │
│ └── 依赖协调 + 资源分配 │
│ │
│ 执行层(Agent 自主) │
│ ├── 代码生成、测试执行 │
│ ├── apply_patch / exec_command │
│ └── 错误恢复 + 检查点保存 │
└─────────────────────────────────────────────┘
4. 持久执行 (Durable Execution)
长时任务的检查点恢复机制(详见 $durable-execution 技能):
- 每个关键步骤保存检查点(
update_plan进度) - 失败后从最新检查点恢复,不从头开始
- 幂等设计:同一操作重复执行结果一致
📋 工作流程
标准工作流:Plan → Generate → Validate → Review
收到任务
│
├→ 1. 计划(Plan)
│ ├── 分解步骤(checklist_write + update_plan)
│ ├── 评估复杂度 / 风险
│ └── 设定检查点里程碑
│
├→ 2. 生成(Generate)
│ ├── 并行探索(spawn_agent × N)
│ ├── 约束优先:先加载 AGENTS.md 和相关规则
│ └── 增量修改:只动必要文件
│
├→ 3. 验证(Validate)
│ ├── L1 编译检查(mvn compile / python3 -c py_compile)
│ ├── L2 数据流验证(全链路检查清单)
│ └── L3 人工审查(提交 diff 给人类)
│
└→ 4. 审查(Review)
├── 提交前 self-review(对照约束逐条检查)
├── 生成变更摘要
└── 提交 / 推送
异常流程
编译失败 → 分析错误 → 撤销本次修改 → 从检查点恢复 → 重试
持续失败(3次) → 上报人类 → 等待指导
🎯 质量门禁(Quality Gates)
| 门禁 | 触发时机 | 通过条件 | 失败动作 |
|---|---|---|---|
| L1 编译 | 每次修改后 | 编译通过 | 立即修复 |
| L2 全链路 | 提交前 | 数据流完整 | Agent 修复 |
| L3 审查 | PR 提交 | 人类批准 | 驳回/指导 |
| L4 回归 | 合并后 | 无回归 | 紧急修复 |
🔐 分层信任模型
| 信任等级 | 特征 | 自动化程度 |
|---|---|---|
| L1 怀疑 | Agent 错误率高,人工逐行审查 | <20% 自动 |
| L2 试探 | Agent 稳定,抽样审查 | 40-60% 自动 |
| L3 信任 | Agent 可靠,关注结果 | 70-85% 自动 |
| L4 委托 | Agent 成为伙伴,人类管战略 | 90%+ 自动 |
当前项目状态: L2 试探级(编译门禁自动 + 全链路验证 + 人工终审)
📐 约束设计模式
1. 肯定模式 — 必须遵守的规则
必须实现 XXX 接口
代码覆盖率必须 > 90%
每个公共方法必须有类型提示
2. 否定模式 — 禁止的行为
禁止直接操作数据库(必须通过 Repository)
禁止硬编码密码/密钥
禁止使用 eval()
3. 边界模式 — 限制范围
圈复杂度 <= 10
每函数行数 <= 50
单文件修改 <= 5 个
4. 优先级模式 — 冲突处理
安全 > 架构 > 质量 > 性能 > 便利
⚠️ 常见陷阱
| 陷阱 | 表现 | 解决 |
|---|---|---|
| 过度约束 | Agent 被束缚,效率低 | 从最少约束开始,按需增加 |
| 约束冲突 | 多个规则互相矛盾 | 确定优先级顺序 |
| 反馈延迟 | 编译太慢,Agent 等待 | 分层测试,快速失败 |
| 控制不足 | Agent 自由度过高 | 增加检查点和门禁 |
| 跳过验证 | 直接提交未验证代码 | 门禁自动化,阻塞提交 |
📚 相关技能
$durable-execution— 检查点、幂等性、事件溯源$closed-loop-testing— 质量门禁、测试策略、反馈循环$constraint-design— DSL 设计、策略模式、约束编排$review-audit— 审查工作流、审计追踪、合规检查$full-chain-fix— 全链路数据流修复(已安装)$karpathy-guidelines— 减少 LLM 编码错误(已安装)