Add run configuration inheritance for agent-as-tool workflows #1006
+28
−14
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.
Problem:
When using the "agents as tools" pattern, tool-agents create their own execution context but don't inherit the parent's run_config.
This creates two problems:
Tool-agents can't access the parent's global model configuration
If tool-agents don't have their own model field set and the parent's run_config.model is unavailable, model resolution fails entirely, causing the orchestrator to fail when calling the tool
Solution:
Modified the agent-as-tool execution to properly handle run_config inheritance while ensuring robust model resolution. This prevents execution failures when tool-agents lack explicit model configuration.
Changes
1. traces.py
_run_config
attribute to bothNoOpTrace
andTraceImpl
classesTYPE_CHECKING
import forRunConfig
type annotation2. run.py
_run_config
attribute (fallback)3. agent.py
get_current_trace
import from tracing moduleas_tool()
method to retrieve and inherit run configuration from trace contextRunner.run()
for consistent behavior