Skip to content

Commit 31dcc8f

Browse files
jsonbaileyclaude
andcommitted
feat!: Remove tracker param from Judge and ManagedAgentGraph
Judge now calls self._ai_config.create_tracker() per evaluate() invocation instead of receiving a tracker at construction time. ManagedAgentGraph no longer stores or exposes a tracker. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7050ab0 commit 31dcc8f

5 files changed

Lines changed: 87 additions & 343 deletions

File tree

packages/sdk/server-ai/src/ldai/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ async def create_judge(
273273
if not provider:
274274
return None
275275

276-
return Judge(judge_config, judge_config.create_tracker(), provider)
276+
return Judge(judge_config, provider)
277277
except Exception as error:
278278
return None
279279

@@ -747,7 +747,7 @@ async def create_agent_graph(
747747
if not runner:
748748
return None
749749

750-
return ManagedAgentGraph(runner, graph.get_tracker())
750+
return ManagedAgentGraph(runner)
751751

752752
def agents(
753753
self,

packages/sdk/server-ai/src/ldai/judge/__init__.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
from ldai.models import AIJudgeConfig, LDMessage
1111
from ldai.providers.model_runner import ModelRunner
1212
from ldai.providers.types import JudgeResult, ModelResponse
13-
from ldai.tracker import LDAIConfigTracker
1413

1514

1615
class Judge:
@@ -24,18 +23,15 @@ class Judge:
2423
def __init__(
2524
self,
2625
ai_config: AIJudgeConfig,
27-
ai_config_tracker: LDAIConfigTracker,
2826
model_runner: ModelRunner,
2927
):
3028
"""
3129
Initialize the Judge.
3230
3331
:param ai_config: The judge AI configuration
34-
:param ai_config_tracker: The tracker for the judge configuration
3532
:param model_runner: The model runner to use for evaluation
3633
"""
3734
self._ai_config = ai_config
38-
self._ai_config_tracker = ai_config_tracker
3935
self._model_runner = model_runner
4036
self._evaluation_response_structure = EvaluationSchemaBuilder.build()
4137

@@ -74,10 +70,11 @@ async def evaluate(
7470

7571
judge_result.sampled = True
7672

73+
tracker = self._ai_config.create_tracker()
7774
messages = self._construct_evaluation_messages(input_text, output_text)
7875
assert self._evaluation_response_structure is not None
7976

80-
response = await self._ai_config_tracker.track_metrics_of_async(
77+
response = await tracker.track_metrics_of_async(
8178
lambda: self._model_runner.invoke_structured_model(messages, self._evaluation_response_structure),
8279
lambda result: result.metrics,
8380
)
@@ -126,14 +123,6 @@ def get_ai_config(self) -> AIJudgeConfig:
126123
"""
127124
return self._ai_config
128125

129-
def get_tracker(self) -> LDAIConfigTracker:
130-
"""
131-
Returns the tracker associated with this judge.
132-
133-
:return: The tracker for the judge configuration
134-
"""
135-
return self._ai_config_tracker
136-
137126
def get_model_runner(self) -> ModelRunner:
138127
"""
139128
Returns the model runner used by this judge.

packages/sdk/server-ai/src/ldai/managed_agent_graph.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
"""ManagedAgentGraph — LaunchDarkly managed wrapper for agent graph execution."""
22

3-
from typing import Any, Optional
3+
from typing import Any
44

55
from ldai.providers import AgentGraphResult, AgentGraphRunner
6-
from ldai.tracker import AIGraphTracker
76

87

98
class ManagedAgentGraph:
109
"""
1110
LaunchDarkly managed wrapper for AI agent graph execution.
1211
13-
Holds an AgentGraphRunner and an AIGraphTracker. Auto-tracking of path,
12+
Holds an AgentGraphRunner. Auto-tracking of path,
1413
tool calls, handoffs, latency, and invocation success/failure is handled
1514
by the runner implementation.
1615
@@ -20,16 +19,13 @@ class ManagedAgentGraph:
2019
def __init__(
2120
self,
2221
runner: AgentGraphRunner,
23-
tracker: Optional[AIGraphTracker] = None,
2422
):
2523
"""
2624
Initialize ManagedAgentGraph.
2725
2826
:param runner: The AgentGraphRunner to delegate execution to
29-
:param tracker: The AIGraphTracker for this graph
3027
"""
3128
self._runner = runner
32-
self._tracker = tracker
3329

3430
async def run(self, input: Any) -> AgentGraphResult:
3531
"""
@@ -50,11 +46,3 @@ def get_agent_graph_runner(self) -> AgentGraphRunner:
5046
:return: The AgentGraphRunner instance
5147
"""
5248
return self._runner
53-
54-
def get_tracker(self) -> Optional[AIGraphTracker]:
55-
"""
56-
Return the AIGraphTracker for this graph.
57-
58-
:return: The AIGraphTracker instance, or None if not available
59-
"""
60-
return self._tracker

0 commit comments

Comments
 (0)