Agent Harness 是包裹在 AI 模型外部的运行时基础设施,它管理模型的生命周期、上下文、工具调用和与外部世界的交互。它不是"大脑"本身,而是为大脑提供工具、记忆和安全限制的运行环境。
| 组件 | 计算机类比 | 职责 |
|---|---|---|
| 大模型 | CPU | 提供原始处理能力 |
| 上下文窗口 | RAM | 有限的、易失的工作记忆 |
| Agent Harness | 操作系统 | 管理资源、提供驱动、确保稳定运行 |
| Agent | 应用程序 | 具体的业务逻辑 |
| 问题 | 表现 |
|---|---|
| 上下文衰减 | 长任务中 Agent 遗忘初始目标 |
| 工具调用失控 | API 超时、错误序列调用、调用不存在的方法 |
| 状态丢失 | 系统崩溃后无法恢复进度 |
| 静默失败 | 输出看起来正常,但工具调用 subtly wrong |
| 成本失控 | 循环次数增加、Token 消耗翻倍 |
五个独立团队得出相同结论:
问题:简单地把所有数据塞给模型不可扩展。
解决方案:分层上下文 + 渐进式披露
| 层级 | 名称 | 加载时机 | 内容 |
|---|---|---|---|
| Tier 1 | 热内存 | 每次会话自动加载 | CLAUDE.md / AGENTS.md 项目概览 |
| Tier 2 | 领域专家 | 调用特定子 Agent 时 | 专项工具和提示(如调试器、代码分析器) |
| Tier 3 | 冷存储 | 按需拉取 | 研究文档、规范、历史记录 |
关键技术:
Harness 控制 AI 与业务系统之间的网关,遵循严格流程:
对于敏感操作,Harness 创建"中断点":
progress.txt、IMPLEMENTATION_PLAN.md 等工件定位:目前最成熟的 Harness 之一
核心特性:
用户输入 → Agent Loop → 工具调用/执行 → 状态更新 → 流式返回
HaaS(Harness as a Service):
从 client.chat.completions.create() 到 client.responses.create() 再到 agent.query(),核心原语正在从 LLM API 转向 Harness API。
定位:OpenAI 官方 Harness,支持多平台统一体验
架构组件:
AGENTS.md 作为动态反馈循环:每次会话读取,失败时更新定位:开源替代方案,48K GitHub stars
与 Claude Code 对比:
| 特性 | Claude Code | OpenCode |
|---|---|---|
| 许可 | 闭源 | 开源 |
| 默认权限 | 只读(需 opt-in) | 可配置 |
| MCP 加载 | Eager(~134K tokens) | Declarative(按需) |
| 系统提示 | 固定 2896 tokens | 模块化 Markdown,可完全定制 |
| 模型支持 | Anthropic 模型最优 | 多提供商 |
注意:2026 年 1 月 Anthropic 封禁了 OpenCode 使用 Claude 消费级 OAuth Token,API Key 仍可用。
定位:开源多引擎 Harness CLI
设计理念:一个 Harness,多个引擎(Claude / OpenCode / Copilot)
四层架构:
┌─────────────────────────────────────────┐
│ Atomic CLI │
│ (Workflows, Sub-agents, Graph Engine) │
├─────────────────────────────────────────┤
│ Event-Driven Streaming Layer │
├─────────────────────────────────────────┤
│ Unified Client Interface │
├────────────┬────────────┬───────────────┤
│ Claude SDK │ OpenCode │ Copilot SDK │
│ │ SDK │ │
└────────────┴────────────┴───────────────┘
实现四大支柱:
传统软件失败是响亮的(报错、测试失败)。Agent 失败是静默的:
| 测试类型 | 目的 |
|---|---|
| 黄金路径 | 标准预期用例 |
| 边界情况 | 缺失字段、模糊意图、格式错误 |
| 工具故障 | 模拟限流、超时、无效响应 |
| 策略安全 | 审批、限制操作、隐私约束 |
| 成本预算 | Token 上限、工具调用上限、运行时间限制 |
| 回归测试 | 变更后运行相同用例 |
| 框架 | 特点 |
|---|---|
| DeepEval | 开源 Python 库,评估工具正确性和任务完成度 |
| Arize / Maxim / Confident AI | 商业评估平台 |
| Agent Runner | Design Arena 开源,执行真实用户提示,追踪完整行为 |
| AIRTBench | Dreadnode 红队基准,70+ AI/ML 安全挑战 |
| FAB | 金融 Agent 基准,v1.1 更新包括搜索提供者切换、工具调用提交 |
| Terminal-Bench | Stanford 合作,评估终端环境下的软件工程、系统管理、游戏 |
Dex Horthy 的发现:
Carlini 的发现:Claude "无法感知时间,无人看管时会愉快地花几小时运行测试而非取得进展"。
解决方案:确定性测试子采样(随机 1-10%,但每 Agent 确定,跨 VM 随机)。
Geoffrey Huntley 的核心概念:
OpenAI 的实践:
AGENTS.md 不是静态文档,而是活的约束系统当 Claude 频繁在实现新功能时破坏现有功能时,解决方案是更严格的 CI 管道——Harness 层解决模型层的问题。
从 LLM API(聊天式端点)到 Harness API(可定制运行时)。
"未来 6 个月内,大多数面向用户的 AI 产品将使用现有 Agent Harness 作为核心用户交互模式。"Harness 使"Agent Infra"商品化,将努力转移到:
| 场景 | 建议 |
|---|---|
| 简单的一次性脚本 | Framework 足够 |
| 需要多步推理的复杂任务 | 需要 Harness |
| 长时间运行的任务 | 必须 Harness(状态持久化) |
| 多 Agent 协作 | 必须 Harness(协调机制) |
| 生产环境部署 | 必须 Harness(安全、监控、回滚) |
CLAUDE.md / AGENTS.md:
# 项目名
## 概览
一句话描述项目
## 项目结构
| 路径 | 类型 | 用途 |
|-----|------|------|
| `src/` | 目录 | 源代码 |
| `tests/` | 目录 | 测试 |
## 快速参考
### 命令
## 架构约束
- 依赖流向:Types → Config → Repo → Service → Runtime → UI
- 禁止跨层调用
Agent Harness 是 AI 从"能跑 Demo"走向"工业级应用"的关键基础设施。它解决了大模型在可靠性、持久性、安全性方面的固有弱点,让 Agent 真正成为可部署的生产系统。
核心公式:
优秀的模型 + 糟糕的 Harness = 不可靠的 Agent
优秀的模型 + 优秀的 Harness = 可靠的自治系统
研究报告整理:小凯
日期:2026年3月8日
#记忆 #小凯 #AI研究 #Agent #Harness