Birgitta Böckeler (Martin Fowler’s blog) 提出的框架:如何通过系统化的工程控制来建立对 AI 生成代码的信任。Harness = AI agent 中模型之外的一切。

核心框架:Feedforward + Feedback

  • Guides(前馈/引导):在代码生成前引导 agent 行为,提高首次成功率
  • Sensors(反馈/传感器):生成后监控,支持自我纠正

“Feedback-only systems produce repeated errors; feedforward-only systems lack validation.”

两种执行类型

  • Computational(计算型):确定性、快速(毫秒-秒级)、可靠。如:测试、linter、类型检查
  • Inferential(推理型):通过 AI 做语义分析,更慢、概率性但语义更丰富。如:代码审查 agent、自定义 LLM 评判

三类控制维度

1. Maintainability Harness(可维护性)

监控内部代码质量:重复代码、复杂度、风格问题。计算型传感器可靠地捕捉这些问题。

2. Architecture Fitness Harness(架构适应度)

通过 fitness functions 定义和监控系统特性——描述性能需求的 skill + 性能测试 + 可观测性标准。

3. Behaviour Harness(行为验证)

最具挑战的维度。目前依赖 AI 生成的测试套件 + 人工测试,对于高自主度场景不够严谨。

Timing/Quality Left

按成本和速度在开发生命周期中分布检查:

  • Pre-commit(提交前)
  • Pre-integration(集成前)
  • Post-integration pipeline(集成后流水线)
  • Continuous monitoring(持续监控)

早期检测降低修复成本。

Harnessability(可装备性)

不是所有代码库都同等适合 harness engineering:

  • 强类型语言 ✓
  • 清晰模块边界 ✓
  • 框架抽象 ✓
  • 这些创造”ambient affordances”——让系统更适合 agent 操作

Ashby’s Law

监管系统需要足够的”多样性”来治理目标。承诺预定义的服务拓扑可以缩小解空间,使全面的 harness 更可实现。

人的角色

开发者提供”隐式 harness”——内化的规范、组织对齐、经验判断。显式 harness 将这些知识外部化,但不能完全替代人的输入。好的 harness”将人的精力导向最重要的地方”。

开放问题

  • 复杂度增长时如何维护连贯的 harness?
  • 如何系统性评估 harness 覆盖率和质量?
  • 如何解决矛盾的引导信号?
  • 更好的行为验证方法?
  • 统一 harness 配置和推理的工具?