feat(AIC-3449): refactor AI Config reference into a dataclass - #113
Merged
Merged
Conversation
donei003
approved these changes
Sep 28, 2026
donei003
left a comment
Contributor
There was a problem hiding this comment.
LGTM! Just had a commenting regarding the ability to re-use a dataclass if one exists.
|
|
||
|
|
||
| @dataclass(frozen=True) | ||
| class AIConfig: |
Contributor
There was a problem hiding this comment.
We have ways to evaluate an AI Config in the SDK already. Is there anywhere in the SDK that returns an AI Config object? If so, we should re-use that class if possible.
Contributor
Author
There was a problem hiding this comment.
none that I could find in searching. if we move forward with the proposed UX changes we can refine/consolidate
Merged
donei003
added a commit
that referenced
this pull request
Sep 30, 2026
🤖 I have created a release *beep* *boop* --- <details><summary>launchdarkly-ai-server: 0.2.4</summary> ## [0.2.4](launchdarkly-ai-server-0.2.3...launchdarkly-ai-server-0.2.4) (2026-09-30) ### Features * **AIC-3210:** support graph().stream() in the Python AI SDK ([#104](#104)) ([25a345a](25a345a)) * **AIC-3211:** record each graph node as its own tracking event ([#114](#114)) ([c3c439e](c3c439e)) * **AIC-3449:** refactor AI Config reference into a dataclass ([#113](#113)) ([3ac06b4](3ac06b4)) * **AIC-3449:** Support pulling in configs for evals from code ([#108](#108)) ([fa374e2](fa374e2)) * **evaluations:** preserve the tool trajectory for judges ([#89](#89)) ([bcaa8c8](bcaa8c8)) ### Bug Fixes * **graph:** rename the graph span back to launchdarkly.graph, thread trajectory into stream judges ([79c9eeb](79c9eeb)) * **judges:** bound recorded values in memory, and show config's full tool catalog ([25fafef](25fafef)) * **judges:** exclude native tools from the config's available-tool list ([245a0a5](245a0a5)) * **judges:** keep trajectory recording total and observational ([57386b6](57386b6)) </details> <details><summary>launchdarkly-ai-python: 0.1.8</summary> ## [0.1.8](launchdarkly-ai-python-0.1.7...launchdarkly-ai-python-0.1.8) (2026-09-30) ### Features * **evaluations:** preserve the tool trajectory for judges ([#89](#89)) ([bcaa8c8](bcaa8c8)) </details> <details><summary>launchdarkly-ai-claude-agents: 0.2.4</summary> ## [0.2.4](launchdarkly-ai-claude-agents-0.2.3...launchdarkly-ai-claude-agents-0.2.4) (2026-09-30) ### Features * **AIC-3211:** record each graph node as its own tracking event ([#114](#114)) ([c3c439e](c3c439e)) </details> <details><summary>launchdarkly-ai-openai-agents: 0.2.4</summary> ## [0.2.4](launchdarkly-ai-openai-agents-0.2.3...launchdarkly-ai-openai-agents-0.2.4) (2026-09-30) ### Features * **AIC-3211:** record each graph node as its own tracking event ([#114](#114)) ([c3c439e](c3c439e)) ### Bug Fixes * **openai-agents:** accept sync tool handlers ([0ac9231](0ac9231)) * **openai-agents:** accept sync tool handlers ([#119](#119)) ([656d922](656d922)) </details> <details><summary>launchdarkly-ai-langchain-agents: 0.2.4</summary> ## [0.2.4](launchdarkly-ai-langchain-agents-0.2.3...launchdarkly-ai-langchain-agents-0.2.4) (2026-09-30) ### Features * **AIC-3211:** record each graph node as its own tracking event ([#114](#114)) ([c3c439e](c3c439e)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Overview** > **Release Please** bumps monorepo package versions and adds changelog entries; there is no new application source in the diff—only `.release-please-manifest.json`, `pyproject.toml`, `__version__`, and `CHANGELOG.md` updates. > > **`launchdarkly-ai-server` 0.2.4** (and aligned **claude / openai / langchain-agents** 0.2.4, **`launchdarkly-ai-python`** 0.1.8) documents already-merged work: **`graph().stream()`**, **per-graph-node tracking events**, **AI Config as a dataclass** and **eval configs from code**, **tool trajectory preserved for judges**, plus judge/graph telemetry fixes (e.g. `launchdarkly.graph` span, bounded trajectory memory, native tools excluded from available-tool lists) and **openai-agents** accepting **sync tool handlers**. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 27fba0e. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Making the relationship between config and variation keys explicit for easier validation. No functional changes beyond this minor refactor.
Note
Overview
Breaking API change:
EvaluationsModule.run()no longer accepts separateai_configandvariationstring arguments. Callers must pass a singleAIConfig(key=..., variation=...)frozen dataclass when seeding a run from an existing AI Config variation.The new type is exported from
launchdarkly_ai_serverandlaunchdarkly_ai_server.evaluations. Validation now checksai_config.keyandai_config.variationfor blank values (replacing the old paired-parameter errors). Fetching, merging withgeneration, tools, judges, and logging behavior are unchanged aside from using the struct’s fields.Reviewed by Cursor Bugbot for commit 2bb40bb. Bugbot is set up for automated code reviews on this repo. Configure here.