Claude Platform Docs
Managed Agents将工作委派给智能体

检查会话并跟踪用量

在 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?