Same agent definitions. Same AgentRun runtime. Parallel orchestration layer on top.
Key insight: No runtime replacement. AgentRun stays as the proven execution engine. The parallel layer is purely additive — it spawns multiple AgentRun instances concurrently, controlled by p-limit and collected via Promise.allSettled.
Full pipeline test analyzing alternatives to OTIV.ONE (AI-powered shunting camera for rail yards).
| Alternative | Duration | Tokens | Status |
|---|---|---|---|
| Bosch Rail Safety System | 63.4s | 185,088 | ✓ Complete |
| Fixed Ground-Based CCTV | 53.3s | 122,461 | ✓ Complete |
| Wabtec Train Sentry | 83.1s | 215,104 | ✓ Complete |
| ⚡ All 3 ran simultaneously. Wall time = slowest task (83s), not sum (200s). 2.4× speedup. | |||
Partial failures don't kill the batch. If Alt 3 times out, you still get results for 1, 2, 4, and 5. Each enrichment is independent, failures are logged and skipped gracefully.
Complete — parallelAgents.ts with AgentRun, tested with OTIV (2.4× speedup)
Wire parallel execution into existing agent API routes
Parent-child trace IDs, timing waterfall, per-task metrics
Competitor deep-dives, value driver analysis, price model generation — all parallelizable