拓展阅读

运行与性能

可观测性、成本、可靠性和模型选择

阶段 1411 项展开讲义正文全部展开

沿着对象与状态理解本章

性能图先用实际起止时间画,而不是将所有工具耗时直接相加。下图中缩短非关键路径的A不会缩短总时间;同样,降低单次Token价也未必降低成功任务成本。

下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。

动态图解 · F38

Trace要告诉你因果,不只是时间戳

为何优化一个最显眼的步骤,整体却没变快?

执行轨迹像工程里的时间账,但更重要的是依赖关系。串行阶段会相加,并行阶段往往取关键路径;只有知道下一步在等谁,才能知道哪里值得优化。还要把排队、推理、工具、验证和重试分开,不能全算成模型慢。

Trace一条任务中各步骤及关联关系的记录。
墙钟时间从任务开始到结束真正经过多久。
关键路径决定完成时间的依赖链。
吞吐单位时间完成多少任务。

输入与适用条件:固定教学秒数,无真实产品耗时数据。第4帧只改变工具A时长,其他条件保持不变。

1 / 5 · 先看一条完整任务

第1步,共5步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

Trace要告诉你因果,不只是时间戳:先看一条完整任务排队2s模型调用13s并行工具A3s并行工具B8s模型调用22s核验1s016秒

构造的任务从0到16秒:排队2秒、第一次模型3秒、并行工具A3秒/B8秒、第二次模型2秒、核验1秒。

基准墙钟16秒;工具工作量11秒

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

把优化投入到确实支配成本或完成时间的环节。

怎样实现

按依赖关系画时间线,再用同负载实测对照。

可能的代价与误解

只看平均值会隐藏长尾;把并行跨度相加会错误夸大总耗时。

如何判断是否做对

按时间戳与依赖重算16秒,检查是否把等待和重试遗漏。

观察任务的因果结构

Trace连接一次任务中的模型、工具、检索、交接与验证;Span代表一段操作;事件记录时点;指标汇总分布。Agents SDK和OpenTelemetry提供追踪入口,但规范字段与稳定性需按版本确认。[S165][S166][S167]

任务
 ├─ 路由与上下文
 ├─ 模型调用
 ├─ 并行搜索:代码 / 测试
 ├─ 修改
 ├─ 验证
 └─ 完成或阻塞

并行Span重叠,不能直接求和当墙钟时间。没有关联ID的大量日志也未必能解释失败。

指标从用户目标出发

TTFT是首Token等待,生成吞吐是输出速度,工具延迟是外部依赖,总耗时才反映完整任务。平均值与高分位都重要。很快说“开始处理”不代表很快完成。SRE强调从用户可见行为定义监控和目标。[S168][S169]

质量应包括目标满足、回归、安全和人工接管;成本区分输入、缓存、输出、工具与执行资源。不同产品计费不同,Token数量不是统一货币。[S170][S172]

成功任务成本与模型路由

原创理想化例子:A每次1元、成功率50%;B每次1.5元、成功率90%。用成本/成功率的粗略近似,A为2元、B约1.67元。真实重试相关性、人工成本和任务分布会改变结论。

路由可参考复杂度、风险、上下文和验证能力,但要计入路由自身成本与切换交接。把小任务给便宜模型是待测策略,不是定理。推理预算也应看质量—成本曲线,而非最大化思考长度。[S172][S038]

限流、超时与重试

限流可能按请求、Token或其他资源。暂时失败可以退避并加抖动;参数无效和权限不足不应盲重试。副作用超时后应先查询实际状态,再决定是否重发。[S171]

取消模型请求不保证工具进程停止。需要任务级与操作级超时、取消传播、幂等和去重。无限重试不是持续工作,而是失控风险。

会话、执行器与存储

Managed Agents案例把会话事件、Harness与沙箱解耦,减少执行环境故障的耦合。小型本地Agent不必立即拆成多个服务,但可保持接口清晰并逐步增加恢复能力。[S142]

日志要区分意图与已执行事实。“准备运行测试”不是结果。事件重放通常恢复状态,不应无条件重新执行所有副作用。

SLO与降级

SLO需说明任务范围、成功定义、时间窗与预算。只读问答与自动修改应有不同目标。依赖不可用时可以降级为证据和建议,不能声称已经执行;权限不足时停止对应动作,仍可完成独立部分。[S169]

告警应指向需要处理的用户影响。单次可恢复超时未必打扰人,持续失败、异常成本、越权与状态丢失更值得关注。追踪数据还需脱敏和保留策略。

优化顺序

先找瓶颈:往返多看工具粒度,噪声多看检索,输出长看要求,重试多看环境,能力不足看模型或证据。代码聚合工具结果可能节省上下文,也增加执行复杂性,需按任务验证。[S173]

自检:减少调用数总是好事?不是,可能删除必要验证。HTTP成功就是Agent成功?不是,要看业务目标。

逐项中文讲义

保留拓展阅读目录编号与A/B/C优先级;每项包括机制解释、边界与原创练习。

A14.1 · 模型、工具和交接追踪

对应资料:Agents SDK Tracing

Tracing把模型调用、工具执行、交接和其他步骤连接为任务轨迹。它帮助解释过程,但记录存在不代表内容完整或结论正确。

需要区分任务、Span、事件和最终结果。并行步骤可能重叠,耗时不能简单相加。敏感Prompt与凭据不应无选择地写入日志。

运行示例 · R14-01

一条trace怎样串起模型与工具

输入与条件。任务T1中模型span M1提出调用c7,工具span U7执行读取。

步骤与对象内部动作中间结果 / 新状态
1关联U7记录c7与T1可从动作追到请求。
2结果U7结束后M2收到观察形成因果时序。
3诊断M2缺U7结果定位回填,而不是工具本身失败。

把过程连起来。trace需要关联身份与顺序,不只是很多独立日志。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:为搜索、修改、测试建立关联ID,模拟其中一步失败,检查能否定位到正确任务和版本。

完成标准是能回答“在哪一步、依据什么、发生了什么”,而不是只收集大量不可关联文本。

拓展阅读目录事实依据 [S165] · 练习与工程推导为本书独立编写。

A14.2 · 生成式AI的语义约定

对应资料:OpenTelemetry GenAI Conventions

OpenTelemetry的GenAI语义约定尝试统一生成式AI操作的记录方式。相关规范持续演进,字段与支持情况需要按版本核对。

统一命名有利于跨系统分析,但不能替代应用的业务定义。两个系统都记录Token,计数口径仍可能不同。

运行示例 · R14-02

统一字段才能比较不同后端

输入与条件。后端A字段input_tokens,B叫prompt_tokens。

步骤与对象内部动作中间结果 / 新状态
1映射先确认两者语义和是否含缓存不能只改字段名。
2统一保存规范字段并保留来源口径方便横向比较。
3版本字段定义变化时记录规范版本避免历史指标断裂。

把过程连起来。语义约定减少混乱,但指标必须真实同义。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:为模型请求、工具调用和任务成功定义最少字段,明确单位、来源和敏感性。

完成标准是数据可以比较和解释,不把某个发展中的属性当成所有平台已经一致支持的标准。

拓展阅读目录事实依据 [S166] · 练习与工程推导为本书独立编写。

A14.3 · 模型与Agent的Span

对应资料:OpenTelemetry GenAI Spans

GenAI Span约定描述如何表示模型或Agent相关操作。父子关系与时间边界决定能否正确还原执行结构。

异步和并行任务尤其需要清楚关联;Span结束可能仅代表请求结束,不一定代表外部业务动作最终完成。

运行示例 · R14-03

父span包含等待,子span和不等于父span

输入与条件。两个工具分别[0,3]和[0,5],父span[0,5]。

步骤与对象内部动作中间结果 / 新状态
1子和3+5=8累计活动时间。
2父时长5包含并行重叠。
3分析若父变8,检查是否串行化别直接相加当墙钟。

把过程连起来。span结构与关键路径需要一起看。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:画两个并行搜索加一次串行验证的Trace,分别计算墙钟时间与操作时间总和。

完成标准是识别关键路径和真实等待,而不是用所有Span求和夸大用户耗时。

拓展阅读目录事实依据 [S167] · 练习与工程推导为本书独立编写。

B14.4 · 监控系统的信号选择

对应资料:Google SRE Monitoring

SRE监控强调从服务行为与用户影响选择信号。日志、指标和告警各有用途,收集越多不一定越容易发现问题。

Agent监控应关注任务成功、尾延迟、持续失败和人工接管,而不只看API返回码。模型返回200但未完成任务仍是用户层失败。

运行示例 · R14-04

成功率正常但排队上升也是预警

输入与条件。5分钟内错误率仍低,队列从10增到200。

步骤与对象内部动作中间结果 / 新状态
1当前结果许多请求尚未结束低错误率可能滞后。
2领先信号等待长度和年龄增加提示容量压力。
3处理查到达/完成率、重试与资源不等大量超时后才告警。

把过程连起来。监控既看结果,也看积压与资源。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:设计一个只对持续故障告警的策略,区分单次可恢复超时与大量任务被阻塞。

完成标准是告警可行动、信号能解释用户影响,避免正常波动造成持续打扰。

拓展阅读目录事实依据 [S168] · 练习与工程推导为本书独立编写。

B14.5 · 服务目标与错误预算

对应资料:Google SRE Implementing SLOs

SLO把服务目标定义为可度量约定,错误预算帮助理解允许的失败空间与变更风险。指标必须说明范围、时间窗和成功条件。

Agent任务差异大,只读问答与自动修改不应强行使用完全相同目标。速度与质量也需同时考虑。

运行示例 · R14-05

99%目标给多少错误预算

输入与条件。统计窗口内10000个合格请求,SLO成功率99%。

步骤与对象内部动作中间结果 / 新状态
1允许失败10000×1%=100预算100次。
2已失败若已经80次剩20次。
3决策重大改动可结合预算谨慎灰度不把目标99%解释成每用户都必定99%。

把过程连起来。SLO必须定义合格请求、时间窗口和失败口径。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:为“只读分析”和“带测试的修复”分别定义成功与耗时目标,并解释为何HTTP成功不足够。

完成标准是目标能指导工程取舍,而不是写一个没有统计口径的“高可靠性”口号。

拓展阅读目录事实依据 [S169] · 练习与工程推导为本书独立编写。

A14.6 · 部署前的工程检查

对应资料:API Deployment Checklist

部署检查涵盖质量、成本、权限、失败处理和运行准备。API能调用只是起点,生产环境还需要监控、预算与恢复设计。

数据和工具边界、模型版本、输出验证及回滚应明确。不要把开发环境一次成功直接视为可上线证明。

运行示例 · R14-06

上线前先跑一次可恢复失败

输入与条件。测试工具模拟超时,但外部文件已写入。

步骤与对象内部动作中间结果 / 新状态
1注入故障控制在写入后返回前产生unknown场景。
2恢复核对实际内容与动作ID不重复盲写。
3验收系统准确报告状态比只跑成功demo更能检验生产准备。

把过程连起来。故障实验应在无害隔离环境,不能对生产用户数据试错。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:在上线前模拟限流、错误输出、无权限和工具超时,检查是否有可理解的降级结果。

完成标准是用户能知道什么已完成、什么未完成,系统不会因追求成功率而隐藏失败。

拓展阅读目录事实依据 [S170] · 练习与工程推导为本书独立编写。

A14.7 · 限流、退避与预算

对应资料:Rate Limits

速率限制可能按请求、Token或其他资源维度实施。重试需要遵守服务反馈,并区分暂时性失败与永久错误。

指数退避和抖动可以减少集中重试,但不能修复无效参数或授权不足。具有副作用的动作重试前还要确认是否已执行。

运行示例 · R14-07

RPM没超但TPM仍可能限流

输入与条件。限额假设每分钟60请求、6000Token,每请求2000Token。

步骤与对象内部动作中间结果 / 新状态
1请求数一分钟4次远低于60。
2Token数4×2000=8000超过6000。
3处理按实际双预算调度不因请求次数少就认为限流错误。

把过程连起来。速率限制维度不同;数字为教学,不对应真实服务当前限额。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:为限流、参数错误和网络中断分别设计处理分支,设置最大次数与总预算。

完成标准是重试有理由、有边界且可观察,不把无限循环当成自动恢复。

拓展阅读目录事实依据 [S171] · 练习与工程推导为本书独立编写。

A14.8 · 端到端任务延迟

对应资料:Latency Optimization

延迟优化需要分析请求、输入、输出、工具和编排的完整时间线。减少一次模型调用可能有效,也可能删除必要证据或验证。

首Token快不代表任务完成快;缓存命中高也不保证端到端成本低。优化应基于真实瓶颈。

运行示例 · R14-08

减少非关键路径操作不改变总耗时

输入与条件。A3秒、B5秒并行,C2秒等待二者。

步骤与对象内部动作中间结果 / 新状态
1原任务max(3,5)+2=7B是关键路径。
2A减至1秒仍max(1,5)+2=7墙钟不变。
3B减至2秒max(3,2)+2=5关键路径变A。

把过程连起来。优化收益依赖当前瓶颈,不能各span节省直接相加。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:比较长输出、慢工具和重复检索三种任务轨迹,为每种选择不同改进,而不是统一压缩Prompt。

完成标准是在质量不退化的条件下改善用户任务耗时,而非只优化一个易展示指标。

拓展阅读目录事实依据 [S044] · 练习与工程推导为本书独立编写。

B14.9 · 执行状态与模型运行的解耦

对应资料:Scaling Managed Agents

把会话状态、Harness和执行环境解耦,有助于故障恢复和资源管理。小系统也可以先保持职责清晰,而不必立即拆成多个服务。

状态持久化要区分动作意图、已执行事实和待确认结果。恢复时不能盲目重放外部副作用。

运行示例 · R14-09

模型超时后用任务ID接回执行状态

输入与条件。外部长任务job9运行中,推理请求断开。

步骤与对象内部动作中间结果 / 新状态
1保留身份job9、目标与允许动作不只留自然语言计划。
2查询外部job9已完成恢复结果。
3避免重复不重新启动job10做同一副作用继续原任务。

把过程连起来。运行环境解耦要配合持久任务身份。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:在部署请求已发出但返回丢失时模拟重启,先查询操作状态,再决定是否补偿或重试。

完成标准是恢复后的状态与真实环境一致,不只是能够继续生成文本。

拓展阅读目录事实依据 [S142] · 练习与工程推导为本书独立编写。

B14.10 · 提示、评测与模型优化

对应资料:Model Optimization

模型优化应围绕任务评测,将Prompt、模型选择、训练与工具环境作为不同干预层。较便宜模型不一定带来更低成功任务成本。

错误重试、人工修复和更长流程都可能抵消单次价格优势。模型切换也会产生交接与路由开销。

运行示例 · R14-10

一次只变一个可解释变量

输入与条件。成功率低,想同时换模型、Prompt、索引。

步骤与对象内部动作中间结果 / 新状态
1基线记录固定任务和三项版本知道旧状态。
2最小干预先修已确认过期索引观察收益。
3后续模型/Prompt另作对照不把组合收益随便归因某一项。

把过程连起来。评测为优化提供因果线索,但现实交互项仍需专门比较。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:用假设成本和成功率计算两种方案,再加入失败成本,观察排序是否变化。

完成标准是依据真实任务质量—成本—延迟曲线选择,而不是只按参数量或单价决定。

拓展阅读目录事实依据 [S172] · 练习与工程推导为本书独立编写。

B14.11 · 工具组合与成本边界

对应资料:Claude Tool Combinations

工具组合影响信息如何流向模型。通过代码筛选大结果可能减少上下文,直接返回结果则更简单,但可能带来冗余。

组合能力受产品支持、权限和执行环境限制。不能假设所有工具都能任意并行或共享状态。

运行示例 · R14-11

工具组合可以少传数据,不必少做验证

输入与条件。原流程把300条记录交给模型数失败数量。

步骤与对象内部动作中间结果 / 新状态
1确定性聚合程序统计2+3+1=6减少长上下文。
2证据保留查询条件、页数和错误状态可解释总数。
3模型任务解释与提出下一步不重复手算已可验证聚合。

把过程连起来。工具组合改变分工,正确性来自完整查询和明确算式。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:比较把一千条记录全部交给模型与先用程序统计后提供摘要,两者分别需要什么验证和原始证据入口。

完成标准是减少无效搬运同时保留可追溯性,不用摘要掩盖被过滤的重要异常。

拓展阅读目录事实依据 [S173] · 练习与工程推导为本书独立编写。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。