博客
首页归档关于搜索

关联站点

CodeRunCommon AuthNav2文件中转站Web Search

鄂ICP备19019526号

© 2026 博客

  1. 首页
  2. Harness Engineering 高级话题(七):可观测性、熵管理与三类约束体系

Harness Engineering 高级话题(七):可观测性、熵管理与三类约束体系

2026年4月17日·约 8 分钟·2320 字·0 次阅读
AIAI 日报大模型商业分析技术前沿
Harness Engineering 高级话题(七):可观测性、熵管理与三类约束体系

目录

  • 引言
  • 一、可观测性:不止给人看,也要给 Agent 看
  • 1.1 传统可观测性 vs Agent-Aware 可观测性
  • 1.2 OpenAI 的实践
  • 1.3 实现路径
  • 二、熵管理:AI 生成物的质量衰减问题
  • 2.1 什么是熵积累?
  • 2.2 为什么必须自动化
  • 2.3 熵管理的架构
  • 2.4 清理速度 >= 生成速度
  • 三、三类约束体系
  • 3.1 Maintainability Harness(可维护性约束)
  • 3.2 Architecture Fitness Harness(架构Fitness约束)
  • 3.3 Behaviour Harness(行为约束)
  • 四、Model-Harness 耦合问题
  • 4.1 什么是 Model-Harness 耦合
  • 4.2 关键结论
  • 4.3 应对策略
  • 五、Harness 的版本化管理
  • 5.1 为什么是软件工程问题
  • 5.2 实践建议
  • 六、Harness 的评测体系
  • 6.1 当前缺失
  • 6.2 可能的评测维度
  • 总结

Harness Engineering 高级话题(七):可观测性、熵管理与三类约束体系

引言

这一篇面向已经有一定 Harness 实践经验的同学,讲解高级话题:

  • 可观测性怎么为 Agent 所用
  • 熵管理为什么必须自动化
  • 三类约束体系(Maintainability / Architecture / Behaviour)
  • Model-Harness 耦合问题

一、可观测性:不止给人看,也要给 Agent 看

1.1 传统可观测性 vs Agent-Aware 可观测性

传统可观测性是给人看的——人类工程师通过日志、指标、链路追踪来理解系统状态。

Agent-Aware 可观测性则把这些数据也暴露给 Agent,让 Agent 能够:

  1. 自我诊断:Agent 能读取自己的性能指标
  2. 目标验证:Agent 能验证自己的输出是否达到目标
  3. 自适应:Agent 能根据反馈调整行为

1.2 OpenAI 的实践

OpenAI 把 Chrome DevTools Protocol 接入了 Agent 运行时:

  • Agent 能自己抓 DOM 快照
  • Agent 能自己截图
  • 日志、指标、链路追踪都通过本地可观测性栈暴露

效果:"把启动时间降到 800ms 以下"从模糊愿望变成了 Agent 可以自己测量、自己验证的目标。

1.3 实现路径

可观测性栈
  → 日志(结构化,grep友好)
  → 指标(Prometheus格式)
  → 链路追踪(OpenTelemetry)
  → 暴露给 Agent(通过工具)

关键设计:

  1. 结构化日志:用 ERROR: [reason] 格式,Agent 能 grep 定位问题
  2. 指标可查询:让 Agent 通过工具查询自己的性能数据
  3. 链路可追溯:让 Agent 理解一次请求的完整调用链

二、熵管理:AI 生成物的质量衰减问题

2.1 什么是熵积累?

LLM 生成的代码有一个特性:它经常重新实现已有功能,而不是复用现有代码。随着时间推移,代码库会:

  • 功能重复实现越来越多
  • 文档和代码不一致增加
  • 架构违规累积
  • 技术债务加速增长

这就是"熵积累"——无序度在增加。

2.2 为什么必须自动化

OpenAI 的教训:

一开始每周五花 20% 的时间手动清理 AI 生成物中的低质量代码。这在团队规模小、PR 少时可行;一旦规模扩大,人工清理成为瓶颈。

后来自动化了:后台 Agent 定期扫描文档不一致、架构违规和冗余代码,自动提交清理 PR。

2.3 熵管理的架构

定期触发(cron/hook)
    ↓
清理Agent(独立session)
    ↓
扫描:文档不一致 | 架构违规 | 冗余代码 | 死代码
    ↓
生成修复PR
    ↓
人工审查合并

2.4 清理速度 >= 生成速度

这是可持续运行的关键。

如果清理速度 < 生成速度,熵积累速度会越来越快,最终系统质量崩溃。


三、三类约束体系

Martin Fowler 提出的框架,把 Harness 分为三类:

3.1 Maintainability Harness(可维护性约束)

关注点:内部代码质量和可维护性

控制类型能捕获不能可靠捕获
Computational结构性问题:重复代码、圈复杂度、缺少测试覆盖、架构漂移、风格违规语义问题
Inferential(LLM)语义重复代码、冗余测试、暴力修复、过度工程高影响问题:误诊、过度工程、指令误解

Computational sensors 的例子:

  • ArchUnit(Java架构测试)
  • ESLint + 自定义规则
  • 测试覆盖率工具
  • 依赖分析工具

3.2 Architecture Fitness Harness(架构Fitness约束)

关注点:应用的架构特性是否达到要求

本质上是 Fitness Functions——一组定义了"架构想要什么"的自动化验证。

例子:

Feedforward:
  - Skill:性能要求
  - Skill:可观测性规范(logging标准)

Feedback:
  - 性能测试:告诉Agent性能是提升还是退化
  - 日志质量审计

3.3 Behaviour Harness(行为约束)

关注点:应用功能行为是否符合需求

这是最难解决的一类。

当前大多数人的做法:

控制类型做法
Feedforward功能规格(从简短提示到多文件描述)
FeedbackAI生成的测试套件是否绿色通过

Böckeler 的批评:

"用 AI 生成的测试来验证 AI 生成的代码,本质上是用同一双眼睛检查自己的作业。That's not good enough yet."

部分解决方案:Approved Fixtures

Thoughtworks 的同事发现 Approved Fixtures 模式在某些场景下有效——但它更适合局部而非全量。


四、Model-Harness 耦合问题

4.1 什么是 Model-Harness 耦合

LangChain 发现:当前的 Agent 产品(Claude Code、Codex)是模型和 Harness 一起训练的。这导致一种过拟合:

换了工具逻辑后,模型表现会变差。

在 Terminal Bench 2.0 排行榜上,Opus 在 Claude Code 的 Harness 下的得分,远低于它在其他 Harness 中的得分。

4.2 关键结论

"The best harness for your task is not necessarily the one a model was post-trained with."

为你的任务选择 Harness 时,不要被模型的默认 Harness 束缚。

4.3 应对策略

  1. 独立评估:不要假设默认 Harness 就是最优的
  2. Benchmark:在不同 Harness 上测模型,选表现最好的
  3. 定期重评:模型更新后,重新测试 Harness 组合

五、Harness 的版本化管理

5.1 为什么是软件工程问题

Böckeler 指出:

"Skills, prompts, and MCP configurations are code. Version them, review them in PRs, and refactor them when they drift. A stale prompt rots just like a stale test."

Harness 是需要维护的软件,不是配置完就扔的东西。

5.2 实践建议

版本控制:

harnesses/
├── v1/
│   ├── AGENTS.md
│   └── lints/
├── v2/
│   ├── AGENTS.md
│   └── lints/
└── current -> v2/

PR 审查:

  • 改 AGENTS.md 需要代码审查
  • 新 Skill 要有测试
  • 约束变更要论证

定期重构:

随着模型变强,之前必要的保护机制可能已经冗余。要定期简化 Harness。


六、Harness 的评测体系

6.1 当前缺失

Böckeler 提出的开放问题:

"How do we evaluate harness coverage and quality similar to what code coverage and mutation testing do for tests?"

目前没有类似"测试覆盖率"的指标来衡量 Harness 的有效性。

6.2 可能的评测维度

维度含义
覆盖率多少比例的任务类型有对应约束/验证
准确性约束/验证的结果与真实质量的相关性
时效性从问题出现到被捕获的平均时间
效率每次变更运行 Harness 的成本(时间+金钱)

总结

高级 Harness Engineering 关注三个核心问题:

1. 可观测性不止给人,也要给 Agent

  • 结构化日志 + 指标可查询 + 链路追踪
  • Agent 能自我诊断、自验证、自适应

2. 熵管理必须自动化

  • AI 生成 ≠ 完美生成,熵会积累
  • 清理速度 >= 生成速度才能可持续

3. 三类约束各司其职

  • Maintainability:用 Computational sensors 捕获结构问题
  • Architecture Fitness:Fitness Functions 定义架构目标
  • Behaviour:最难,目前无完美方案

Model-Harness 解耦是长期方向——不要被默认 Harness 束缚,定期重新评估组合。


标签:#AI #Agent #HarnessEngineering #可观测性 #熵管理 #Observability

相关文章

  • Harness Engineering 入门教程(四):从零搭建你的第一个 Harness4月17日
  • Harness Engineering 技术原理(二):Feedforward、Feedback 与六层架构详解4月17日
  • Harness Engineering 落地实践(六):一线团队案例深度解析4月17日

系列:Harness Engineering 指南

  • 1. Harness Engineering 技术原理(二):Feedforward、Feedback 与六层架构详解
  • 2. Harness Engineering 架构设计(三):记忆系统、工具设计与沙箱隔离
  • 3. Harness Engineering 入门教程(四):从零搭建你的第一个 Harness
  • 4. Harness Engineering 框架对比(五):OpenClaw、Claude Code、OpenCode、Hermes 深度横评
  • 5. Harness Engineering 落地实践(六):一线团队案例深度解析
  • 6. Harness Engineering 高级话题(七):可观测性、熵管理与三类约束体系
  • 7. Harness Engineering 前沿挑战(八):未解决的问题与未来方向
  • 8. Harness Engineering 入门(一):为什么说"你不是模型,那你就是 Harness"
← Harness Engineering 落地实践(六):一线团队案例深度解析Harness Engineering 前沿挑战(八):未解决的问题与未来方向 →

评论

加载评论中…

发表评论

返回首页