Skip to content

feat(workflow): Support loading workflows from YAML configurations#6061

Open
baptmont wants to merge 2 commits into
google:mainfrom
baptmont:state-delta
Open

feat(workflow): Support loading workflows from YAML configurations#6061
baptmont wants to merge 2 commits into
google:mainfrom
baptmont:state-delta

Conversation

@baptmont

Copy link
Copy Markdown

Please ensure you have read the contribution guide before creating a pull request.

Link to Issue or Description of Change

1. Link to an existing issue (if applicable):

  • Closes: N/A
  • Related: N/A

2. Or, if no issue exists, describe the change:

Problem:
Workflows and workflow-specific node types (JoinNode, FunctionNode, ToolNode) defined in YAML config files could not be loaded or executed because:

  1. The class resolution utilities lacked support for identifying and loading the Workflow class and workflow-specific nodes.
  2. References to nested sub-agents and sub-nodes within workflow configuration files were parsed as raw strings rather than recursively resolved and loaded.

Solution:

  1. Implemented the Workflow.from_config method to instantiate declarative workflow graphs from configuration inputs.
  2. Added resolution support for Workflow, JoinNode, FunctionNode, and ToolNode in _resolve_node_class.
  3. Implemented path-aware recursive resolution of nested sub-agent and node .yaml configurations during parsing.

Testing Plan

Unit Tests:

  • I have added or updated unit tests for my change.
  • All unit tests pass locally.

Summary of configuration-related test execution results:

  • Agent configuration tests: uv run pytest tests/unittests/agents/test_agent_config.py
    36 passed

Manual End-to-End (E2E) Tests:
Verified the correctness of workflow config loading by instantiating complex multi-agent graphs from declarative configurations in test_agent_config.py.


Checklist

  • I have read the CONTRIBUTING.md document.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • I have manually tested my changes end-to-end.
  • Any dependent changes have been merged and published in downstream modules.

Additional context

N/A

- Implement `Workflow.from_config` to instantiate workflows from configurations.
- Resolve nested node and sub-agent `.yaml` file references recursively during configuration loading.
- Add parsing support for JoinNode, FunctionNode, and ToolNode types in config utilities.
@adk-bot adk-bot added the core [Component] This issue is related to the core interface and implementation label Jun 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core [Component] This issue is related to the core interface and implementation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants