Skip to content

feat: Add ManagedGraphResult, GraphMetricSummary, and AgentGraphRunnerResult types#151

Draft
jsonbailey wants to merge 3 commits intojb/aic-2388/langchain-runner-protocolfrom
jb/aic-2388/managed-graph-result
Draft

feat: Add ManagedGraphResult, GraphMetricSummary, and AgentGraphRunnerResult types#151
jsonbailey wants to merge 3 commits intojb/aic-2388/langchain-runner-protocolfrom
jb/aic-2388/managed-graph-result

Conversation

@jsonbailey
Copy link
Copy Markdown
Contributor

Summary

Adds the managed-layer return type and metric summary for agent graph execution, mirroring the per-config types introduced in PR 8.

  • GraphMetrics — runner-layer metrics (success, path, duration_ms, usage, node_metrics).
  • GraphMetricSummary — managed-layer summary, analogous to LDAIMetricSummary (adds resumption_token).
  • ManagedGraphResult — return type of ManagedAgentGraph.run() (content, metrics, raw, evaluations task).
  • AgentGraphRunnerResult — pure runner-layer return type (no evaluations field).
  • ManagedAgentGraph.run() now returns ManagedGraphResult and builds a GraphMetricSummary from the underlying runner's LDAIMetrics (path/node_metrics will be populated once graph runners migrate in PR 11).

Stack

PR 7 → PR 8 → PR 8-openai → PR 8-langchain → PR 9 (this) → PR 10 → PR 11 → PR 11-openai → PR 11-langchain → PR 12

Test plan

  • make test — 261 tests pass (server-ai 140, langchain 81, openai 40)
  • make lint — mypy clean

🤖 Generated with Claude Code

@jsonbailey jsonbailey force-pushed the jb/aic-2388/langchain-runner-protocol branch from 37bad31 to b708885 Compare April 29, 2026 13:14
@jsonbailey jsonbailey force-pushed the jb/aic-2388/managed-graph-result branch from d847d83 to 9c9e802 Compare April 29, 2026 13:15
@jsonbailey jsonbailey force-pushed the jb/aic-2388/langchain-runner-protocol branch from b708885 to c553fbd Compare April 29, 2026 13:19
@jsonbailey jsonbailey force-pushed the jb/aic-2388/managed-graph-result branch from 9c9e802 to 5fb879e Compare April 29, 2026 13:19
@jsonbailey jsonbailey force-pushed the jb/aic-2388/langchain-runner-protocol branch from c553fbd to 5df809b Compare April 29, 2026 13:22
@jsonbailey jsonbailey force-pushed the jb/aic-2388/managed-graph-result branch from 5fb879e to 4319954 Compare April 29, 2026 13:22
@jsonbailey jsonbailey force-pushed the jb/aic-2388/langchain-runner-protocol branch from 5df809b to c6e35a4 Compare April 29, 2026 13:48
@jsonbailey jsonbailey force-pushed the jb/aic-2388/managed-graph-result branch from 4319954 to ba64a62 Compare April 29, 2026 13:50
@jsonbailey jsonbailey force-pushed the jb/aic-2388/langchain-runner-protocol branch from c6e35a4 to 08dfcb7 Compare April 29, 2026 13:56
@jsonbailey jsonbailey force-pushed the jb/aic-2388/managed-graph-result branch from ba64a62 to 49e95a3 Compare April 29, 2026 13:56
@jsonbailey jsonbailey force-pushed the jb/aic-2388/langchain-runner-protocol branch from 08dfcb7 to ca37e74 Compare April 29, 2026 14:38
@jsonbailey jsonbailey force-pushed the jb/aic-2388/managed-graph-result branch from 49e95a3 to 80d4e11 Compare April 29, 2026 14:38
jsonbailey and others added 2 commits April 29, 2026 11:31
…nnerResult

- OpenAIModelRunner.run() implements the unified Runner protocol; returns RunnerResult
  with content, metrics (LDAIMetrics), raw, and parsed fields. Structured output is
  supported via the output_type parameter.
- OpenAIAgentRunner.run() updated to return RunnerResult; populates tool_calls in
  LDAIMetrics from observed openai-agents ToolCallItems.
- Legacy invoke_model() and invoke_structured_model() retained as deprecated adapters
  that delegate to run() and wrap results into ModelResponse / StructuredResponse for
  backward compatibility.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… RunnerResult

- LangChainModelRunner.run() implements the unified Runner protocol; returns RunnerResult
  with content, metrics (LDAIMetrics), raw, and parsed fields. Structured output is
  supported via the output_type parameter.
- LangChainAgentRunner.run() updated to return RunnerResult; populates tool_calls in
  LDAIMetrics from observed tool_calls in message responses.
- Legacy invoke_model() and invoke_structured_model() retained as deprecated adapters
  that delegate to run() and wrap results into ModelResponse / StructuredResponse for
  backward compatibility.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jsonbailey jsonbailey force-pushed the jb/aic-2388/langchain-runner-protocol branch from ca37e74 to 9c0003c Compare April 29, 2026 16:31
…rResult types

- Add GraphMetrics dataclass (runner-layer return type for graph runs)
- Add GraphMetricSummary dataclass (managed-layer metrics, analogous to
  LDAIMetricSummary for single-model invocations)
- Add ManagedGraphResult dataclass (managed-layer return type from ManagedAgentGraph)
- Add AgentGraphRunnerResult dataclass (future runner return type, no evaluations field)
- ManagedAgentGraph.run() now returns ManagedGraphResult with GraphMetricSummary
  built from the runner's AgentGraphResult metrics
- Export all new types from ldai package

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jsonbailey jsonbailey force-pushed the jb/aic-2388/managed-graph-result branch from 80d4e11 to 05e1f4c Compare April 29, 2026 16:33
@jsonbailey jsonbailey force-pushed the jb/aic-2388/langchain-runner-protocol branch 9 times, most recently from 069c0ee to 1c0255f Compare April 29, 2026 21:56

Delegates to the underlying AgentGraphRunner, which handles
execution and all auto-tracking internally.
Delegates to the underlying AgentGraphRunner, builds a
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems redundant given the parm and return docs below.

content=result.output,
metrics=summary,
raw=result.raw,
evaluations=None,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be added in a follow up PR #153

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant