@@ -35,6 +35,7 @@ def _make_graph(mock_ld_client: MagicMock, node_key: str = 'root-agent', graph_k
3535 model_name = 'gpt-4' ,
3636 provider_name = 'openai' ,
3737 context = context ,
38+ run_id = 'test-run-id' ,
3839 graph_key = graph_key ,
3940 )
4041 graph_tracker = AIGraphTracker (
@@ -50,7 +51,7 @@ def _make_graph(mock_ld_client: MagicMock, node_key: str = 'root-agent', graph_k
5051 model = ModelConfig (name = 'gpt-4' , parameters = {}),
5152 provider = ProviderConfig (name = 'openai' ),
5253 instructions = 'Be helpful.' ,
53- tracker = node_tracker ,
54+ create_tracker = lambda : node_tracker ,
5455 )
5556 graph_config = AIAgentGraphConfig (
5657 key = graph_key ,
@@ -64,7 +65,7 @@ def _make_graph(mock_ld_client: MagicMock, node_key: str = 'root-agent', graph_k
6465 nodes = nodes ,
6566 context = context ,
6667 enabled = True ,
67- tracker = graph_tracker ,
68+ create_tracker = lambda : graph_tracker ,
6869 )
6970
7071
@@ -320,7 +321,7 @@ def test_flush_emits_token_events_to_ld_tracker():
320321 """flush() calls track_tokens on the node's config tracker."""
321322 mock_ld_client = MagicMock ()
322323 graph = _make_graph (mock_ld_client , node_key = 'root-agent' , graph_key = 'g1' )
323- tracker = graph .get_tracker ()
324+ tracker = graph .create_tracker ()
324325
325326 handler = LDMetricsCallbackHandler ({'root-agent' }, {})
326327 node_run_id = uuid4 ()
@@ -339,7 +340,7 @@ def test_flush_emits_duration():
339340 """flush() calls track_duration when duration was recorded."""
340341 mock_ld_client = MagicMock ()
341342 graph = _make_graph (mock_ld_client )
342- tracker = graph .get_tracker ()
343+ tracker = graph .create_tracker ()
343344
344345 handler = LDMetricsCallbackHandler ({'root-agent' }, {})
345346 run_id = uuid4 ()
@@ -355,7 +356,7 @@ def test_flush_emits_tool_calls():
355356 """flush() calls track_tool_call for each recorded tool invocation."""
356357 mock_ld_client = MagicMock ()
357358 graph = _make_graph (mock_ld_client )
358- tracker = graph .get_tracker ()
359+ tracker = graph .create_tracker ()
359360
360361 handler = LDMetricsCallbackHandler ({'root-agent' }, {'fn_search' : 'search' })
361362 # The agent node must be started first so it appears in the path for flush()
@@ -377,7 +378,7 @@ def test_flush_includes_graph_key_in_node_events():
377378 """flush() passes graph_key to the node tracker so graphKey appears in events."""
378379 mock_ld_client = MagicMock ()
379380 graph = _make_graph (mock_ld_client , graph_key = 'my-graph' )
380- tracker = graph .get_tracker ()
381+ tracker = graph .create_tracker ()
381382
382383 handler = LDMetricsCallbackHandler ({'root-agent' }, {})
383384 node_run_id = uuid4 ()
@@ -402,14 +403,15 @@ def test_flush_with_no_graph_key_on_node_tracker():
402403 model_name = 'gpt-4' ,
403404 provider_name = 'openai' ,
404405 context = context ,
406+ run_id = 'test-run-id' ,
405407 )
406408 node_config = AIAgentConfig (
407409 key = 'root-agent' ,
408410 enabled = True ,
409411 model = ModelConfig (name = 'gpt-4' , parameters = {}),
410412 provider = ProviderConfig (name = 'openai' ),
411413 instructions = 'Be helpful.' ,
412- tracker = node_tracker ,
414+ create_tracker = lambda : node_tracker ,
413415 )
414416 graph_config = AIAgentGraphConfig (
415417 key = 'test-graph' ,
@@ -423,7 +425,7 @@ def test_flush_with_no_graph_key_on_node_tracker():
423425 nodes = nodes ,
424426 context = context ,
425427 enabled = True ,
426- tracker = None ,
428+ create_tracker = lambda : None ,
427429 )
428430
429431 handler = LDMetricsCallbackHandler ({'root-agent' }, {})
@@ -441,7 +443,7 @@ def test_flush_skips_nodes_not_in_path():
441443 """flush() only emits events for nodes that were actually executed."""
442444 mock_ld_client = MagicMock ()
443445 graph = _make_graph (mock_ld_client )
444- tracker = graph .get_tracker ()
446+ tracker = graph .create_tracker ()
445447
446448 # Handler with 'root-agent' in node_keys but never started
447449 handler = LDMetricsCallbackHandler ({'root-agent' }, {})
@@ -460,10 +462,10 @@ def test_flush_skips_node_without_tracker():
460462 node_config_no_tracker = AIAgentConfig (
461463 key = 'no-track' ,
462464 enabled = True ,
465+ create_tracker = lambda : None ,
463466 model = ModelConfig (name = 'gpt-4' , parameters = {}),
464467 provider = ProviderConfig (name = 'openai' ),
465468 instructions = '' ,
466- tracker = None ,
467469 )
468470 graph_config = AIAgentGraphConfig (
469471 key = 'g' , root_config_key = 'no-track' , edges = [], enabled = True
@@ -474,7 +476,7 @@ def test_flush_skips_node_without_tracker():
474476 nodes = nodes ,
475477 context = context ,
476478 enabled = True ,
477- tracker = None ,
479+ create_tracker = lambda : None ,
478480 )
479481
480482 handler = LDMetricsCallbackHandler ({'no-track' }, {})
0 commit comments