import time import json from functools import wraps def traced_tool(tool_fn): @wraps(tool_fn) def wrapper(*args, **kwargs): start = time.time() result = tool_fn(*args, **kwargs) elapsed = time.time() - start print(json.dumps({ "event": "tool_call", "tool": tool_fn.__name__, "elapsed_ms": round(elapsed * 1000), "result_keys": list(result.keys()) if isinstance(result, dict) else type(result).__name__ })) return result return wrapper