APILoggingPrivacyTroubleshootingNbility

AI API 求助日志怎么留:能定位故障,也不贴出 Key 和正文

给出一次失败请求的最小记录模板,按客户端、模型网关和工具分开关联;解释为什么黑掉 Authorization 还不够,以及公开前怎样检查日志。

查看接入文档
AI API 求助日志怎么留:能定位故障,也不贴出 Key 和正文

排查 AI API 失败,最有用的材料通常不是一大张聊天截图,而是一次请求的时间、路径、版本和失败阶段。先留能关联这次调用的信息,再按最小范围补证据。 把 Authorization 黑掉只是第一步,正文、工具结果、签名下载地址和本机路径也可能泄露资料。

本文于 2026 年 11 月 10 日核对 OWASP Logging Cheat Sheet 与本站日志、错误和接入说明。以下为推荐的求助记录,不是本站承诺已经采集的字段,也不代表一次真实故障。

先判断哪条路径需要材料

一个 Agent 可能同时请求模型、读取本地文件、执行 MCP 工具和调用业务系统。模型网关只能看到经过它的请求;独立工具失败,不能只靠模型请求日志还原。

先画一条简单顺序:客户端开始 → 模型请求 → 工具执行 → 模型续接 → 最终显示。标出最后一项确认成功的步骤,再看下一项需要谁的记录。可参考 MCP 角色分工和远程工具恢复,避免把所有错误都交给同一层处理。

模型路径与独立工具路径分别记录,由任务关联串起来

一份可以直接填写的最小模板

以下值全部是占位内容,时长也是教学示意:

{
  "observed_at": "2026-11-10T09:00:00Z",
  "client": "CLIENT_NAME_AND_VERSION",
  "stage": "model_stream",
  "api_path": "/v1/chat/completions",
  "model": "YOUR_MODEL_ID",
  "stream": true,
  "http_status": 200,
  "content_type": "text/event-stream",
  "elapsed_ms": 12000,
  "last_complete_event_type": "APP_PROTOCOL_EVENT",
  "terminal_event_seen": false,
  "exception_class": "ReadError",
  "support_request_ref": "REPLACE_FOR_PRIVATE_SUPPORT"
}

按实际存在的字段填写,没有的写未取得,不要猜。时间应含时区;时长尽量用同一进程的单调计时,跨机器不要把时钟误差当网络耗时。事件类型要按真实协议填写,上面的 APP_PROTOCOL_EVENT 不是某个 API 定义的具体事件。

请求 ID 适合通过私密支持渠道关联服务端记录。公开发帖时可把 ID 换成 REQ-A 等稳定别名,并保留对应关系在自己手里。这样既能说明多层顺序,也不会把所有内部标识公开。

OWASP 日志建议强调记录交互关联信息,并避免直接记录访问令牌、会话标识、密码和敏感个人信息。它也提醒,来自其他信任范围的事件内容可能缺失、伪造或恶意,不能照单全收。

这些位置容易漏出秘密

材料容易遗漏的内容更合适的分享方式
curl -v 输出请求认证头、代理认证、Cookie分享命令结构与状态,去掉敏感头
完整 URL查询参数里的 token、签名、客户标识只留必要的域名和路径形状
HAR 与网络导出全部请求响应、表单、会话信息先在本地检查,优先改做最小样本
工具报错与栈文件路径、命令参数、业务正文保留异常类型与必要调用位置
图片、录屏、附件账号、群成员、通知、图片元数据使用公开测试资料或真正脱敏副本

只按 sk- 等前缀搜索不能找到所有凭据。Bot token、签名 URL、数据库地址和业务标识的格式各不相同。正则扫描可辅助检查,不能代替逐项确认。若凭据确实已经泄露,删除截图不等于失效,应按服务流程撤销并更换;基础做法见API Key 安全。

保留状态和关联信息,去掉认证、签名 URL、正文与个人资料

记录结构,不要默认记录内容

开发应用时,优先明确允许的诊断字段,再构建结构化日志。不要先把整个请求对象写出去,事后再尝试删敏感键:嵌套工具结果、错误对象和自定义字段可能带进新的内容。

对用户可控的字段限制类型与长度,使用正确的结构化编码,防止换行和分隔符伪造成另一条日志。OWASP 特别讨论了 CR/LF 日志注入;参数化字符串本身并不自动解决所有输出编码问题。异常消息也可能带完整请求,不宜直接作为公共日志正文。

完整输入确有必要时,单独判断授权、访问者、存储位置与删除期限,不把它自动扩展成永久全量记录。模型、网关、工具和工单中的副本都需要考虑,而不仅是应用日志文件。

发出去之前,用一遍读者视角检查

本地筛选、检查秘密、核对最小样本与选择分享渠道依次进行

先在本地复制一份材料,把私人内容替换为公开的小输入;确认仍能说明同一种失败,再分享必要部分。检查 Key、Cookie、签名查询参数、文件路径、个人信息和附件。最后区分公开社区与私密工单需要的范围。

使用 Nbility 时,先在用量日志找对应模型请求,再按错误文档确认错误结构。若提供给支持,保留发生时间、模型 ID 和所需请求标识;如果只有 200 OK 但流没完整结束,可同时参考SSE 边界检查。

本文没有用真实秘密测试任何脱敏工具,也不声称模板能覆盖所有泄露路径。它的作用是让一次故障留下足够的定位信息,同时减少无关私密内容进入下一份副本。

相关文章

用 Nbility 跑通你的 Agent 工作流

获取 API Key,统一接入 OpenAI 兼容模型和开发工具。

获取 API Key