本节摘要:声明式规则图带来组合能力,也带来激活传播成本。对照「规则越多越聪明」的错觉,以及通用 Agent 把延迟全怪模型推理,Parlant 的抖动常常来自规则匹配复杂度、异步工具的不确定等待、消歧造成的往返。优化三支柱:规则正交、工具协同与超时、缓存。排错先看执行路径长度,再看模型。
阅读完本节,你应当能够:
不是意图分类管道,而是声明式规则图。每次输入触发激活传播:遍历规则节点,结合状态、工具结果、关系,决定激活、抑制、延迟。法律条款衍生大量子规则、电商退货按地区品类时间窗口分叉时,匹配会逼近临界。
工具异步,延迟非确定。先查订单再查物流,对话演进难预测。这是超时与抖动的主因之一。消歧会把用户拉回匹配循环,路径变长。性能分析必须看最坏路径与并发工具数,不能只看平均幸福路径。
原文观察:近两百条语义相近规则曾把响应从约三百毫秒推到两秒以上。数字是案例量级,用来建立直觉,不是你环境的基准。基准要自己在预发测。
规则正交。 每条尽量覆盖互斥语义,用优先级分主次。请假与调休不要两条几乎重复,抽象休假父规则,用消歧选类型。依赖边剪枝:仅登录后生效的规则,在身份未激活时不参与匹配。
工具并发与超时。 无依赖可并行;有依赖必须串行并设超时。失败写回事实,由指南决定重试或转人工,禁止模型编造。限流:外部接口被打爆时,规则图再快也白搭。网关本就该有速率限制。
缓存。 高频确定问答缓存规则-上下文-响应。失效看时间、相似度、业务标签。对照通用 Agent 只缓存向量检索:这里缓存的是受规则约束的结果,失效策略要含「政策是否已改」。政策一改必须丢缓存,否则可解释性会指着过期指南。
| 症状 | 先查 | 常被误判为 | 处理 |
|---|---|---|---|
| 尾延迟高 | 最坏路径规则数、工具串行 | 模型慢 | 正交化、并行无依赖调用 |
| 偶发超时 | 某工具 SLA、重试风暴 | 网络随机 | 超时预算、熔断 |
| 越来越慢 | 规则近义膨胀 | 流量涨了 | 合并近义、依赖剪枝 |
| 结果过期 | 缓存未随指南版本失效 | 模型幻觉 | 指南发布绑定缓存键 |
| 澄清死循环 | 消歧条件过宽 | 用户不配合 | 收紧互斥定义、限次数转人工 |
⚠️ 常见坑:为覆盖所有问法复制规则。覆盖应用术语同义与模型理解,规则只表达互斥业务空间。
💡 关键直觉:交通灯越多不一定越通畅,错误相位会让路口锁死。规则是相位,不是装饰灯。
可观测性方向原文提到往开源追踪标准靠:阶段耗时、模型调用成本、工具成功率。没有轨迹,5.1 的解释和本节的性能是断的。排错顺序建议:注册表命中了谁 → 激活图走了哪条 → 工具耗时 → 模型耗时。倒过来先骂模型,会浪费一轮。
负载测试要用真实规则规模,不要用十条指南的演示包打满并发然后宣称「框架很轻」。轻的是空图。
十条指南的干净图压出的延迟没有意义。把预发规则规模做成接近生产,含近义、含消歧、含慢工具。脏图才能暴露激活传播成本。压测场景包含:高峰重复 FAQ、最坏串行工具链、澄清两次后转人工。只压幸福路径会在上线夜崩。
给每条关键路径设延迟预算:匹配、模型、工具、验证各占多少。超预算先看工具,再看规则数,最后看模型。顺序反了会去换更贵的模型,而真正的问题是近义规则二百条。原文案例里毫秒到两秒的跳变,就是这个教训。
重试风暴是超时的亲戚。工具失败立刻重试三次,会把下游打得更死。预算里要含重试次数与退避。失败事实化之后,指南决定是否对用户说「系统忙」,而不是在环里空转。空转会让会话状态机停在处理中,前端一直转圈——这正是第 1 章要 emit 状态的原因。
缓存命中率不是越高越好。政策变更日命中率应下降。若变更日命中率仍高,说明失效键没含版本。把指南版本打进缓存键,发布流程加一步清相关键。性能与正确性在这一步是同一件事。
排错口诀 先表后图,先工具后模型 先最坏路径,后平均值 先失败事实,后同情生成
把关键路径的预算贴出来:匹配、模型、工具、验证。超了谁的段,谁背锅。墙报能阻止无意义的换模型讨论。工具段超了去催下游 SLA,匹配段超了去正交规则,验证段超了看是否重复校验。没有墙报,所有慢都叫 AI 慢。性能治理其实是会计:把时间分到科目。科目清楚,优化才不是巫术。预发脏图压测的数字也贴在同一张表上,防止生产与预发各说各话。
围绕「脏图压测与预算墙报」,把四条路径再过一遍。表里每格都是可执行判断,不是形容词。读完请把你的项目钉进一格,不要钉在两格之间假装都占了。
| 检查项 | 纯 prompt | 通用 Agent | 规则引擎 | Parlant |
|---|---|---|---|---|
| 决策权放哪 | 感觉慢加提示 | 换大模型 | 加机器 | 预算分匹配工具模型验证 |
| 改口径谁动手 | 只压幸福 | 压规划步数 | 压接口 | 脏图含近义消歧慢工具 |
| 行动如何被拦 | 缓存越高越好 | 缓存向量 | 少缓存 | 变更日命中率应下降 |
| 出事如何复盘 | 失败立刻连打 | 重试到通 | 抛错 | 失败事实化加退避 |
| 口语进得来吗 | 全怪AI慢 | 全怪配额 | 看CPU | 超哪段谁背锅 |
| 上线第一周验什么 | 十条指南当生产 | 演示包打满并发 | 规则少所以轻 | 预发规模接近生产 |
墙报阻止无意义换模型讨论。工具段催SLA,匹配段正交规则。没有科目,优化是巫术。
处理中一直转圈,常是状态没发出去或空转重试。这是产品缺陷,先别骂模型。
在「延迟预算与脏图」上,纯 prompt 把判断写进一段话,改的人必须会改提示,复盘只能翻聊天,口语进得来但口径会漂。通用 Agent 把判断交给循环,灵活的代价是越权与路径不可复现。规则引擎把判断写进分支,确定的代价是口语进不来、改口径要排期。Parlant 把判断写成指南与契约:业务改口径,未授权则无行动,复盘指轨迹。把这四句贴到工位上,比再记一组术语有用。
针对延迟预算与脏图,本周只做一件可验收的事:找出一条真实对话或工单,标注它今天落在哪一列;若要迁到第四列,缺的是指南、工具还是关系边。缺指南就写草稿,缺工具就列契约,缺关系就补消歧或依赖。不要同时开十条战线。最常见的伪装是文件名叫指南、真源仍是提示词,或者架构图上有网关、运行时模型仍直接调函数。用「改文本能否改行为」和「低权限点名是否被拒」两张试纸识破。识破了再谈优化与案例。优化在伪装上加速,只会让错误承诺更多;案例在伪装上复制,只会把新闻变成事故。
延迟预算与脏图的纪律是先钉列,再谈快。钉列需要抽检,抽检需要轨迹,轨迹需要审计真的在记抑制原因,而不只记最终回复。若没有抑制原因,排错会以为没写规则,其实是优先级压了。看得见「为什么没走另一条路」,才叫对照,才叫可控。把这句话写进值班手册,延迟预算与脏图才从概念变成岗位。对照驱动不是文风,是岗位制:模型是引擎和笔杆子,方向盘在指南与工具契约上。谁把方向盘又塞回提示词,谁就在延迟预算与脏图上退回第一列。
下一节把延迟和解释都锁进安全边界:合规不是过滤器,是运行时验证。