你的 Agent 其实不是 Model
Agent Is Not the Model
很多人习惯将 Agent 和 Model 混为一谈,但这在技术实现上完全是两码事。Model 只是像 Sonnet 或 Opus 这样纯粹的数学函数,负责将输入转化为输出;而真正与外界交互、调用工具并编排逻辑的是 Harness 层。Inference service 则像中间商,负责运行模型并计费。如果把 Model 比作建筑师,Harness 就是负责落地的施工队。分清这三层架构至关重要,因为当系统出现问题时,只有精准定位是 Model 的推理能力不足、Harness 的上下文缺失,还是 Inference service 的延迟过高,才能对症下药。
当你能够准确叫出每一层的名字时,你就能修复那一层的问题。
HN 评论区
34- agentdev001
文章结尾提到了'这不是在咬文嚼字……',所以,这里列几条不算咬文嚼字的补充:
在'Real world examples'(现实世界案例)表格中:
'Claude Desktop'目前包含三个 harness(载体/框架):Claude、Claude Cowork 和 Claude Code。
'Claude CLI',我推测指的是 Claude Code CLI。这与有时被称为'Claude CLI'的'ant CLI'是不同的。
'Cursor'可能指代其中任何一个——但'Cursor Agents'、'Cursor Cloud Agents'、'Cursor CLI'以及那个 VSCode 分支现在叫什么,它们都是不同的。也许在这篇博客的语境下区别不大,但示例表格中并未明确指代的是哪一个。
'ChatGPT'听起来像是 ChatGPT 网页界面。OpenAI 的桌面应用名为'ChatGPT Desktop',现在包含了'ChatGPT work'和'Codex'(Codex Desktop,不是 TUI,尽管它本质上是对 TUI 的封装,并通过应用内置工具赋予其能力)。我认为 ChatGPT 网页界面的 harness 会根据设置和订阅等级(远程沙箱等)略有不同。此外,根据使用的'ChatGPT'产品不同,可用的模型也有区别(instant/live 等,非 5.6 版本的 luna/terra/sol 套件)。
Inference service 更准确的叫法是'default inference provider'(默认推理提供商)。
另外,这篇文章读起来有股 AI 生成的味道。
- azath92
如果目标是区分 model(模型)和 agent(智能体),我认为这里的示例中'agent system'(智能体系统)承担了过多的工作。
我在试图区分这两者时,会用到一个对我很有用的思维框架扩展:application(应用,如 Cursor)-> 有时包含 orchestrator(编排器)以及所有提升 QOL(生活质量/用户体验)的功能,如恢复、检查点等 -> single or multiple agents(单个或多个智能体,如 Cursor Agents)-> 运行单个或多个智能体实例(Cursor 中是单个智能体)-> service api -> model。
这是为了解决我常看到的一种混淆:人们将 agent 与我们使用 agent 的应用混为一谈,而不是像这篇文章试图厘清的那样,去区分 agent 和 model。
- yaaaaam
一般来说,agent 就是代表某人或某物执行任务的任何东西。
- 6keZbCECT2uB
有趣的一点是,在 Claude Code 中,你可以配置'agents',它们只是提示词预设(prompt presets)加一些配置。或者,子智能体在配置上有时与前台智能体(通常称为 orchestrator)无法区分,唯一的区别是它们的上下文窗口(context window)里的内容不同(基本上就是 fork 出来的)。
在我看来,如果有一个普遍且无歧义的术语,就用它(比如 harness, model)。如果有一个歧义术语你必须解释,那就尽量别用。语言是用来沟通的。
- rwoerz
> An agent system is made up of several layers.
为什么用'layers'(层)?Multi-agent System (MAS) [1] 的组成部分被称为'agents'。顺便一提:转喻式的语义扩散在软件工程中也并不少见。