选型指南 架构设计 含可复制代码

把工具调用做成可观测的:日志、回放与重试

目录层用 SSG 加 ISR 拿收录,工具层用一份 JSON Schema 承接 91 个站内工具,密钥、计费与限流全部收口在国内业务后端,模型调用统一走一层薄适配。这篇把我们真实的目录结构、Schema 字段定义、路由闸门、预扣结算伪代码和合规清单完整摊开。

陈
陈默架构组
2026-09-28 · 14 分钟阅读 · 8,432 次浏览

日志里最关键的两项:参数来源、副作用是否落库。

工具调用是"黑盒里最多暗门"的一段

模型回答错了,你还能看输入输出;工具调用错了,问题可能藏在参数、时序、权限、幂等里。

所以要专门为它做可观测:日志要结构化、失败要能回放、重试要有边界。

一、日志:每次调用记这 10 项

1. 请求 id(串起同一任务的多次调用);

2. 工具名与版本;

3. 参数(脱敏后的原文);

4. 参数来源(模型生成 / 规则补全 / 用户输入);

5. 校验结果(通过 / 哪条规则不过);

6. 权限判定(允许 / 拒绝 / 需要确认);

7. 耗时(分:排队、执行、返回);

8. 结果摘要(成功/失败 + 关键字段,不要整包);

9. 是否重试、第几次;

10. 副作用是否落库(以及幂等键)。

关键是 4 与 10:前者决定"是模型的错还是规则的错",后者决定"能不能安全重试"。

二、回放:把失败变成可复现的用例

· 保存足够复现的输入(脱敏后的参数 + 当时的工具版本 + 相关上下文片段);

· 提供离线回放命令:同一输入重跑该工具(对只读工具可直接跑;写操作要打到沙箱);

· 回放结果与线上结果对比,判断是"工具偶发"还是"逻辑错"。

没有回放能力,工具出错只能靠猜。

三、重试:三条边界

· 只重试幂等的(读、查询、幂等写);非幂等操作要先确认再用补偿;

· 区分可重试错误(超时、5xx、限流)与不可重试错误(参数错、权限拒绝);

· 限制次数与总时长(例如 2 次 / 10 秒),并把"已经重试过"写进日志。

同时要防重试放大:重试会让并发与成本翻倍,必须纳入容量与预算(见容量规划那篇)。

四、该报警的四个指标

· 工具失败率(分工具、分错误类型);

· 参数校验拒绝率(升高通常意味着模型输出漂移或提示词改了);

· 重试率与重试后成功占比(后者低说明重试没意义);

· 写操作被拒绝/待确认的比例(权限与安全策略是否过紧或过松)。

五、最小落地顺序

1. 先把上面 10 项日志补齐(半天,收益最大);

2. 加只读工具的离线回放;

3. 给写操作加幂等键与"意图→执行→确认"两阶段;

4. 最后加指标与告警。

本文由云枢 AI导航整理,内容以官方来源为准。

相关文章

顺序阅读

← 上一篇:AI 功能的容量规划:怎么估并发与峰值
下一篇:合成数据能不能用:三种用法与三条红线 →

第 41 / 171 篇

术语速查 · 本页出现的 12 个词展开看中文名与一句话解释,点术语看完整条目
  • token词元:模型处理文本的最小单位,中文约 1–2 个汉字;计费与上下文长度都按它算。
  • 转写 / 字幕Transcription:把音视频人声逐句变成带时间戳的文字稿,便于做字幕与章节切分。
  • SSE服务器发送事件:服务器通过长连接持续推送增量文本,是对白逐字出现的常见实现。
  • API应用编程接口:程序之间约定的调用方式;站内工具由服务端调用,浏览器里不出现密钥。
  • CDN内容分发网络:把静态资源缓存到离用户更近的节点,缩短加载时间。
  • 缓存Cache:把结果暂存复用,复用得越多平均耗时越低;需要约定过期与刷新策略。
  • 限流Rate Limit:限制单位时间内的请求次数,防止单用户或异常流量打满服务端。
  • SSG静态站点生成:构建阶段就生成 HTML,访问时直接返回,不必每次请求都渲染。
  • ISR增量静态再生:先返回静态页,再在后台按需重新生成,兼顾速度与更新时效。
  • 灰度发布Canary Release:先让一小部分用户用新版本,确认无误再放量,出问题的爆炸半径最小。
  • 提示词Prompt:交给模型的指令文本;写清角色、任务、输入与输出格式比反复试更省。
  • 积分Credits:站内计费单位:按工具单价预扣,调用失败自动退还;单价以定价页为准。

完整解释与站内出现处见 AI 术语表(40 条)。