Decouple AI agent runtime construction#23912
Open
luisorofino wants to merge 2 commits into
Open
Conversation
Contributor
|
3 tasks
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced Jun 3, 2026
7ff85ce to
dacf57f
Compare
fec8bb0 to
fd4614c
Compare
Contributor
Validation ReportAll 21 validations passed. Show details
|
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.

What does this PR do?
Refactors the AI framework runtime construction path so callers pass a single
AgentRuntimethrough the ReAct flow instead of manually carrying separate agent and tool registry objects.This PR:
ddev.ai.agent.buildwith one genericAgentRuntimeFactory.build_runtime(...)API.AgentRuntimeas the pair of agent + tool registry, and updatesReActProcessto accept that runtime directly.AgenticPhaserenders the worker system prompt and provides the selected parentAgentConfig.phases.goalderives the reviewer config, including read-only tools and the reviewer prompt.SpawnSubagentToolderives child agent configs and allowed child tools from the parent config.ToolRegistrycontext by removing subagent-specific builder/allowed-tool plumbing and passing generic runtime infrastructure to tool factories.Motivation
The previous design introduced
AgentRuntime, butReActProcessand several call sites still unpacked runtime objects into separate agent and tool-registry values. The agent build layer also knew too much about goal reviewers and subagents, which made phase policy leak into generic agent construction.This refactor keeps
agent.buildfocused on constructing runtimes from explicit inputs, while goal and subagent-specific behavior stays in the modules that own those workflows. The result is a smaller builder API, clearer ownership boundaries, and less duplicated runtime wiring.Review checklist (to be filled by reviewers)
qa/requiredif this PR needs QA validation, orqa/skip-qaif it does not. Exactly one of the two is required.backport/<branch-name>label to the PR and it will automatically open a backport PR once this one is merged