Model / Harness / Environment / Agent
来源:2026-05-02 晚间简报,引自 Matt Pocock @mattpocockuk
Matt Pocock 用四个一句话定义把整个 Agent 领域最常被搅在一起的术语彻底分开。这套 taxonomy 之所以重要,是因为 "model" 和 "agent" 在日常对话中几乎可以互换使用,但它们在工程上是完全不同的层。
四层定义
| 概念 | 定义 |
|---|---|
| Model | 参数块。训练时写入的权重。无状态,只做 next-token prediction。 |
| Harness | 围绕模型的一切,将模型变成 Agent:工具、系统 prompt、上下文窗口管理、循环逻辑等。 |
| Environment | Agent 作用的世界。Harness 之外、Agent 通过工具感知和作用的一切。 |
| Agent | 被 harness 包裹、处于 environment 中的模型。 |
Claude 家族示例
- Opus 是一个 model——同一个权重文件
- Claude Code 和 Claude Web 是不同的 agent,因为它们的 harness 不同(不同工具、不同系统 prompt、不同上下文管理策略),即使底层是同一个 model
- 文件系统是一个 environment——Agent 通过文件读写工具感知、作用
- MCP servers 向 environment 添加 tools——MCP 是 environment 接入 harness 的协议
为什么这套区分很关键
如果不区分这四层,一切关于 "为什么 model X 在产品 Y 里表现差" 的讨论都会变得无效。讨论真正发生在以下三个独立维度:
- Model 维度——基础能力上限。换 model 决定下限和上限。
- Harness 维度——同一个 model 在不同 harness 下输出差异巨大。Claude Code 和 Claude Web 的体验差距大部分来自 harness 而非 model。
- Environment 维度——同一个 agent 在不同 environment 中可用工具不同,能干的事不同。
Karpathy Software 3.0 的核心论点 "Context Window 是新的编程界面" 本质上是在说:harness 是新的 IDE——它决定一个原始 model 能用来做什么。
与本 wiki 其他文章的对应
| 这里的概念 | 本 wiki 中的对应 |
|---|---|
| Model | 模型本身(GPT-5.5, Claude Opus 4.7, DeepSeek V4) |
| Harness | Harness Engineering 综述 整个 section |
| Environment | Agent Memory vs Context Substrate 中的 substrate;Cloudflare Sandboxes 这类隔离环境 |
| Agent | Components of a Coding Agent、Agent Architecture Unsentimental |
为什么收录
这是把"什么是 harness"讲清楚的最简定义之一。每次新的 harness/agent 文章进 wiki 时,可以拿这个 taxonomy 校准用词,避免把 "model 升级" 和 "harness 升级" 混在一起讨论。
Related
- harness-engineering/overview — Harness Engineering 综述
- harness-engineering/components-coding-agent-detailed — Coding Agent 组件结构
- harness-engineering/agent-architecture-unsentimental — Agent 架构本质