关于 model-debugging
用于诊断 Pollinations 服务中模型线上故障的仓库技能,指导工程师追踪请求、检查可观测性数据并汇报证据,同时注意敏感数据保护。
主要功能
- 01追踪请求经过 Workers 和提供方的路径
- 02检查健康与错误观测数据
- 03执行有界的生产 SQL 查询
- 04按用户和请求格式对比故障
- 05使用针对性错误报告脚本
适用场景
- 01调查模型错误或服务中断
- 02检查回退机制是否掩盖主路径故障
- 03分析超时和流式响应问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pollinations/ pollinations --skill model-debugging安装后在 Claude Code 中输入/model-debugging确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/check-user-errors.shfind-402-users.shfind-403-users.shfind-500-errors.shtinybird-query.sh详细介绍
模型调试
诊断线上问题前,先阅读仓库中的 AGENTS.md 并检查当前路由。将报告中的原因视为假设。首先确认受影响的模型、请求形态、环境、时间范围和用户可见的症状。
追踪故障
- 检查 Model Monitor 以及
enter.pollinations.ai/observability/endpoints/model_health.pipe和recent_server_errors.pipe的当前定义。监控面板显示汇总健康状况;错误管道包含近期可采取行动的服务端故障。 - 通过 enter 和 gen Workers 追踪请求 ID,然后追踪到提供商。使用相关 Worker 的日志或
wrangler tail查看实时事件。查询前先确认目标环境。 - 对于生产 SQL,请使用
enter.pollinations.ai/observability/scripts/tb-prod.sh。该脚本会加载现有读取令牌,但不会打印令牌。使用--check验证访问权限和近期事件。查询必须限制时间范围和行数。 - 将受影响用户的请求与使用相同模型和路由的其他用户进行比较。按状态、上游状态、提供商、请求形态和时间分组。必要时使用现有的授权测试凭据重现精确请求;使用唯一提示词,避免将缓存响应误判为上游正常。
- 报告证据、影响、仍存在的不确定性以及最小修复方案。如果请求修复代码,请遵循相关仓库技能和测试说明。
解读数据
generation_event_v2包含经过身份验证且未命中缓存的请求。编写 SQL 前,请检查其当前数据源定义。每个请求可能对应多条上游尝试记录;is_final标识用户可见的结果。如果只统计最终响应,成功的回退可能会掩盖主上游故障。- 在
model_health中,total_requests和状态计数使用最终结果;own_calls、primary_5xx、primary_retried_503s和fallback_rescues描述上游健康状况和恢复情况。两种视图都要检查。 - 401、402、403、400 或 429 可能源自不同层。检查
generation_event_v2中的error_source和error_response_code;在将其视为调用方噪声或模型故障前,通过recent_server_errors.pipe(保留 24 小时)检查error_event中的upstream_status、upstream_body和upstream_host。 - 即使服务端返回 200,响应也可能在客户端超时后才到达。应按用户和请求形态检查延迟尾部,而不只是查看状态比率或 p95。
- 对于流式故障或用量缺失,在归咎于提供商前,应检查最终的 SSE 数据块,以及提供商、适配器和校验器之间的原始传输错误。
- 提供商返回 500 可能是由无效的调用方输入导致,例如 seed 超出有符号 INT32 范围。宣布上游故障前,先按请求形态比较失败情况。
- 如果 Azure Content Safety 缺少配置或请求失败,它会返回安全结果。如果图片审核似乎未运行,请检查当前配置和 gen 日志;图片响应成功并不能证明安全检查已执行。
- 立即出现的队列已满或速率限制错误,可能是由限流器状态造成,也可能是多个客户端共用一个代理 IP,而后端处于空闲状态。重启 Worker 前,先比较限流器和后端计数器。
- 如果怀疑超时由部署或代理导致,请比较变更前后的症状,并检查最外层跳点。从相关区域依次执行直连和代理探测;并行突发请求可能造成误导性的客户端故障。
定向辅助脚本
scripts/ 中的脚本通过仓库的只读辅助程序查询生产环境中的 Tinybird。它们接受范围受限的数字窗口,应从仓库根目录运行:
.claude/skills/model-debugging/scripts/find-402-users.sh 24 10
.claude/skills/model-debugging/scripts/find-403-users.sh 24 10
.claude/skills/model-debugging/scripts/find-500-errors.sh 24
.claude/skills/model-debugging/scripts/check-user-errors.sh USER_ID 24
这些报告包含用户标识符和错误详情。只检查完成任务所需的行,并避免在共享输出中泄露敏感值。
机密变更和生产部署必须遵守 AGENTS.md 中的审批与 CI 规则;事故诊断并不授权执行这两项操作。
评论
支持 Markdown