Problem
Issue #307 specifies structured output variables that are missing from the current implementation:
steps:
- id: analyze_data
vars:
- summary: "Brief summary of analysis results"
- statistics: {"mean": 0.0, "std": 0.0, "count": 0}
- recommendations: ["List of recommended actions"]
- confidence_score: None # Default format - save as string
Solution Required
Implement structured variable system with LangChain integration:
1. YAML Specification Support
- Parse
vars field in step definitions
- Support format descriptions and example objects
- Variable access via
pipeline.step_name.var_name syntax
2. LangChain Structured Outputs
- Generate Pydantic models from variable definitions
- Enforce output structure during model execution
- Type validation and conversion
3. Variable Management Integration
- Store structured outputs in existing VariableManager
- Template resolution with structured data access
- Cross-step variable dependencies
Implementation Details
Variable Definition Formats
vars:
- simple_string: None # String output (default)
- formatted_text: "Markdown formatted result" # Format hint
- json_object: {"key": "value"} # JSON structure example
- typed_list: ["item1", "item2"] # List format example
- complex_structure: # Nested structure
name: "string"
value: 0
items: []
LangChain Integration
- Auto-generate Pydantic models from variable definitions
- Use structured output parsers during model execution
- Handle parsing errors and validation failures
Acceptance Criteria
Files to Modify
src/orchestrator/compiler/yaml_compiler.py - YAML parsing
src/orchestrator/execution/variable_manager.py - Structured storage
src/orchestrator/models/ - Structured output integration
src/orchestrator/core/pipeline.py - Variable access API
Priority: High - Core data management requirement from #307
Problem
Issue #307 specifies structured output variables that are missing from the current implementation:
Solution Required
Implement structured variable system with LangChain integration:
1. YAML Specification Support
varsfield in step definitionspipeline.step_name.var_namesyntax2. LangChain Structured Outputs
3. Variable Management Integration
Implementation Details
Variable Definition Formats
LangChain Integration
Acceptance Criteria
varsfield parsing in YAML compilerFiles to Modify
src/orchestrator/compiler/yaml_compiler.py- YAML parsingsrc/orchestrator/execution/variable_manager.py- Structured storagesrc/orchestrator/models/- Structured output integrationsrc/orchestrator/core/pipeline.py- Variable access APIPriority: High - Core data management requirement from #307