Architecture Boundaries
This page captures the intended separation of concerns in workflow orchestration.
Primary boundaries
design_research_agents.workflow: public construction surface for composing new workflow implementations from typed step objects.Workflow: reusable facade for constructor-first step graphs with explicit input contracts and workflow-first output envelopes.WorkflowRuntime: deterministic typed-step execution engine used byWorkflow.design_research_agents.patterns: public prebuilt implementations built from workflow primitives.
Step primitives
LogicStep: deterministic local logic and optional branching map.ToolStep: single tool call viaToolRuntime.DelegateStep: single delegate invocation via directdelegateobject.LoopStep: iterative nested workflow body with state transitions.DelegateBatchStep: explicit multi-delegate fan-out step.MemoryReadStepandMemoryWriteStep: workflow-native memory primitives.
Allowed composition patterns
Use
Workflow+ step primitives to define reusable topology once and run repeatedly.Use
design_research_agents.patternswhen you want a prebuilt workflow implementation instead of authoring a graph from scratch.Keep prompt/model/tool policy concerns in step callbacks/delegates or pattern classes, not in workflow scheduling internals.
Anti-patterns to avoid
Mixing prebuilt pattern exports into the workflow construction module.
Encoding loop-state schema assumptions ad hoc inside multiple modules.
Adding duplicate request-id/dependency helper functions across prebuilt pattern implementations.
Coupling deterministic example harness behavior to script filenames only.