📄 一句话概括
把本章的大件横过来看:模型只负责产生下一步与决定调哪个工具;能不能调、在哪跑、结果存哪、下轮看什么、派谁干、怎么跨轮——全是 Runtime 的事。
📝 本节和前面几节的关系
本章倒数第二节,把 PTC、Subagent、Sandbox、持续任务、Extensions 横过来摆一张表。
一、两行归模型
- 产生下一步:说什么、调不调工具。
- 决定调哪个工具、传什么参数。
就这两件——模型的能力边界很窄,它只会生成 Token(0.1 就说过)。
二、六件事归 Runtime
- 能不能调:审批 + 沙箱 + 规则插件。
- 在哪跑:沙箱提供者 + 策略。
- 结果存哪:会话事件流水(append-only)。
- 下轮看什么:上下文装配(投影 + 压缩 + 稳定前缀)。
- 派谁来干:Subagent 提供者 + 后台模式。
- 跨轮推进:目标 + 跨轮驱动。
三、回到那句等式
Model + Harness = Agent——本章就是把这句等式的右边展开。
把六件事摆在桌上,就明白为什么【换个模型】不等于【换个 Agent】:六件事一件都没动。
四、学这一章的目的
不是记住插件名,是拿到一张分工表:出问题先看是哪一格。
- 模型没看到信息 → 上下文装配那一格。
- 该调的没调成 → 审批/沙箱那一格。
- 隔了一轮接不上 → 目标与跨轮驱动那一格。
五、动手 Demo:Runtime 到底多做了什么
同一件事,两边各干什么:
rows = [("产生下一步", "全部", "-"), ("决定调哪个工具", "全部", "-"),
("能不能调", "-", "审批+沙箱+规则"), ("在哪跑", "-", "沙箱+策略"),
("结果存哪", "-", "事件流水"), ("下轮看什么", "-", "上下文装配"),
("派谁来干", "说需求", "提供者+后台模式"), ("跨轮推进", "-", "目标+驱动")]
for a, m, r in rows:
print(" %-14s 模型: %-6s Runtime: %s" % (a, m, r))
实跑输出:
--------------------------------------------------------------------
Runtime 到底多做了什么
--------------------------------------------------------------------
同一件事,两边各干什么:
一件事 模型的份 Runtime 的份
------------------------------------------------------------------
产生下一步 全部 —
决定调哪个工具 全部(给理由) —
能不能调 — 审批 + 沙箱 + 规则
在哪跑 — 沙箱提供者 + 策略
结果存哪 — 会话事件流水(append-only)
下轮看什么 — 上下文装配(投影 + 压缩)
派谁来干 说需求 Subagent 提供者 + 后台模式
跨轮推进 — 目标 + 跨轮驱动
------------------------------------------------------------------
八行里模型只占两行——**Runtime 多做的,就是这六件事**。
八行里模型只占两行——这就是 Harness 存在的理由。 换个模型,这六件事一件都没动——换模型不等于换 Agent。 出问题先看是哪一格:这张表就是排查表。
30 秒实验
- 默写模型的份与 Runtime 的份,各几条。
- 拿一个你遇到的 Agent 问题,判断它落在哪一格。
- 想想为什么【换个模型】解决不了上下文装配的问题。
常见误区
- 错误:Agent 的能力主要来自模型。——纠正:模型只做两件事——产生下一步、选工具。
- 错误:换个更强的模型,Agent 就变强了。——纠正:六件事一件没动——换模型不等于换 Agent。
- 错误:这张分工表是总结,没什么用。——纠正:它是排查表——出问题先定位到格。
自测三问(点开对答案)
1. 模型在表里占几行? —— **两行**:产生下一步、决定调哪个工具。 2. Runtime 管哪六件事? —— 能不能调、在哪跑、结果存哪、下轮看什么、派谁来干、跨轮推进。 3. 这张表有什么用? —— **排查表**——出问题先定位到格,而不是先怀疑模型。- ☐ 下一节(7.10 本章小结)
相关笔记
- 本章小结 —— 下一节的收口
- Agent Loop 不是黑盒 —— 过程视角的同一张表
- Agent 的核心能力 —— 核心能力与六件事的对照
- 🐳 DeepSeek Harness · 索引