跳转到内容

Meta-harness

Meta-harness 指一种不把 agent 系统绑定到某一代具体 harness 实现上的上层运行时设计。它不是直接规定 agent 应该如何规划、调用工具或做上下文管理,而是把 sessionharnesssandbox 等核心部件抽象成稳定接口,让底层实现可以持续替换、扩展和恢复,而不破坏整个系统。

  • 普通 harness 更像任务级脚手架:它直接编码 prompt、工具路由、上下文策略和执行循环。
  • meta-harness 更像 agent 运行时的“操作系统层”:它定义哪些部件存在、这些部件如何通信、状态如何恢复、以及安全边界如何被隔离。
  • 这种设计的出发点是:harness 会随着模型能力进化而迅速过时,因此系统不应该把长期稳定性建立在当前一代 harness 假设上。
  • 在 Anthropic 的版本里,最核心的三个接口是 sessionharnesssandbox
  • session 负责 durable 事件记录,解决长时运行、恢复和可回放问题;harness 负责把模型调用、工具路由和上下文管理串起来;sandbox 负责代码执行和文件操作。
  • 把这些部件解耦后,brain 和 hands 可以分别失败和重建。harness 崩了,可以根据 session log 恢复;sandbox 挂了,可以被重新 provision,而不是连带整个 agent 死亡。
  • 这类抽象也重新定义了上下文管理。session 不是 context window 的备份副本,而是外部的可查询历史对象;哪些历史真正进入 Claude 当前上下文,由 harness 决定。
  • Best Practices for Claude Code》从用户工作流角度补充了同一个问题:即使底层 session 可恢复,实际表现仍高度依赖人如何做 Context hygiene for agents,比如何时清空、压缩、分叉、恢复和把知识外置。
  • Effective context engineering for AI agents》则把这条线再补完整:meta-harness 不是为了抽象而抽象,它本质上是在给 Context engineering 提供系统层接口,让上下文选择、记忆持久化和运行时检索能被持续重构。
  • 它与 Agent scaffold 相关,但层级更高。scaffold 更关心某个 agent 如何跑,meta-harness 更关心未来不同 scaffold 如何共存和演进。
  • 它也与 Sandboxing for agentsModel Context Protocol (MCP)Programmatic tool calling 相连,因为这些能力在 meta-harness 视角里都更像“hands” 或外部 runtime capability,而不是固定写死在脑里的流程。

ℹ️ Conflict:

  • meta-harness 并不一定更简单。它通常会用更复杂的接口层和基础设施,换取长期可演化性与恢复性。
  • 如果任务范围很小、生命周期很短,直接写任务级 harness 往往比先做 meta-harness 更务实。
  • 抽象太早也有风险:如果接口设计错误,系统会被“稳定接口”本身反过来限制。
  • Anthropic, “Effective context engineering for AI agents”, 2025-09-29.
  • 原文摘录:[llm-wiki/raw/anthropic/Effective context engineering for AI agents](/raw/anthropic/Effective context engineering for AI agents.md)
  • Anthropic, “Scaling Managed Agents-Decoupling the brain from the hands”.
  • 原文摘录:[llm-wiki/raw/anthropic/Scaling Managed Agents-Decoupling the brain from the hands](/raw/anthropic/Scaling Managed Agents-Decoupling the brain from the hands.md)
  • Anthropic, “Best Practices for Claude Code”.
  • 原文摘录:[llm-wiki/raw/anthropic/Best Practices for Claude Code](/raw/anthropic/Best Practices for Claude Code.md)