GOAP pipeline overview
Core contracts and components
IVitruvianModule
Every capability implements:
GoapPlanner
Creates dependency-aware plans from a user request and available modules.
PlanExecutor
Executes steps by wave:
- cache lookup
- HITL approval gate for side effects
- context injection from prior outputs
- module execution
- cache write-back
RequestProcessor
Coordinates planning, execution, memory, and compound request orchestration.
ModuleRouter
Picks modules by model-assisted routing with keyword fallback when no model client is available.
Planning types to know
PlanStepExecutionPlanPlanStepResultPlanResult
src/Vitruvian.Abstractions/Planning and are the backbone of observability and deterministic behavior.
Why this architecture matters
- You get deterministic ordering through explicit dependencies.
- You improve latency with safe parallel waves.
- You isolate module complexity behind a stable contract.
- You keep security controls centralized in runtime and host layers.