功能:记录每次 LLM 调用的 token 消耗
1 拦截时机
在模型返回响应后触发(after_model / aafter_model),即同步和异步两种调用路径都覆盖。
2 数据来源
从 Agent 状态中取 messages 列表的最后一条消息(即 LLM 的最新响应),读取其 usage_metadata 属性。
3 日志输出
如果存在 usage_metadata,则通过 logger.info 打印三个指标:
input_tokens — 输入 token 数
output_tokens — 输出 token 数
total_tokens — 总 token 数