mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-13 06:30:20 +08:00
3.4 KiB
3.4 KiB
格式转换失败诊断导出
使用方法
在请求详情的失败或跳过节点中,点击「失败诊断」面板的复制按钮。
复制时才会读取已采集的正文;页面预览本身不会批量加载正文。
请分享整个 JSON,而不是只分享 summary。复制成功标志仅在剪贴板写入成功后出现。
Schema v2
diagnostic:错误码、请求/响应/流式阶段、源/目标格式、转换器标识、完整 JSON 路径及期望约束/实际值。path_source:structured是后端结构化路径,message_inference是历史文案推断,protocol_inference是根据上游协议推断的原始字段路径,unavailable表示没有可靠字段路径。通用$.finish_reason会按协议定位到具体原始字段,同时保留reported_path。stage_source:区分后端阶段信息与历史记录推断。请求转换方向为客户端到上游;响应/流式转换方向相反。versions:前端版本、导出时网关版本、失败时运行版本。历史记录没有运行版本时保留null,不能把导出版本当作失败版本。request/node:请求、候选、重试、模型及时间等定位信息。reproduction.sources:脱敏正文片段、字段样本和流式失败事件窗口。数组通配路径的样本带具体下标。reproduction.missing_context:未采集、无权限、正文过大、读取失败、缺少失败事件或路径等缺口。
后端只为明确匹配 candidate_id 的候选提供上游正文记录。历史记录仅有候选索引时,不把最后一次重试的正文猜成当前失败的正文。
原始客户端请求可在同一请求内共享,但不会把其他候选的上游请求/响应当作失败现场。
body_ref 不是下载地址;前端不访问其中的 URL,而是使用现有、受权限保护的正文接口。
完整性与安全边界
not_loaded:尚未补取上下文。sanitized_context:必要来源已取得,但仍然经过脱敏、大小限制或事件窗口裁剪。insufficient_context:还缺少明确列出的信息,不能据此假设能够完整复现。replay_ready: false:导出的是供排查的证据包,不是可以无条件自动执行的请求。修改前应根据样本建立最小回归测试。
每份正文的下载/解码处理上限为 1 MiB,读取超时为 5 秒;导出 JSON 上限为 64 Ki 字符。 字符串、数组、对象深度与节点数量也有限制。流式窗口保留匹配失败的事件、帧序号及邻近事件;匹配不到时明确标记,而不是认定流尾就是故障点。
默认移除常见认证头、密钥、令牌、Cookie、密码、签名 URL 参数、正文文本和二进制数据。
脱敏是规则化处理,分享前仍需检查自定义字段和错误消息是否含业务敏感信息。
不会为了诊断绕过正文采集策略、授权或存储限制;也不会把 error 或未知结束原因映射成正常成功。
建议处理流程
- 检查
diagnostic.stage、path_source和missing_context,区分转换器缺陷、合法的无损转换拒绝和上游失败。 - 对照源/目标格式以及字段样本,建立最小失败输入;流式问题同时保留必要的前序事件。
- 先补失败回归测试,再修复转换规则。
- 验证原有正常映射、失败闭合以及凭据脱敏没有回退。