M10 成本、性能与跨层优化
本章产出:端到端成本分解、固定预算的对照实验、缓存隔离设计,以及一份不会混淆微基准与系统收益的优化报告。
1. 从“工具快了十倍”到“用户快了多少”
一次任务的示例耗时为:排队3000ms、准备环境1000ms、模型调用合计5000ms、工具执行合计2000ms,串行总计11000ms。如果把准备环境从1000ms降到200ms,总耗时变成10200ms,降幅约7.27%,不是80%。
这是课程合成数字,不是实际服务测量。它展示的是分母问题:局部百分比不能直接成为端到端百分比。若准备和模型请求可以重叠,还应使用关键路径分析,不能简单把所有Span加起来。
2. 用依赖图而不是一条平均值看任务
Agent轨迹可建模为动态DAG:模型节点产生工具节点,工具结果可能触发下一轮模型。每个节点有资源需求、成本、依赖与失败风险。调度器必须在依赖满足、预算允许、权限满足时才能执行。
端到端时间包括等待,不只包括计算。系统吞吐受瓶颈资源和到达模式影响。优化模型token可能减少推理时间,也可能改变决策质量;并行工具可能降低关键路径,也可能增加无用工作和限流。
Harvard课程按观察、构建、优化再深入Serving的顺序组织实验,是值得借鉴的方法;本课程只要求API层和执行层,GPU Serving作为延伸。S15
3. 成本应按成功任务核算
总成本包含模型输入/输出、检索或工具收费、sandbox运行、存储、重试和必要人工核对。课程用“模拟成本单位”演示,真实实验需要用实际计费规则与usage对账。
策略A执行100次任务,成功80次,总成本40单位,每个成功任务0.5;策略B成功90次,总成本54单位,每个成功任务0.6。B完成率更高但更贵,不能只凭一个指标判断优劣。先确定任务质量下限、时延约束和预算,再讨论选择。
如果失败具有不可接受的安全后果,不能用足够多成功任务把它平均掉。安全约束单独验收。
局部快两倍,整体快多少?
用关键路径与失败成本衡量端到端优化。
合成教学数据 · 未运行真实模型静态推演与完整规格
I20 局部快两倍,整体快多少?
关联章节:M10 · 交互类型:performance-model · 状态:提供纯逻辑参考函数,UI待实现
教学目标
用关键路径与失败成本衡量端到端优化。
初始状态
{
"before": {
"model": 800,
"tools": 700,
"queue": 300,
"storage": 200
},
"after": {
"model": 400,
"tools": 700,
"queue": 300,
"storage": 200
}
}
操作控件
编辑各段耗时
切换串行/给定关键路径视图
计算总时长与speedup
加入额外重试成本
查看假设
状态变化规则
默认串行模型只求和;并行时必须输入真实依赖,不自动把所有段max。
分别显示组件加速与整体加速。
黄金案例与反馈
base
输入:
{
"before": [
800,
700,
300,
200
],
"after": [
400,
700,
300,
200
]
}
期望:
{
"before_total": 2000,
"after_total": 1600,
"speedup": 1.25
}
模型2倍不等于任务2倍。
extra-retry
输入:
{
"before": [
2000
],
"after": [
1600,
600
]
}
期望:
{
"speedup": 0.9090909090909091
}
额外重试使优化倒退。
完成条件
解释1.25来源
构造组件更快但整体更慢的反例
反馈层次
提交预测后显示结果;允许跳过预测但记录跳过,不阻止阅读
结果同时显示状态变化、原因与被拒绝动作;不是只给红绿灯
第一次错误给边界提示,第二次提供最小反例;参考推导始终可主动打开
重置恢复固定初始状态并保留历史尝试供用户手动清除
无障碍与静态替代
全部操作有原生button/input/select替代,不依赖拖拽
图与动画提供同步文字状态表;支持prefers-reduced-motion
状态改变用aria-live=polite摘要,不逐字朗读长日志
焦点不跳走;错误提示关联输入;颜色不是唯一编码
无JavaScript时直接展示初始输入、规则和黄金案例表,读者仍能完成纸面推演。状态动画仅作解释,不能成为获取答案的唯一途径。
持久化与重置
使用版本化键agent-course:1:I20,仅保存本地学习状态。支持单卡重置和全站清除;存储失败时以内存模式继续,不阻断阅读。
必须避免的误导
计算为成本模型,不是压测结果;禁止自动写“性能提升25%”混淆时长下降20%与吞吐比。
执行边界
纯本地教学状态机;不执行任意代码,不连接真实资金/模型/宿主Shell。
逻辑参考
web/reference/engines.mjs中的e2e;对应测试在web/reference/engines.test.mjs。UI可复用或等价移植,但不得改变黄金结果。
4. 上下文优化有两种完全不同的目标
减少上下文可以降低费用和部分延迟,也可能减少信息干扰;保留稳定前缀可能帮助供应商缓存。两者有时一致,有时冲突。频繁改动开头的时间戳或动态工具列表可能破坏缓存,而为缓存保留大量无用文本又可能增加实际成本。
具体缓存规则和计费依赖供应商、模型和版本,不能凭通用术语推断。课程只要求记录命中/未命中的实际usage并进行对照,不给出固定行业价格或承诺命中率。S03
压缩策略还影响可恢复性。原始事件保存在持久日志,模型上下文是从中派生的投影;这样压缩失败时可以重新构造,而不是永久丢失事实。Anthropic对会话与上下文分离的工程叙述支持这种架构方向,但具体实现仍由你的实验验证。S11
5. 缓存可复用,权限不可复用
订单查询缓存键不能只有order_id。至少考虑租户、授权主体或权限版本、资源版本、查询参数、工具schema和数据时效。不同主体看到的字段可能不同,即使底层订单相同。
可以共享公开政策或只读依赖的准备工作,但不能把一个用户的原始模型上下文、凭证或可写工作区直接给另一个用户。去掉租户字段后命中率升高,不是性能优化,而是隔离错误。
当源数据变化,缓存要失效或按版本读取。TTL只是过期上界,不能保证写后立刻一致。退款前重新读取权威余额,不能从缓存结果直接扣款。
哪些缓存能命中,哪些必须失效?
缓存身份、权限域和事实版本不可忽略。
合成教学数据 · 未运行真实模型静态推演与完整规格
I21 哪些缓存能命中,哪些必须失效?
关联章节:M10 · 交互类型:cache-key-audit · 状态:提供纯逻辑参考函数,UI待实现
教学目标
缓存身份、权限域和事实版本不可忽略。
初始状态
{
"stored": {
"tenant": "shop-a",
"user": "u-alice",
"order": "A100",
"order_version": 1,
"policy_version": "v2",
"scope": "refund-proposal"
},
"request": {
"tenant": "shop-a",
"user": "u-alice",
"order": "A100",
"order_version": 1,
"policy_version": "v2",
"scope": "refund-proposal"
}
}
操作控件
逐项修改租户/用户/订单版本/政策版本/范围
切换缺失键字段的错误实现
比较命中结果
查看缓存分类
状态变化规则
正确演示按全部所需字段比较;只读公共工件可另设明确共享域。
一项版本变化使旧业务派生结果失效;不能将模型前缀缓存与业务授权缓存等同。
黄金案例与反馈
same
输入:
{
"changed_field": null
}
期望:
{
"safe_hit": true
}
仅表示键匹配,仍需有效期与权限未撤回。
tenant
输入:
{
"changed_field": "tenant"
}
期望:
{
"safe_hit": false
}
同订单号可能属于不同租户。
version
输入:
{
"changed_field": "order_version"
}
期望:
{
"safe_hit": false
}
旧金额或资格不能继续复用。
完成条件
演示跨租户键碰撞
解释共享只读底座不等于共享可变业务缓存
反馈层次
提交预测后显示结果;允许跳过预测但记录跳过,不阻止阅读
结果同时显示状态变化、原因与被拒绝动作;不是只给红绿灯
第一次错误给边界提示,第二次提供最小反例;参考推导始终可主动打开
重置恢复固定初始状态并保留历史尝试供用户手动清除
无障碍与静态替代
全部操作有原生button/input/select替代,不依赖拖拽
图与动画提供同步文字状态表;支持prefers-reduced-motion
状态改变用aria-live=polite摘要,不逐字朗读长日志
焦点不跳走;错误提示关联输入;颜色不是唯一编码
无JavaScript时直接展示初始输入、规则和黄金案例表,读者仍能完成纸面推演。状态动画仅作解释,不能成为获取答案的唯一途径。
持久化与重置
使用版本化键agent-course:1:I21,仅保存本地学习状态。支持单卡重置和全站清除;存储失败时以内存模式继续,不阻断阅读。
必须避免的误导
哈希键不提供权限本身;真实实现还需授权与失效。
执行边界
纯本地教学状态机;不执行任意代码,不连接真实资金/模型/宿主Shell。
逻辑参考
web/reference/engines.mjs中的sameCacheScope;对应测试在web/reference/engines.test.mjs。UI可复用或等价移植,但不得改变黄金结果。
6. 预取、并行和模型路由的实验边界
预取适合已授权、低成本、只读且有较高使用概率的操作。提前发起退款、发邮件或昂贵外部查询不是无害优化。即使读操作也可能泄露访问意图或产生计费,需要纳入预算。
模型路由可以先用较低成本模型,遇到明确困难再升级。但升级阈值必须通过开发集确定,且把前一次失败成本计入总成本。不能只报告最终强模型那次成功的费用。
多Agent需要证明独立分工带来的收益超过通信、重复检索和合并成本。对于一笔退款,一个协调器通常更容易验证;对于互相独立的资料研究,分工可能有价值。课程扩展只做受控对照,不把“Agent数量”当能力指标。
7. 准备工作的边际收益
假设一次共享准备成本P,每任务额外开销e,复用N次后的平均准备成本为P/N+e。但若缓存失效率高、不同租户无法共享或工作区清理昂贵,真实收益会小很多。
为不同策略记录冷启动与热启动,不能只展示预热后最快一次。预热池也占用空闲资源;端到端优化需要把保有成本与峰值需求纳入,而不只看单次响应。
在轻运行时研究中,代码单元、只读数据和编译产物可能共享,任务权限、可写内存、取消和输出缓冲必须分离。这是一个有价值的系统研究方向,但不是本课程基础实现的前置条件。
8. 一份可复现的优化协议
先固定基线、任务集、模型配置、预算与环境版本。提出一个能被证伪的假设,例如“旧工具输出遮蔽主要解释延迟,可用引用替代而不影响退款证据”。实施一个主要改动,运行相同任务和重复次数,再按任务配对比较。
报告均值、分位数、成功率、成本、失败类别与置信局限。若样本太小,不要画出过度精确的小数。记录优化额外增加的代码、配置和运维复杂度。维护成本也属于工程决策。
9. L08验收
至少完成两个对照:上下文策略与一个系统机制,例如缓存、准备复用或调度。必须包含一个“看似优化但破坏正确性”的反例。课程互动用合成数据说明公式;最终求职项目使用你自己实际测得的数据。
K07 · 多Agent的收益要扣掉协调成本
K07 多Agent的收益要扣掉协调成本
类型:并行与组织 · 关联章节:M10 · 阅读方式:先做下面的推演,再看参考讨论。
原文在说什么
原文介绍Anthropic研究系统中的多Agent组织方式与实践经验,体现任务拆分、并行信息获取和协调的重要性。
对本课程的具体启发(课程推论)
课程不把多Agent作为默认升级。只有子任务相对独立、合并标准明确,且并行收益大于额外调用和合并成本时,才值得试验。
两分钟推演
将“对比三个独立商品的公开规格”与“对同一订单作一次不可重复退款”分别拆解,说明哪里适合并行。
参考讨论
独立检索可以并行;共享资金副作用必须经过统一授权/幂等边界,不让三个Agent竞相提交。比较预算时计入所有子Agent。
不能从这里推出什么
某一研究产品的收益不能外推所有任务;多Agent也会放大错误、成本和敏感信息传播范围。
原始来源
- S07 · How we built our multi-agent research system(Anthropic;核查 2026-10-27)
本卡是原创中文概括与教学延伸,不是全文翻译,也不表示原作者认可本课程。不要把原文中的结果替换成本项目实测结果。
独立阅读 →K11 · Brain、Hands与会话记录可以解耦
K11 Brain、Hands与会话记录可以解耦
类型:跨层系统 · 关联章节:M10 · 阅读方式:先做下面的推演,再看参考讨论。
原文在说什么
原文介绍Managed Agents将协调、执行环境和持久会话等职责解耦的设计,说明Harness与工具环境不必是一一绑定的同一进程。
对本课程的具体启发(课程推论)
本课程把模型上下文、持久任务状态与sandbox工作区区分开。可以复用只读准备工作,但每次任务仍需独立权限、可变状态、取消与计费边界。
两分钟推演
设计两任务共享代码依赖缓存但不共享用户文件的方案。画出可共享与不可共享的对象。
参考讨论
共享只读镜像/内容寻址依赖;每任务私有workspace、凭据、运行状态、输出与资源预算。缓存键和失效策略仍需明确。
不能从这里推出什么
产品架构文章不能证明你实现的隔离或性能。课程不移植其公布的性能数字。
原始来源
- S11 · Scaling Managed Agents: Decoupling the brain from the hands(Anthropic;核查 2026-10-27)
本卡是原创中文概括与教学延伸,不是全文翻译,也不表示原作者认可本课程。不要把原文中的结果替换成本项目实测结果。
独立阅读 →K20 · 共享准备工作,不共享任务责任
K20 共享准备工作,不共享任务责任
类型:系统设计推演 · 关联章节:M10 · 阅读方式:先做下面的推演,再看参考讨论。
原文在说什么
上下文管理与职责解耦文章提供思考输入工作集、持久会话和执行环境关系的参照;下面的具体成本模型是课程原创。
对本课程的具体启发(课程推论)
设准备成本P、每任务私有成本E、隔离/复用成本I,n任务独立成本n(P+E),安全复用候选成本P+n(E+I)。只有(n−1)P>nI且质量/隔离不变,才有潜在收益。
两分钟推演
P=40ms,E=20ms,I=5ms,n=10。计算理论串行总成本并指出实际并发系统还缺哪些测量。
参考讨论
独立600ms;候选290ms。不是直接宣称墙钟快2.07倍:还要测并行度、排队、缓存命中、内存、锁、失效与取消开销。
不能从这里推出什么
公式是假设模型,不是生产性能。共享只能在可证明等价的只读准备层进行,不能共享审批、凭据或可变workspace。
原始来源
- S03 · Effective context engineering for AI agents(Anthropic;核查 2026-10-27)
- S11 · Scaling Managed Agents: Decoupling the brain from the hands(Anthropic;核查 2026-10-27)
本卡是原创中文概括与教学延伸,不是全文翻译,也不表示原作者认可本课程。不要把原文中的结果替换成本项目实测结果。
独立阅读 →