Skip to content

Commit cb426d5

Browse files
committed
log token usage after every single step
1 parent ae3a1a4 commit cb426d5

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

aide/agent.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import random
44
import time
55
from typing import Any, Callable, cast
6+
import json
67

78
import humanize
89
from .backend import FunctionSpec, query, TokenCounter
@@ -360,6 +361,19 @@ def step(self, exec_callback: ExecCallbackType) -> bool:
360361
logger.info(f"Node {best_node.id} is still the best node")
361362
self.current_step += 1
362363

364+
total_cost = self.token_counter.cost()
365+
input_tokens_dict = self.token_counter.total_input_tokens
366+
output_tokens_dict = self.token_counter.total_output_tokens
367+
logger.info(
368+
"Total input tokens after current step: %s",
369+
json.dumps(input_tokens_dict, sort_keys=True),
370+
)
371+
logger.info(
372+
"Total output tokens after current step: %s",
373+
json.dumps(output_tokens_dict, sort_keys=True),
374+
)
375+
logger.info(f"Total cost after current step: {total_cost:.2f} USD")
376+
363377
# check early exit required by token counter
364378
if self.token_counter.cost_limit:
365379
exceed_budget_limit = self.token_counter.exceed_budget_limit()

aide/run.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import logging
33
import shutil
44
import sys
5-
import json
65

76
from . import backend
87

@@ -198,18 +197,6 @@ def generate_live():
198197
if exceed_budget_limit and global_step < cfg.agent.steps:
199198
logger.info(journal_to_string_tree(journal))
200199
logger.info("Budget limit exceeded, stopping run.")
201-
total_cost = agent.token_counter.cost()
202-
input_tokens_dict = agent.token_counter.total_input_tokens
203-
output_tokens_dict = agent.token_counter.total_output_tokens
204-
logger.info(
205-
"Total input tokens before report generation: %s",
206-
json.dumps(input_tokens_dict, sort_keys=True),
207-
)
208-
logger.info(
209-
"Total output tokens before report generation: %s",
210-
json.dumps(output_tokens_dict, sort_keys=True),
211-
)
212-
logger.info(f"Total cost before report generation: {total_cost:.2f} USD")
213200
interpreter.cleanup_session()
214201

215202
if cfg.generate_report:

0 commit comments

Comments
 (0)