Agent Harness 描述了用于管控 LLM 的完整软件基础设施
图源 - 《Scaffolded LLMs as Natural Language Computers》 by Beren Millidge
Harness 的 12 个核心组件
- 编排层(Orchestration Loop):实现思考-行动-观察(TAO)循环,作为心脏维护最低限度的编排工作(dumb loop,笨循环),避免影响模型的决策推理
- 工具层(Tools):管理工具的注册、验证、沙盒执行与结果格式化;常用的六类工具:文件操作、搜索、执行、网络访问、代码辅助和子智能体管理;常见的工具类型:函数/托管服务/MCP
- 记忆层(Memory):包括单会话内的短期记忆和跨会话的长期记忆;通过分层设计来避免记忆冲突
- 上下文管理(Context Managerment):上下文的过滤与压缩、记忆更新与同步、即时检索
- 提示组装(Prompt Construction):按照系统提示词、工具、记忆、指令、对话历史进行分层与组装
- 输出解析(Output Parser):依赖原生工具实现结构化,支持类型约束和边缘情况处理
- 状态管理(State Managerment):检查点设置与版本控制,支持任务的中断、调试与恢复
- 错误处理(Error Handling):捕捉异常、自动修复、循环维护、问题上浮与调试
- 安全围栏(Guardrail and Safety):围绕输入、输出和工具调用设置安全防线和权限管控
- 验证循环(Verification Loops):给出模型验证结果的方法,提高 Agent 的工作质量
- 子智能体编排(Subagent Orchestration):实现多 Agent 的管理与协作,让不同类型的 LLM 各司其职,满足大规模并行任务的需要,并节省 Token
- 终止条件(Termination Canditions):明确完成标准和退出机制,实现每个会话的自然终止和状态安全传递(Ralph Loop),
Harness 的脚手架原则:
- 作为一种 LLM 临时脚手架,随着模型改进,harness 复杂性应该降低
- 随着模型性能的增强,一个合理的 Harness 设计不应该继续增加复杂度
Harness 的 7 个关键设计
- 优先考虑最大化单 Agent 能力,多 Agent 适用于工具较多或存在明显任务分离的场景
- 对于探索性任务,ReAct 的灵活性更有价值;对于相对明确的任务,Plan-and-Execute 更有效率优势
- 上下文窗口管理策略:ACON 研究表明,通过优先保留推理痕迹而非原始工具输出,可以实现 26% 到 54% 的 token 缩减,同时保持 95% 以上的准确率
- 验证循环设计:结合"指南"(前馈,在行动前引导)和"传感器"(反馈,在行动后观察)两种验证方式
- 权限与安全:宽容模式自动批准大多数操作,风险高;限制模式安全但缓慢,每次操作都需要批准
- 工具范围策略:确保最小的可见工具集,超过 10 个工具考虑拆分专门的 Agent
- 保持轻量级 Harness,在相信模型的进度速度会超过维护复杂基础设施的能力;保持重量级 Harness,是需要在确定性、可审计性和可靠性上有最大控制权
相关阅读:检索增强 RAG 、ClaudeCode 源码解读
参考文献: