Populate Codex usage metadata for token accounting (#2585)

This commit is contained in:
KiteEater
2026-05-02 11:16:03 +08:00
committed by GitHub
parent 8ba01dfd83
commit 866d1ca409
3 changed files with 65 additions and 0 deletions
@@ -0,0 +1,32 @@
from unittest.mock import MagicMock, patch
from langchain_core.messages import AIMessage
from deerflow.agents.middlewares.token_usage_middleware import TokenUsageMiddleware
def test_after_model_logs_usage_metadata_counts():
middleware = TokenUsageMiddleware()
state = {
"messages": [
AIMessage(
content="done",
usage_metadata={
"input_tokens": 10,
"output_tokens": 5,
"total_tokens": 15,
},
)
]
}
with patch("deerflow.agents.middlewares.token_usage_middleware.logger.info") as info_mock:
result = middleware.after_model(state=state, runtime=MagicMock())
assert result is None
info_mock.assert_called_once_with(
"LLM token usage: input=%s output=%s total=%s",
10,
5,
15,
)