# M10 成本、性能与跨层优化

> 本章产出：端到端成本分解、固定预算的对照实验、缓存隔离设计，以及一份不会混淆微基准与系统收益的优化报告。

## 1. 从“工具快了十倍”到“用户快了多少”

一次任务的示例耗时为：排队3000ms、准备环境1000ms、模型调用合计5000ms、工具执行合计2000ms，串行总计11000ms。如果把准备环境从1000ms降到200ms，总耗时变成10200ms，降幅约7.27%，不是80%。

这是课程合成数字，不是实际服务测量。它展示的是分母问题：局部百分比不能直接成为端到端百分比。若准备和模型请求可以重叠，还应使用关键路径分析，不能简单把所有Span加起来。

## 2. 用依赖图而不是一条平均值看任务

Agent轨迹可建模为动态DAG：模型节点产生工具节点，工具结果可能触发下一轮模型。每个节点有资源需求、成本、依赖与失败风险。调度器必须在依赖满足、预算允许、权限满足时才能执行。

端到端时间包括等待，不只包括计算。系统吞吐受瓶颈资源和到达模式影响。优化模型token可能减少推理时间，也可能改变决策质量；并行工具可能降低关键路径，也可能增加无用工作和限流。

Harvard课程按观察、构建、优化再深入Serving的顺序组织实验，是值得借鉴的方法；本课程只要求API层和执行层，GPU Serving作为延伸。[S15](../../references/SOURCES.md#s15)

## 3. 成本应按成功任务核算

总成本包含模型输入/输出、检索或工具收费、sandbox运行、存储、重试和必要人工核对。课程用“模拟成本单位”演示，真实实验需要用实际计费规则与usage对账。

策略A执行100次任务，成功80次，总成本40单位，每个成功任务0.5；策略B成功90次，总成本54单位，每个成功任务0.6。B完成率更高但更贵，不能只凭一个指标判断优劣。先确定任务质量下限、时延约束和预算，再讨论选择。

如果失败具有不可接受的安全后果，不能用足够多成功任务把它平均掉。安全约束单独验收。

<!-- interaction:I20 -->

## 4. 上下文优化有两种完全不同的目标

减少上下文可以降低费用和部分延迟，也可能减少信息干扰；保留稳定前缀可能帮助供应商缓存。两者有时一致，有时冲突。频繁改动开头的时间戳或动态工具列表可能破坏缓存，而为缓存保留大量无用文本又可能增加实际成本。

具体缓存规则和计费依赖供应商、模型和版本，不能凭通用术语推断。课程只要求记录命中/未命中的实际usage并进行对照，不给出固定行业价格或承诺命中率。[S03](../../references/SOURCES.md#s03)

压缩策略还影响可恢复性。原始事件保存在持久日志，模型上下文是从中派生的投影；这样压缩失败时可以重新构造，而不是永久丢失事实。Anthropic对会话与上下文分离的工程叙述支持这种架构方向，但具体实现仍由你的实验验证。[S11](../../references/SOURCES.md#s11)

## 5. 缓存可复用，权限不可复用

订单查询缓存键不能只有order_id。至少考虑租户、授权主体或权限版本、资源版本、查询参数、工具schema和数据时效。不同主体看到的字段可能不同，即使底层订单相同。

可以共享公开政策或只读依赖的准备工作，但不能把一个用户的原始模型上下文、凭证或可写工作区直接给另一个用户。去掉租户字段后命中率升高，不是性能优化，而是隔离错误。

当源数据变化，缓存要失效或按版本读取。TTL只是过期上界，不能保证写后立刻一致。退款前重新读取权威余额，不能从缓存结果直接扣款。

<!-- interaction:I21 -->

## 6. 预取、并行和模型路由的实验边界

预取适合已授权、低成本、只读且有较高使用概率的操作。提前发起退款、发邮件或昂贵外部查询不是无害优化。即使读操作也可能泄露访问意图或产生计费，需要纳入预算。

模型路由可以先用较低成本模型，遇到明确困难再升级。但升级阈值必须通过开发集确定，且把前一次失败成本计入总成本。不能只报告最终强模型那次成功的费用。

多Agent需要证明独立分工带来的收益超过通信、重复检索和合并成本。对于一笔退款，一个协调器通常更容易验证；对于互相独立的资料研究，分工可能有价值。课程扩展只做受控对照，不把“Agent数量”当能力指标。

## 7. 准备工作的边际收益

假设一次共享准备成本P，每任务额外开销e，复用N次后的平均准备成本为`P/N+e`。但若缓存失效率高、不同租户无法共享或工作区清理昂贵，真实收益会小很多。

为不同策略记录冷启动与热启动，不能只展示预热后最快一次。预热池也占用空闲资源；端到端优化需要把保有成本与峰值需求纳入，而不只看单次响应。

在轻运行时研究中，代码单元、只读数据和编译产物可能共享，任务权限、可写内存、取消和输出缓冲必须分离。这是一个有价值的系统研究方向，但不是本课程基础实现的前置条件。

## 8. 一份可复现的优化协议

先固定基线、任务集、模型配置、预算与环境版本。提出一个能被证伪的假设，例如“旧工具输出遮蔽主要解释延迟，可用引用替代而不影响退款证据”。实施一个主要改动，运行相同任务和重复次数，再按任务配对比较。

报告均值、分位数、成功率、成本、失败类别与置信局限。若样本太小，不要画出过度精确的小数。记录优化额外增加的代码、配置和运维复杂度。维护成本也属于工程决策。

## 9. L08验收

至少完成两个对照：上下文策略与一个系统机制，例如缓存、准备复用或调度。必须包含一个“看似优化但破坏正确性”的反例。课程互动用合成数据说明公式；最终求职项目使用你自己实际测得的数据。

<!-- knowledge:K07 -->
<!-- knowledge:K11 -->
<!-- knowledge:K20 -->
