LangChain Vivek Trivedy 的系统性定义:Agent = Model + Harness。Harness 是除模型本身之外的所有代码、配置和执行逻辑,是把模型智能变成实际工作能力的系统。
核心定义
Agent = Model + Harness
Harness 包含:
- System Prompts
- Tools / Skills / MCPs 及其描述
- Bundled Infrastructure(filesystem、sandbox、browser)
- Orchestration Logic(subagent spawning、handoffs、model routing)
- Hooks/Middleware(compaction、continuation、lint checks)
模型只能接收文本/图像/音视频,输出文本。它无法:持久化状态、执行代码、访问实时知识、配置运行环境。这些都是 harness 层的职责。
核心组件(从模型需求反推)
1. Filesystem — 最基础的 harness primitive
- 持久化存储,跨 session 保留状态
- 多 agent 协作的共享账本(Agent Teams 依赖此)
- git 加版本控制,支持回滚和分支实验
- meta-harness 的文件系统级诊断也以此为基础
2. Bash + Code 执行 — 通用工具
- ReAct 循环的核心执行原语(reason → act → observe → repeat)
- 让 agent 自主设计工具,而不是依赖预配置工具集
- 代码执行成为自主问题解决的默认通用策略
3. Sandbox — 安全隔离执行环境
- 安全执行 agent 生成的代码,避免本地风险
- 按需创建/销毁,支持大规模并行任务
- 预装语言运行时、CLI(git、测试框架)、浏览器等
4. Memory Search — 持续学习
AGENTS.md/CLAUDE.md等 memory file 标准,每次 session 注入- agent 写入记忆文件 → harness 下次加载 → 跨 session 持续学习
- Web Search / MCP(如 Context7)补充知识截止日期后的信息
5. Context Rot 对抗
Context Rot:随着上下文窗口填满,模型推理能力下降。
| 机制 | 作用 |
|---|---|
| Compaction | 上下文快满时智能压缩/摘要,让 agent 继续工作 |
| Tool call offloading | 大输出截断保留头尾,完整内容存文件系统按需读取 |
| Skills | 渐进式披露,避免启动时加载过多工具污染上下文 |
6. Long Horizon 自主执行
- Ralph Loop:hook 拦截模型退出尝试,注入原始 prompt 到新 context 继续工作(文件系统保存状态)
- Planning:分解目标为步骤,写入 plan file,harness 注入提醒
- Self-verification:运行测试套件,失败时将错误反馈给模型,形成自我改进循环
模型训练与 Harness 的耦合
Claude Code、Codex 等产品在 post-training 时把 harness 也纳入训练循环:
- 有用的 harness primitive 被发现 → 加入 harness → 用于训练下一代模型
- 副作用:模型对特定 harness 产生过拟合(如 Codex 的 apply_patch 工具逻辑)
- 但这不意味着最佳 harness 就是模型被训练时用的那个——TerminalBench-2 证明只改 harness 可以从 Top 30 提升到 Top 5
未来方向
- 百 agent 并行协作共享代码库
- Agent 自分析 traces 识别并修复 harness 级失败(即 meta-harness 的方向)
- 动态 just-in-time 工具组装,而不是预配置
相关
- agent-continual-learning — Harrison Chase 的三层框架,本文是 Harness 层的详细解剖
- meta-harness — Harness 自动优化框架,对应”agent 自分析 traces 修复 harness”的未来方向
- openclaw-sessions-tools — OpenClaw 的多 Agent 编排,属于 Orchestration Logic 范畴
- 2604.14228_dive-into-claude-code — Claude Code 架构分析,印证 harness 设计原则