检查会话并跟踪用量
在 Claude Console 中检查会话,读取其令牌用量和标价成本,并调试意外的智能体行为。
使用 Claude Console 中的会话查看器来检查智能体在会话中执行了哪些操作,无需编写任何代码。使用会话的 usage 总计来查看这些工作消耗了多少资源。
在 Console 中检查会话
会话查看器仅对 Developer 和 Admin 开放。要打开它,请前往 Console 侧边栏,在 Managed Agents 下选择 Sessions。该列表显示工作区中的每个会话及其状态、智能体、令牌用量、成本和创建时间。选择一个会话即可打开它。
会话查看器显示:
- 时间线缩略图: 会话活动随时间变化的可缩放概览,在多智能体会话中每个线程占一条通道。选择一条通道可查看该线程,或选择一个标记可跳转到对应事件。
- 对话记录: 按模型请求分组的对话,包括思考过程、工具调用及其输入和结果,以及流式传输中的消息文本。您可以筛选事件,并将其复制或下载为 JSON。
- 检查器: 一个可调整大小的侧面板,以五个选项卡显示会话的详细信息。
| 检查器选项卡 | 显示内容 |
|---|---|
| Session | 会话的详细信息和元数据、其随时间累计的成本,以及在设置了会话预算时相对于该预算的支出。 |
| Events | 当前线程上的每个原始事件,按服务器发送的顺序排列。选择一个事件可查看其 JSON。在页面打开期间流式传输的消息还有一个 Deltas 视图,用于显示其事件增量。 |
| Tools | 会话中智能体所配置的工具,以及调用次数、失败次数和中位持续时间。选择一个工具可查看其调用,并跳转到对话记录中的某次调用。 |
| Resources | 挂载在其容器路径上的文件、代码仓库和记忆存储,包括每个存储中的记忆以及本会话对它们所做的更改。还会列出智能体写入 /mnt/session/outputs 的文件,以及附加到会话智能体的技能。 |
| Threads | 每个线程及其状态、上下文大小和成本。选择一个线程可查看其详细信息,例如智能体、模型、上下文用量和成本。 |
在会话 URL 后追加 ?event={event_id} 可在特定事件处打开该会话。
通过 ant beta:sessions connect,您可以从 ant CLI 打开同一个查看器,或在终端中跟踪会话。请参阅从终端连接到 Managed Agents 会话。
跟踪用量
会话对象包含一个 usage 字段,其中记录了该会话的累计用量:令牌计数、服务器工具使用、活跃时间以及跟踪的标价成本。在会话进入空闲状态后获取该会话,即可读取最新的总计数据。
{
"id": "sesn_01...",
"status": "idle",
"usage": {
"input_tokens": 5000,
"output_tokens": 3200,
"cache_read_input_tokens": 20000,
"cache_creation": {
"ephemeral_5m_input_tokens": 2000,
"ephemeral_1h_input_tokens": 0
},
"list_cost": {
"amount": "187",
"currency": "USD"
},
"active_seconds": 342.5,
"server_tool_use": {
"web_search_requests": 3,
"web_fetch_requests": 0
}
}
}| 字段 | 描述 |
|---|---|
input_tokens | 会话中所有模型调用的未缓存输入令牌数。 |
output_tokens | 会话中所有模型调用的输出令牌总数。 |
cache_read_input_tokens | 从提示缓存中读取的令牌数。 |
cache_creation | 缓存创建令牌数,按缓存生命周期细分(ephemeral_5m_input_tokens 和 ephemeral_1h_input_tokens)。 |
list_cost | 按公开标价计算的会话累计消耗,以字符串形式表示的整数美分数,并附带货币代码。 |
active_seconds | 会话中至少有一个线程在运行的累计时间。并发线程的重叠活动只计算一次。会话的运行时成本按此时长计价。 |
server_tool_use | 服务器执行的工具请求计数,用于计价。网络搜索请求按每次请求计入标价成本。网页获取请求不收取按次费用,也不计量,因此 web_fetch_requests 显示为 0。 |
缓存条目默认使用 5 分钟的 "TTL"(生存时间),因此在该时间窗口内连续进行的轮次可以受益于缓存读取,从而降低每令牌成本。
会话的 stats 对象有其自己的 active_seconds,它将每个线程各自的活跃时间相加,而不是将重叠活动只计算一次。
每线程用量
每个会话线程自身的 usage 也包含 list_cost 和 active_seconds。每线程的数值是独立取整的,并且不包括会话的运行时间成本,因此它们的总和与会话的 list_cost 并不完全相等。以会话的数值为准。
从流中读取用量
您无需轮询会话即可观察这些总计。session.usage 事件在会话流和事件历史中携带相同的累计快照。该快照包含 usage 对象以及会话的 budget,当会话没有预算时,budget 为 null。
该事件在空闲状态转换时发出,而不是按定时器发出:
- 会话在进入空闲状态之前会立即发出一个该事件,无论停止原因是什么。
- 当某个线程因达到会话预算而暂停时,会话会发出一个该事件。
强制执行支出限制
要强制执行支出限制,请设置会话预算,而不是轮询用量并自行停止会话。平台会持续对会话的消耗进行计价,一旦标价成本达到上限,就会在每个线程的下一次模型请求之前将其暂停。请参阅当会话达到其预算时,了解这在流中的表现。
调试技巧
- 检查会话事件: 会话通过
session.error事件报告错误。 - 查看工具结果: 工具执行失败通常可以解释意外的智能体行为。检查器的 Tools 选项卡会显示每个工具的失败情况。
- 使用系统提示: 在系统提示中添加日志记录指令,让智能体总结它做了什么以及发现了什么。
- 排查预览问题: 如果选择启用事件增量的流未按预期运行,请参阅预览故障排除。
后续步骤
Was this page helpful?