Agent = Model + Harness
Agent = Model + Harness
这个公式是 LangChain 工程师对 Agent 本质的一种精炼抽象,把一个复杂的系统拆解成两个正交的关注点。
两个核心组件
🧠 Model(模型)
就是 LLM 本身,负责推理与决策:
- 理解用户意图
- 规划下一步行动(调用哪个工具、传什么参数)
- 综合工具返回结果,形成最终答案
Model 是 Agent 的"大脑",但它本身是无状态、无执行能力的 —— 只能接收 token、输出 token。
🔧 Harness(框架/脚手架)
Harness 是套在 Model 外面的执行基础设施,负责把模型的"想法"变成"行动":
| Harness 的职责 | 具体示例 |
|---|---|
| 工具注册与调用 | 搜索、代码执行、数据库查询 |
| 状态与记忆管理 | 对话历史、中间变量、向量记忆 |
| 循环控制 | ReAct 循环、最大步数限制、终止条件 |
| Prompt 工程 | System prompt、Few-shot 示例注入 |
| 错误处理与重试 | 工具调用失败后如何恢复 |
| 多 Agent 编排 | 调度子 Agent、汇总结果 |
为什么这个拆分有价值?
┌─────────────────────────────────────┐
│ Harness │
│ ┌─────────┐ ┌─────────────────┐ │
│ │ Tools │ │ Memory/State │ │
│ └────┬────┘ └────────┬────────┘ │
│ │ │ │
│ ┌────▼──────────────────▼────────┐ │
│ │ Model (LLM) │ │
│ │ 推理 → 决策 → 输出 Action │ │
│ └────────────────────────────────┘ │
│ │ │
│ ┌────▼────────────────────────┐ │
│ │ Loop Control / Planner │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
关注点分离:模型能力和执行基础设施可以独立演进
- 换一个更强的模型(GPT-4 → Claude 3.7),Harness 不用改
- 改造工具集或记忆策略,不影响模型本身
解释了 Agent 的上限和瓶颈:
- Agent 表现差 → 先问是 Model 不够聪明,还是 Harness 设计有缺陷
- 很多"Agent 失败"其实是 Harness 没做好(工具描述不清、循环没有退出条件等)
一个直觉类比
Model = 一个聪明的顾问,只靠大脑思考,但手脚被绑着
Harness = 给顾问配备的办公室:电话、电脑、秘书、会议室、日历……
Agent = 顾问 + 完整的办公室,才能真正把事情做成
实践启示
在构建 Agent 时,这个框架提示你要分别优化两侧:
- Model 侧:选择推理能力强、工具调用准确的模型;优化 Prompt 引导模型输出结构化 Action
- Harness 侧:工具描述要精准、记忆要高效检索、循环要有防无限递归机制、错误要可恢复
这也是为什么很多 Agent 框架(LangGraph、AutoGen、CrewAI)的核心竞争力都在 Harness 的设计上,而不是模型本身。
浙公网安备 33010602011771号