以下页面描述网关的预期行为。开源版本与企业版本正在拆分中,首个正式版本发布后细节会同步更新。
日志与追踪
结构化请求记录、路由日志,以及 OTLP 导出。
每个请求产生两种记录:一条结构化请求日志,一份路由日志。
请求日志
每个完成的请求输出一行结构化 JSON:
{
"ts": "2026-10-07T21:04:11.482Z",
"request_id": "01J...",
"route": "POST /v1/messages",
"provider": "anthropic",
"model": "claude-sonnet-5-5",
"status": 200,
"duration_ms": 812.4,
"attempts": 1,
"tokens": { "input": 42, "output": 118, "cached": 0 },
"cost_usd": 0.00142,
"workspace": "platform"
}
字段集是稳定的。新增字段属于小版本变更,重命名字段属于大版本变更。
路由日志
路由日志解释的是决策过程,而不只是结果。它按顺序记录:
- 选中了哪个 target,依据是什么(链序、权重、会话)
- 为什么发生重试,是否换了密钥
- 为什么放置暂停、解除暂停,或被跳过
- 最终由哪个 target 服务
读一份路由日志就能回答「这个请求为什么发到那里」,不必去关联多个日志流。
路由日志随请求保存;当回退链全部失败时,它会包含在 503 的响应体里。
追踪
配置 OTLP 导出后,每次上游尝试成为一个 client span,整个请求成为一个 server span。
追踪上下文通过 traceparent Header 传递给 provider。
gen_ai.* 属性遵循 OpenTelemetry 生成式 AI 语义约定,因此按该约定搭建的面板无需转换即可使用。
| 设置 | 效果 |
|---|---|
| 关闭正文捕获 | 属性只描述结构与用量 |
| 开启正文捕获 | 记录提示词与补全内容,超出配置上限时截断 |
脱敏
Header 脱敏在任何内容落盘之前执行。凭据不会出现在日志、span 或路由日志中 —— 包括在把上游响应回显给调用方的错误路径上。