5.2 性能优化与故障排查


5.2 性能优化与故障排查

本节摘要:声明式规则图带来组合能力,也带来激活传播成本。对照「规则越多越聪明」的错觉,以及通用 Agent 把延迟全怪模型推理,Parlant 的抖动常常来自规则匹配复杂度、异步工具的不确定等待、消歧造成的往返。优化三支柱:规则正交、工具协同与超时、缓存。排错先看执行路径长度,再看模型。

本节导读

阅读完本节,你应当能够:

  1. 用激活传播解释规则数量如何变成延迟
  2. 用优先级与依赖做剪枝,而不是复制近义规则
  3. 为有依赖的工具设超时与并发边界
  4. 建立从轨迹到瓶颈的排查顺序

性能问题的根在执行模型

不是意图分类管道,而是声明式规则图。每次输入触发激活传播:遍历规则节点,结合状态、工具结果、关系,决定激活、抑制、延迟。法律条款衍生大量子规则、电商退货按地区品类时间窗口分叉时,匹配会逼近临界。

工具异步,延迟非确定。先查订单再查物流,对话演进难预测。这是超时与抖动的主因之一。消歧会把用户拉回匹配循环,路径变长。性能分析必须看最坏路径与并发工具数,不能只看平均幸福路径。

原文观察:近两百条语义相近规则曾把响应从约三百毫秒推到两秒以上。数字是案例量级,用来建立直觉,不是你环境的基准。基准要自己在预发测。

三支柱

规则正交。 每条尽量覆盖互斥语义,用优先级分主次。请假与调休不要两条几乎重复,抽象休假父规则,用消歧选类型。依赖边剪枝:仅登录后生效的规则,在身份未激活时不参与匹配。

工具并发与超时。 无依赖可并行;有依赖必须串行并设超时。失败写回事实,由指南决定重试或转人工,禁止模型编造。限流:外部接口被打爆时,规则图再快也白搭。网关本就该有速率限制。

缓存。 高频确定问答缓存规则-上下文-响应。失效看时间、相似度、业务标签。对照通用 Agent 只缓存向量检索:这里缓存的是受规则约束的结果,失效策略要含「政策是否已改」。政策一改必须丢缓存,否则可解释性会指着过期指南。

症状 先查 常被误判为 处理
尾延迟高 最坏路径规则数、工具串行 模型慢 正交化、并行无依赖调用
偶发超时 某工具 SLA、重试风暴 网络随机 超时预算、熔断
越来越慢 规则近义膨胀 流量涨了 合并近义、依赖剪枝
结果过期 缓存未随指南版本失效 模型幻觉 指南发布绑定缓存键
澄清死循环 消歧条件过宽 用户不配合 收紧互斥定义、限次数转人工

⚠️ 常见坑:为覆盖所有问法复制规则。覆盖应用术语同义与模型理解,规则只表达互斥业务空间。
💡 关键直觉:交通灯越多不一定越通畅,错误相位会让路口锁死。规则是相位,不是装饰灯。

可观测性方向原文提到往开源追踪标准靠:阶段耗时、模型调用成本、工具成功率。没有轨迹,5.1 的解释和本节的性能是断的。排错顺序建议:注册表命中了谁 → 激活图走了哪条 → 工具耗时 → 模型耗时。倒过来先骂模型,会浪费一轮。

负载测试要用真实规则规模,不要用十条指南的演示包打满并发然后宣称「框架很轻」。轻的是空图。

预发压测要用「脏图」

十条指南的干净图压出的延迟没有意义。把预发规则规模做成接近生产,含近义、含消歧、含慢工具。脏图才能暴露激活传播成本。压测场景包含:高峰重复 FAQ、最坏串行工具链、澄清两次后转人工。只压幸福路径会在上线夜崩。

给每条关键路径设延迟预算:匹配、模型、工具、验证各占多少。超预算先看工具,再看规则数,最后看模型。顺序反了会去换更贵的模型,而真正的问题是近义规则二百条。原文案例里毫秒到两秒的跳变,就是这个教训。

重试风暴是超时的亲戚。工具失败立刻重试三次,会把下游打得更死。预算里要含重试次数与退避。失败事实化之后,指南决定是否对用户说「系统忙」,而不是在环里空转。空转会让会话状态机停在处理中,前端一直转圈——这正是第 1 章要 emit 状态的原因。

缓存命中率不是越高越好。政策变更日命中率应下降。若变更日命中率仍高,说明失效键没含版本。把指南版本打进缓存键,发布流程加一步清相关键。性能与正确性在这一步是同一件事。

排错口诀 先表后图,先工具后模型 先最坏路径,后平均值 先失败事实,后同情生成

延迟预算墙报

把关键路径的预算贴出来:匹配、模型、工具、验证。超了谁的段,谁背锅。墙报能阻止无意义的换模型讨论。工具段超了去催下游 SLA,匹配段超了去正交规则,验证段超了看是否重复校验。没有墙报,所有慢都叫 AI 慢。性能治理其实是会计:把时间分到科目。科目清楚,优化才不是巫术。预发脏图压测的数字也贴在同一张表上,防止生产与预发各说各话。

对照作业:脏图压测与预算墙报

围绕「脏图压测与预算墙报」,把四条路径再过一遍。表里每格都是可执行判断,不是形容词。读完请把你的项目钉进一格,不要钉在两格之间假装都占了。

检查项 纯 prompt 通用 Agent 规则引擎 Parlant
决策权放哪 感觉慢加提示 换大模型 加机器 预算分匹配工具模型验证
改口径谁动手 只压幸福 压规划步数 压接口 脏图含近义消歧慢工具
行动如何被拦 缓存越高越好 缓存向量 少缓存 变更日命中率应下降
出事如何复盘 失败立刻连打 重试到通 抛错 失败事实化加退避
口语进得来吗 全怪AI慢 全怪配额 看CPU 超哪段谁背锅
上线第一周验什么 十条指南当生产 演示包打满并发 规则少所以轻 预发规模接近生产

墙报阻止无意义换模型讨论。工具段催SLA,匹配段正交规则。没有科目,优化是巫术。

处理中一直转圈,常是状态没发出去或空转重试。这是产品缺陷,先别骂模型。

钉列纪律:延迟预算与脏图

在「延迟预算与脏图」上,纯 prompt 把判断写进一段话,改的人必须会改提示,复盘只能翻聊天,口语进得来但口径会漂。通用 Agent 把判断交给循环,灵活的代价是越权与路径不可复现。规则引擎把判断写进分支,确定的代价是口语进不来、改口径要排期。Parlant 把判断写成指南与契约:业务改口径,未授权则无行动,复盘指轨迹。把这四句贴到工位上,比再记一组术语有用。

针对延迟预算与脏图,本周只做一件可验收的事:找出一条真实对话或工单,标注它今天落在哪一列;若要迁到第四列,缺的是指南、工具还是关系边。缺指南就写草稿,缺工具就列契约,缺关系就补消歧或依赖。不要同时开十条战线。最常见的伪装是文件名叫指南、真源仍是提示词,或者架构图上有网关、运行时模型仍直接调函数。用「改文本能否改行为」和「低权限点名是否被拒」两张试纸识破。识破了再谈优化与案例。优化在伪装上加速,只会让错误承诺更多;案例在伪装上复制,只会把新闻变成事故。

延迟预算与脏图的纪律是先钉列,再谈快。钉列需要抽检,抽检需要轨迹,轨迹需要审计真的在记抑制原因,而不只记最终回复。若没有抑制原因,排错会以为没写规则,其实是优先级压了。看得见「为什么没走另一条路」,才叫对照,才叫可控。把这句话写进值班手册,延迟预算与脏图才从概念变成岗位。对照驱动不是文风,是岗位制:模型是引擎和笔杆子,方向盘在指南与工具契约上。谁把方向盘又塞回提示词,谁就在延迟预算与脏图上退回第一列。

本节速览

  • 根因常在图:激活传播+异步工具+消歧回环
  • 正交化:互斥语义+优先级,拒绝近义复制
  • 依赖剪枝:未满足则不参与匹配
  • 超时是产品决策:失败变事实,不让模型补全
  • 缓存绑指南版本:政策变更必须失效
  • 排错顺序:表→图→工具→模型

下一节把延迟和解释都锁进安全边界:合规不是过滤器,是运行时验证。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U