Harness Engineering 指南
Status: Active Updated: 2026-02-26
为什么需要这份文档
ForgeOps 不只是调度器,而是 AI 研发系统的“控制系统”。 这份文档定义我们如何通过约束、反馈与可观测性保证长期稳定交付。
核心原则
当智能体失败时,不只修一次结果。 要补一条机制,让同类错误更难再次发生。
四大支柱
1. Context Engineering
AGENTS.md保持短小,只做导航。- 深层知识放在仓库版本化文档中。
- 智能体运行时不可见的信息,视为不存在。
- 角色能力通过 Skill 装配(
agent-skills.json->skills/*/SKILL.md),同一角色可挂多个技能并按需加载。 - 执行计划是一等产物:活跃计划与归档计划均放在
docs/exec-plans/并纳入版本控制。
2. Architectural Constraints
- 通过可执行规则强制架构边界。
- 把 lint/test 失败信息设计成“教学反馈”。
- 让错误信息直接指导下一次修复。
- 约束粒度聚焦不变量(边界、依赖方向、可复现性),不要微观规定具体实现手法。
- 对产品型项目补“平台运行态约束”:CI 通过不等于平台通过。
3. Observability
- 每个 run/step/session 都可追踪。
- 每个失败都必须有结构化原因。
- 需求尽量转成可测指标。
- 场景化探测能力通过技能与脚本承载,不在平台层枚举实体(见
docs/design/skill-driven-delivery.md)。 - 运行状态需区分
CI Gate与Platform Gate,避免单一绿灯掩盖平台风险。
4. Garbage Collection
- 通过周期任务识别文档漂移、规则漂移、架构退化。
- 自动提出修复(issue/PR),对抗系统熵增。
- 周期策略由项目级
.forgeops/scheduler.yaml管理(Cron + 时区 + 空闲执行策略)。 - 每日文档园艺至少执行:
node scripts/check-doc-freshness.jsnode scripts/check-doc-structure.js
双循环模型
交付循环
- Architect
- Issue
- Implement
- Test
- Review
- Cleanup(Garbage Collection)
Harness 循环
- 观测失败模式
- 定位缺失能力或约束
- 补文档/工具/规则
- 验证复发率下降
完成标准
Harness 变更只有在以下条件满足时才算完成:
- 已进入仓库版本控制
- 能自动检查或自动观测
- 在真实运行中降低重复失败
Garbage Collection 运行建议
- 每次 run 结束都执行一次
cleanup步骤(lite),做增量清理。 - 每天至少一次后台清理 run(建议 mode=deep,单节点 cleanup),专门扫描熵增模式。
- 清理结果必须回写质量文档:
docs/quality/domain-grades.mddocs/quality/verification-status.md- 必要时补
docs/quality/golden-principles.md的机械规则。
