怎么理解 Agent = Model + Harness

coldingcode 2026-07-08 17:27 1

先解释为什么会有这句话


这句话最早其实是很多 AI Infra 公司(包括 LangChain、OpenAI SDK、Anthropic、Cognition、Cursor 等生态)慢慢形成的共识。


以前大家觉得:Agent = 一个超级聪明的大模型,后来发现不是。真正上线以后,大模型真正负责的大概只有:理解问题、推理、决策、写一点代码、输出下一步。


真正复杂的是:



  • 调用工具

  • 状态管理

  • 上下文压缩

  • 错误恢复

  • 权限控制

  • Memory

  • Observation

  • Workflow

  • Retry

  • Logging

  • Evaluation


这些东西全部不是模型。


于是大家开始说:Agent = Model + Harness,这里 Harness 可以理解成:把模型"驾驭"起来的一整套运行框架。




我怎么理解 Harness


我更喜欢把 Harness 理解成:Agent Runtime,里面至少包括几个层次。


第一层:Context Harness


就是模型到底看到什么。


例如:User Question + History + Memory + Tool Results + Long Context + Prompt,其实都是 Harness 决定。很多 Agent 的性能不是模型决定,而是:你给模型看了什么。


第二层:Execution Harness


模型说:Call Search,谁去调用?模型不会。Harness 去:execute() -> 拿到结果 -> 继续喂回模型,包括:Tool Calling 、MCP 、 Function Calling 、 API 、 Browser 都属于这里。


第三层:Loop Harness


Agent 为什么能一直干活?因为:Think -> Act -> Observe -> Think -> Act -> Observe,这个循环不是模型自己会。Harness 在控制:


while not done:

model()

execute()

observe()


所以 ReAct 本质上就是一种 Harness。


第四层:Recovery Harness


Agent 最大的问题其实不是不会。而是会失败。


例如:



  • Tool timeout

  • API error

  • 404

  • Permission denied

  • JSON parse failed


这些模型不会处理,Harness 要:Retry 、 Fallback 、 Alternative Tool 、 Repair JSON 、 Human in loop,真正上线以后,这部分代码可能比 Prompt 还多。


所以 Model 的职责越来越小了吗?


恰恰相反。 Model 的职责越来越纯。以前,模型负责:Planning、Tool、Memory、Workflow、Coding、Everything,现在越来越变成:Reasoning 、 Decision 、Planning 、Generation,其它全部外包。所以Model 更像CPU,Harness 更像Operating System,这个比喻我觉得比 “Harness” 更容易理解。




但我觉得还缺一层,如果让我定义,我会写:Agent=Runtime+Model+Environment,或者:Agent=Reasoning+Execution+World。为什么?因为很多 Agent 能力其实来自 Environment。


举个例子:Claude Desktop为什么厉害?不是 Claude。而是:Claude +MCP +Filesystem +Git +Browser +Slack +Notion。换句话说:Agent 能干什么。80% 是:它能接触世界吗?而不是:它会不会推理。


再进一步,我觉得还缺 Memory,很多人忽略 Memory,真正长期 Agent:Model+Harness+Memory。Memory 包括:短期:Conversation、Scratchpad,长期:User Preference、Past Experience、Project Knowledge、Failures、Learned Skills。没有 Memory,Agent 永远都是,第一天上班。


             Goal


┌────────────┐
│ Model │
│ Reasoning │
└────────────┘

Decision / Plan


┌────────────┐
│ Harness │
│ Runtime │
└────────────┘
│ │ │
│ │ │
Memory Tools Environment
│ │ │
└────┴────┘

Observation


Model


其中:




  • Model 决定"怎么想"(推理、规划、判断)。




  • Harness(Runtime) 决定"怎么执行"(循环、工具调用、错误恢复、状态管理)。




  • Memory 决定"是否积累经验"(跨会话、跨任务的持续能力)。




  • Environment 决定"能影响什么世界"(浏览器、代码、文件、业务系统、机器人等)。






如果你在学习或构建 Agent,我建议把精力按下面的比例分配:




  • 20%:模型能力——理解推理、Prompt、工具调用等基本能力。




  • 50%:Harness / Runtime——上下文管理、工作流、状态机、调度、容错、可观测性。




  • 30%:Environment 与 Memory——如何连接真实业务系统,如何让 Agent 跨任务积累知识和经验。




一句话总结我的观点:



“Agent = Harness + Model” 是一个优秀的工程起点,但不是终点。真正完整的 Agent 更像是:Agent = Model(思考) + Harness(执行) + Memory(积累) + Environment(工作环境)。



如果把 Agent 比作一个人,那么模型是大脑,Harness 是神经系统和身体协调机制,Memory 是长期记忆,Environment 则是这个人能够接触和改变的世界。只有这四者协同,Agent 才真正具备持续完成复杂任务的能力。

最新回复 (4)
  • 邱虎龙 07-08 17:31
    1

    干活满满;mark住;狠狠学习; ^-^

  • 王麻子 07-08 17:33
    2

    总结的太到位了,尤其是强调Memory那段。没有长期的记忆和失败的积累,agent每次启动都是“第一天上班”,根本谈不上智能。感谢佬的思维模型分享。

  • Cyg 07-08 17:33
    3

    都是精华,先mark,后续在细读。

  • tina_summer 07-08 19:26
    4

    我的认知是 Agent = Harness + Model,比如memory,enviroment & Sandbox 这些都属于harness。所以虽然概念不一样,但是一个agent需要做的事情基本是认知一致的,包括 运行时环境&沙箱、工具集成、上下文管理、编排与执行、可观测层、质量验证层、安全治理层都属于 harness的 建设范畴。

* 帖子来源Linux.do
返回