《互联网产品的 AI 架构·多能力编排与任务闭环》10.1 编排链路的最低观测字段
单次请求的日志回答不了编排层的四个问题:这次调用属于哪条工作流、上游是谁、第几次尝试、用的哪版模型与提示。本节给出一次编排 trace 的九个最小字段、节点边界的两段式采集、从事件重建节点树与关键路径的算法,并用三能力样本跑出 4 个 span、3,786 微元与 1,269ms 的确定性结果。
tag
单次请求的日志回答不了编排层的四个问题:这次调用属于哪条工作流、上游是谁、第几次尝试、用的哪版模型与提示。本节给出一次编排 trace 的九个最小字段、节点边界的两段式采集、从事件重建节点树与关键路径的算法,并用三能力样本跑出 4 个 span、3,786 微元与 1,269ms 的确定性结果。
检索文档里的一句话、工具返回的一段 JSON,都会在下一个节点变成「上文」。注入因此不是单节点问题,而是污点与信任级别在节点间如何传播的问题。本节把信任级别、污点集合与边界判定写成可运行模块,说明什么内容必须隔离、什么节点只能包成数据,并给出示例运行结果。
外部动作一旦落地就不可逆:下单、发消息、退款不能只靠模型「觉得可以」。本节把授权拆成主体策略、一次性令牌、幂等键与人工确认四道闸门,说明谁批准、一次授权为何只能对应一次动作,并给出可运行的 TypeScript 判定模块与十二种场景的示例运行结果。
跨能力调用时,权限最容易在节点之间被悄悄放大:节点代理身份比用户更宽、租户范围在交接时丢失、数据标签被重新合并。本节把用户、编排器与节点代理三层身份拆开,用作用域集合交集实现只收窄不放大的传播,并给出可运行的 TypeScript 实现与示例运行结果。
编排是否划算要持续复核,不是上线前算一次。本节用卷二 28.47% 的回本线与 13.02% 的失败预算复核三节点链路,跑出主场景、高失败、低复用、四节点与质量溢价五个样本,给出 keep、watch、exit 的判定与退出条件;复核要按链路、按窗口进行。
超支时最怕临时拍脑袋。本节给出缓存、裁剪上下文、降档、跳过可选节点、拒绝五步裁剪顺序,逐项标出节省、质量损失与不可逆性,并用 600、900、1,200 微元三个样本跑出确定性结果;质量下限决定少交付一块还是完全不交付;顺序应按可逆性与质量损失排,而不是按节省金额排。
整链预算要同时管 token、成本、延迟与重试四条线。本节用三节点样本把 4,000 微元拆成保底、弹性与共享池,给出可复现的整数分配算法;四条线不能互相换算,分配顺序一旦颠倒,必需节点就会发不出保底;保底保护正确性,弹性购买质量,共享池吸收运行时波动。
拿到 13.1 的成本基线后,用架构决策记录在三个候选方案之间做取舍:稳定前缀缓存、经济档替代与输出上限,分别说明预期收益、质量代价、证据门槛、回退条件与退出条件,并给出可直接运行的 TypeScript 决策函数与可逐条复核的示例样本结果。
同一条失败记录,重跑三次得到三个不同结果,日志却只有一句「answer failed」。本节给出一次链路的最小回放包:请求、节点输入输出摘要、模型档位、提示版本与随机种子,用规范化序列化和逐节点对比把分歧定位到具体节点,并演示一次提示版本导致的重放差异。
端到端失败率 1.88%,面板只写「工作流失败」,值班同学无法修复一个叫「工作流」的东西。本节把失败拆到节点:输入、模型、解析、外部动作、超时五类,给出归因表与判据——首个失败节点、解析归产出方、输入看摘要、超时归超预算节点,并用 10 条失败样本跑出分布。
节点测试全绿,用户任务仍然失败,因为评测单位选错了。本节把一条用户任务作为样本单位,定义成功、部分成功、失败、超时、越权五类样本与验收口径,要求失败路径至少占四成,给出五类覆盖统计与发布门禁,并用 25 条示例样本跑出 48% 的任务完成率与 68% 的失败路径占比。
长文档摘要与批量审核无法在一次请求里交付,异步任务因此需要自己的状态机、通知去重、回调幂等与断线重连协议。本节用回声内容链演示排队、执行、完成、失败与过期的完整生命周期,给出结果按哈希幂等交付、游标重连与快照回退的判据,并附上可运行的模块。
内容发布链上的人工复核既是延迟大头,也是审计责任点。本节把等待、领取、升级、批准、驳回与超时路由写成可执行状态机,讨论超时后的自动发布边界、重复批准回调的幂等处理,以及用只追加事件链回答谁在何时改了什么。并附 12 条样本的可复算运行结果。
并行分支不是免费的加速器:它把延迟压到临界路径,却把共享上下文复制到每个分支,还要和同一配额下的其他请求抢并发槽。本节用回声内容链的可复算样本,给出临界路径、排队延迟、成本叠加与并行度边际收益四个判据,并算出 41.67% 的复用回本线与 4 微元/毫秒的交换线。
单步 13.02% 的失败上限落到编排层,就变成全局重试预算与节点熔断。本节给出按成功率增量分配预算的确定性算法,用三能力样本对比无重试、本地重试、全局预算与熔断四种策略的成功率、每次成功交付成本与尾部成本,并说明重试风暴的尾部成本与幂等边界。
上游只交回半份结果时,什么算可用、什么必须拒绝?本节为「回声」三条链定义字段契约:哪些字段必须有、哪些可缺、哪些允许降级替代,给出完整、部分可用、拒绝交付三档判定、四级用户提示与机器可读标记,并附可运行的 TypeScript 验收器与示例运行结果。
上游失败后,下游该跳过、重试、降级还是中止?本节把失败分成可重试、可跳过、可降级、必须中止四类,给出每类的判定字段、判定顺序与稳定原因码,说明动作对下游、预算与用户提示的影响,并用七条示例信号跑出分类结果,附可运行的 TypeScript 分类器与处理策略表。
长任务不是把每轮对话无限追加进上下文。本节定义会话状态该存事实、游标、决策与待办,而不是完整转录;用滑动 TTL、绝对 TTL、LRU 与容量上限控制生命周期,并给出跨租户隔离、单会话记忆上限与可运行的最小存储模块,最后划清它与检查点、长期记忆库的边界。
把第 1、8、9、11 章的延迟、容量、成本与质量口径合成一份可复算的推理成本基线:用 240 条确定性样本说明指标怎么定义、样本如何按能力与模型档位分层、结论如何从证据推导,并给出可逐条运行的 TypeScript 报告模块与示例样本结果。
一次持续 25 分钟的 429 故障没有打挂任何请求,却让「回声」的推理成本变成基线的 4.85 倍。本节按分钟还原时间线,把成本倍数拆成尝试放大 1.90 倍与单价放大 2.55 倍,给出根因、三道修复闸门与可校验的复盘模板,并用示例样本运行结果说明每个数字的来源。