4. 管控
4.2 LLM记录
Agent通过Gateway转发的每一个请求:完整的system提示词、每一条消息和工具调用、模型看到的每个工具的schema、返回的回答,外加token和费用。
这一页回答的是"Agent到底发了什么、收到了什么",而这是任何token计数都回答不了的。
接入Agent之前先读这一段
**从第一个请求起,每个转发的请求都被完整记录,包括提示词。**这些内容不会离开这台机器——但提示词里有什么,取决于你往里粘了什么。如果这不是你想留下的东西,先改设置。
页面顶部的选择器有三档,设置→LLM记录里也是同一个选择:
| 模式 | 保留什么 |
|---|---|
关闭记录(off) | 什么都不留 |
只记录元数据(metadata) | 谁调用了哪个模型、结果如何 |
记录元数据和正文(full,默认) | 上面这些,外加请求正文——提示词、消息和工具schema——以及响应 |
改动从下一个请求开始生效。
响应
记录里的响应标签页,是客户端收到的回答。不管供应商说的是哪套API,都统一存成一种格式——Anthropic消息;流式回答会合并成一条。中途断掉的流,会保留断开前已经收到的部分;解析不了的回答按原样保存。
只有在full模式下成功转发的回答才会保存。失败的请求显示的是上游返回的错误。
相关限制
由conf/app.conf播种,之后在设置页改:
llmRecordMode = "full"
llmRecordRetentionDays = 30
llmRecordMaxRecords = 10000
llmRecordMaxPayloadBytes = 1048576什么不会被存
- 请求头根本不进记录,而入站的API Key正是在请求头里。
- 请求和响应正文在落库前都会脱敏:像凭据的内容会被替换掉,替换了多少处会连同记录一起显示。
- 超过
llmRecordMaxPayloadBytes的正文只丢掉最长的那些字符串,结构保留,所以一段很长的对话仍然能一条一条列出来。
请求的模型和响应的模型不是同一个时
一个请求可能由客户端请求之外的模型来响应:命中了路由规则,或者上一级模型响应不了而降级了。这类请求的记录里会带上实际发往(真正上到线上的模型名)和命中规则(选中它的那条规则)。没发生路由时这两项不显示。
失败切换掉的每一次尝试也会列出来,包含渠道、它请求的模型,以及它为什么没响应,所以一次由较小模型完成的对话,能看清它上面试过什么。
费用那一列
按标价算出来的,而厂商会改价、中转商不跟;计价用的是真正计费的那个模型,而不是客户端请求的那个。两种纠正方式:
- 在模型定价页改价(4.3)。
- 把
llmPricingFile指向你自己那份费率的JSON文件。
和另外两页的区别
| 页面 | 覆盖 | 来源 |
|---|---|---|
| LLM记录 | Gateway转发过的请求 | 代理 |
| 活动记录 | 被监控Agent的工具调用 | 监控钩子 |
| 会话 | 完整对话,不管走没走Gateway | Agent自己的会话记录 |
下一节:4.3 用量与模型定价。
