Agent Harness

Agent Harness 描述了用于管控 LLM 的完整软件基础设施

图源 - 《Scaffolded LLMs as Natural Language Computers》 by Beren Millidge

Harness 的 12 个核心组件

  1. 编排层(Orchestration Loop):实现思考-行动-观察(TAO)循环,作为心脏维护最低限度的编排工作(dumb loop,笨循环),避免影响模型的决策推理
  2. 工具层(Tools):管理工具的注册、验证、沙盒执行与结果格式化;常用的六类工具:文件操作、搜索、执行、网络访问、代码辅助和子智能体管理;常见的工具类型:函数/托管服务/MCP
  3. 记忆层(Memory):包括单会话内的短期记忆和跨会话的长期记忆;通过分层设计来避免记忆冲突
  4. 上下文管理(Context Managerment):上下文的过滤与压缩、记忆更新与同步、即时检索
  5. 提示组装(Prompt Construction):按照系统提示词、工具、记忆、指令、对话历史进行分层与组装
  6. 输出解析(Output Parser):依赖原生工具实现结构化,支持类型约束和边缘情况处理
  7. 状态管理(State Managerment):检查点设置与版本控制,支持任务的中断、调试与恢复
  8. 错误处理(Error Handling):捕捉异常、自动修复、循环维护、问题上浮与调试
  9. 安全围栏(Guardrail and Safety):围绕输入、输出和工具调用设置安全防线和权限管控
  10. 验证循环(Verification Loops):给出模型验证结果的方法,提高 Agent 的工作质量
  11. 子智能体编排(Subagent Orchestration):实现多 Agent 的管理与协作,让不同类型的 LLM 各司其职,满足大规模并行任务的需要,并节省 Token
  12. 终止条件(Termination Canditions):明确完成标准和退出机制,实现每个会话的自然终止和状态安全传递(Ralph Loop),

Harness 的脚手架原则:

  • 作为一种 LLM 临时脚手架,随着模型改进,harness 复杂性应该降低
  • 随着模型性能的增强,一个合理的 Harness 设计不应该继续增加复杂度

Harness 的 7 个关键设计

  1. 优先考虑最大化单 Agent 能力,多 Agent 适用于工具较多或存在明显任务分离的场景
  2. 对于探索性任务,ReAct 的灵活性更有价值;对于相对明确的任务,Plan-and-Execute 更有效率优势
  3. 上下文窗口管理策略:ACON 研究表明,通过优先保留推理痕迹而非原始工具输出,可以实现 26% 到 54% 的 token 缩减,同时保持 95% 以上的准确率
  4. 验证循环设计:结合"指南"(前馈,在行动前引导)和"传感器"(反馈,在行动后观察)两种验证方式
  5. 权限与安全:宽容模式自动批准大多数操作,风险高;限制模式安全但缓慢,每次操作都需要批准
  6. 工具范围策略:确保最小的可见工具集,超过 10 个工具考虑拆分专门的 Agent
  7. 保持轻量级 Harness,在相信模型的进度速度会超过维护复杂基础设施的能力;保持重量级 Harness,是需要在确定性、可审计性和可靠性上有最大控制权

相关阅读:检索增强 RAGClaudeCode 源码解读

参考文献:

The Anatomy of an Agent Harness

往年同期文章