Blueprint uses an ADK-style sequential multi-agent workflow (implemented in backend/agents/orchestrator.py). Each agent consumes the prior agent’s output and writes structured data into the Hardware IR.
- Safety guardrails → 1. Intent Parser → 2. Requirements → 3. Component Selection → 4. Wiring/Netlist (+ repair loop) → 5. BOM → 6. Mechanical/Fabrication → 7. Assembly Instructions → 8. Mechanical render enrichment
Input: Prompt Output: Either a normal pipeline run, or a safety-blocked Hardware IR Goal: Block high-risk categories early (weapons, medical, mains AC, automotive control, high-power battery packs).
Input: Prompt (+ optional image)
Output: ProjectOverview
Goal: Convert intent into a concise, high-level project summary.
Input: Prompt + ProjectOverview
Output: FunctionalRequirements
Goal: Extract functional requirements, power needs, constraints, and missing info.
Input: Requirements + seed component database
Output: ComponentInstance[]
Goal: Choose compatible parts and instantiate the BOM with pinouts.
Input: Components + requirements
Output: ConnectionNet[] + PinMappingEntry[]
Goal: Wire pins into power, ground, and signal nets.
If validation produces CRITICAL issues, the orchestrator runs a one-step auto-correction prompt and re-validates.
Input: Component list
Output: Updated ProjectOverview.estimated_cost
Goal: Calculate total cost from unit prices and quantities (deterministic step).
Input: Overview + components
Output: MechanicalNotes
Goal: Suggest enclosure type, mounting, and fabrication details.
The agent may also emit render_dimensions, component_placements, and spatial_relationships for the 3D viewer.
Input: Overview + components + nets + mechanical notes
Output: AssemblyStep[]
Goal: Produce step-by-step build instructions with safety flags.
flowchart LR
A[Prompt] --> B[ProjectOverview]
B --> C[FunctionalRequirements]
C --> D[ComponentInstance[]]
D --> E[ConnectionNet[] + PinMappingEntry[]]
E --> F[Validation + repair loop]
F --> G[MechanicalNotes]
G --> H[AssemblyStep[]]
H --> I[Hardware IR]
- Agents run sequentially for determinism and traceability.
- Validation can trigger a repair loop that re-invokes the wiring agent.
- If a live LLM provider isn’t configured (or generation fails), the backend uses a deterministic simulation fallback backed by the example projects.
- The pipeline is designed to swap models or add agents without rewriting the core IR schema.
- External agents can call or listen to Blueprint through the A2A layer documented in
docs/a2a.md.