Current Roadmap
MVP development progress and milestones
Track the development progress of Agent Studio MVP.
| Task | Status |
|---|
Initialize repository with uv | ✅ Done |
Configure pyproject.toml with dependencies | ✅ Done |
| Set up project structure | ✅ Done |
| Create Pydantic Settings | ✅ Done |
| Create exception hierarchy | ✅ Done |
| Create database engine & session | ✅ Done |
| Task | Status |
|---|
| Tenant model | ✅ Done |
| Agent model (with latest provider versions) | ✅ Done |
| Workflow model (DAG-based) | ✅ Done |
| Tool model (declarative actions) | ✅ Done |
| ProviderKey model (BYOK) | ✅ Done |
| APIKey model (scoped permissions) | ✅ Done |
| Call model (with transcripts & metrics) | ✅ Done |
| Base repository (generic CRUD) | ✅ Done |
| TenantScopedRepository | ✅ Done |
| Tenant repository | ✅ Done |
| Agent repository | ✅ Done |
| Workflow repository | ✅ Done |
| Alembic migrations setup | ✅ Done |
| Provider | Model | Notes |
|---|
| Deepgram | Nova-3 | 6.84% streaming WER |
| Cartesia | Sonic-3 | 40ms TTFA, emotion support |
| Gemini | 2.5 Flash/Pro, 3.0 Flash/Pro | Latest models |
| OpenAI | GPT-4.1 | 300k context, 55% SWE-bench |
| Silero | v5 | Low-latency VAD |
| Task | Status |
|---|
| FastAPI application factory | ✅ Done |
| JWT authentication | ✅ Done |
| API key authentication | ✅ Done |
| Permission/scope checking | ✅ Done |
| Health router | ✅ Done |
| Request ID middleware | ✅ Done |
| Logging middleware | ✅ Done |
| Dependency injection (dependencies.py) | ✅ Done |
| Auth router | ✅ Done |
| Agents router | ✅ Done |
| Workflows router | ✅ Done |
| Tools router | ✅ Done |
| Calls router | ✅ Done |
| Tool repository | ✅ Done |
| Call repository | ✅ Done |
| Rate limiting middleware | Pending |
| Task | Status |
|---|
| Provider base interfaces (Protocol) | ✅ Done |
| Provider registry | ✅ Done |
| Deepgram STT (Nova-3) | ✅ Done |
| Sarvam STT (Saarika v2) | ✅ Done |
| Cartesia TTS (Sonic-3) | ✅ Done |
| Sarvam TTS (Bulbul v2) | ✅ Done |
| Gemini LLM (2.5/3.0) | ✅ Done |
| OpenAI LLM (GPT-4.1) | ✅ Done |
| Silero VAD (v5) | ✅ Done |
| Task | Status |
|---|
| CallContext manager | ✅ Done |
| Domain models (AgentConfig, WorkflowConfig, etc.) | ✅ Done |
| Variable resolver (template engine) | ✅ Done |
| Tool executor | ✅ Done |
| Action handlers (all types) | ✅ Done |
| Workflow runner | ✅ Done |
| Handoff logic | ✅ Done |
- Dot-notation path access (
user.name, workflow.logged_meals)
- Template resolution (
{{user.name}})
- Array append operations (
logged_meals[+])
- Per-agent state isolation
context.set, context.get, context.delete
webhook (with endpoint resolution)
handoff, respond
conditional (with nested actions)
flag.set, flag.clear
validate, transform, log
| Task | Status |
|---|
| LiveKit worker entrypoint | ✅ Done |
| Session management (CallSession) | ✅ Done |
| Internal API client (WorkerAPIClient) | ✅ Done |
| Provider factory (BYOK support) | ✅ Done |
| Endpoint resolver | ✅ Done |
| Transcript collection | ✅ Done |
Priority: Agent Override → Tenant BYOK → Platform Default
| Task | Status |
|---|
| Fumadocs setup | ✅ Done |
| Architecture docs | ✅ Done |
| Data model docs | ✅ Done |
| ADRs (001-006) | ✅ Done |
| Getting started (installation) | ✅ Done |
| Concept docs (agents, workflows, tools, tenants) | ✅ Done |
| Roadmap updates | ✅ Done |
| API reference | ✅ Done |
| Deployment guides | ✅ Done |
| Task | Status |
|---|
| pytest configuration | ✅ Done |
| Test fixtures (conftest.py) | ✅ Done |
| Unit tests - Core (106 tests) | ✅ Done |
| Unit tests - Providers (19 tests) | ✅ Done |
| Unit tests - API (20 tests) | ✅ Done |
| Integration tests (calls) | ✅ Done |
| Testcontainers setup (PostgreSQL) | ✅ Done |
| Testing documentation | ✅ Done |
| GitHub Actions CI | ✅ Done |
| Docker build pipeline | ✅ Done |
- Unit Tests: 145 passing
- Integration Tests: 13 passing (PostgreSQL via testcontainers)
- Type Checking: 0 errors, 4 warnings (optional deps)
- GitHub Actions: Lint, test, build, Docker image
- Docker: Production multi-stage build, dev with hot reload
- docker-compose: Full stack with PostgreSQL, Redis, LiveKit
The codebase passes strict type checking with basedpyright:
- 0 errors across all modules
- 4 warnings (all for optional/dynamic imports)
- Proper Protocol-based interfaces
- Full type annotations
- All Phase 1 & 2 tasks done
- Database models and repositories working
- Phases 3 & 4 done
- Full authentication system
- All voice providers integrated
- Phases 5 & 6 done
- CallContext with template resolution
- Declarative tool system
- Multi-agent workflow orchestration
- LiveKit worker integration
- Documentation complete
- Tests passing (unit + integration)
- CI/CD pipeline
- Alembic migrations setup
- Dashboard UI complete
- Workflow visual builder
- Observability & analytics
- End-to-end user flows
The dashboard is a Next.js application in apps/dashboard/ providing the UI for managing agents, workflows, and monitoring calls.
| Task | Status |
|---|
| Initialize Next.js 16 with App Router | ✅ Done |
| Configure TypeScript 5.9 | ✅ Done |
| Set up Tailwind CSS v4 | ✅ Done |
| Add shadcn/ui components (23 components) | ✅ Done |
| Configure pnpm workspace | ✅ Done |
| Set up environment variables | ✅ Done |
| Task | Status |
|---|
| Auth pages (login, register) | ✅ Done |
| JWT token management | ✅ Done |
| Protected route middleware | ✅ Done |
| Dashboard layout (sidebar, header) | ✅ Done |
| Auth context provider | ✅ Done |
| Dark mode support | ✅ Done |
| Task | Status |
|---|
| TypeScript API types | ✅ Done |
| API client setup (fetch) | ✅ Done |
| React Query for data fetching | ✅ Done |
| Error handling & toast notifications | ✅ Done |
| Optimistic updates | Pending |
| Task | Status |
|---|
| Settings page | ✅ Done |
| Provider keys management (BYOK) | ✅ Done |
| API keys management page | ✅ Done |
| User/team management | Pending |
| Task | Status |
|---|
| Agents list view | ✅ Done |
| Agent create/edit form | ✅ Done |
| Prompt editor with variables | ✅ Done |
| Provider configuration (STT/TTS/LLM) | ✅ Done |
| Tool assignment | ✅ Done |
| Agent testing/preview | Pending |
| Task | Status |
|---|
| Workflow list and forms | ✅ Done |
| Visual DAG editor (React Flow) | ✅ Done |
| Node palette (drag-drop agents) | ✅ Done |
| Connection management | ✅ Done |
| Skip condition editor | ✅ Done |
| Context passing configuration | ✅ Done |
| Workflow validation | ✅ Done |
| Workflow testing | ✅ Done |
| Task | Status |
|---|
| Tools list view | ✅ Done |
| Tool create/edit form | ✅ Done |
| Parameter schema editor | ✅ Done |
| Action chain builder | ✅ Done |
| Conditional action editor | ✅ Done |
| Webhook endpoint configuration | ✅ Done |
| Task | Status |
|---|
| Calls list view | ✅ Done |
| Call detail view | ✅ Done |
| Transcript viewer (search, filter, export) | ✅ Done |
| Agent flow visualization | ✅ Done |
| Analytics dashboard | ✅ Done |
| Call metrics & analytics | ✅ Done |
| Task | Status |
|---|
| Real-time call events (WebSocket) | ✅ Done |
| Error logs viewer | ✅ Done |
| Usage metrics dashboard | ✅ Done |
| Provider latency charts | ✅ Done |
| Layer | Technology | Purpose |
|---|
| Framework | Next.js 16 (App Router) | React framework |
| Language | TypeScript 5.9 | Type safety |
| Styling | Tailwind CSS v4 | Utility-first CSS |
| Components | shadcn/ui | Accessible components |
| State | React Query | Server state |
| Forms | React Hook Form + Zod | Form validation |
| Workflow Editor | React Flow | Visual DAG builder |
| Charts | Recharts | Metrics visualization |
| Icons | Lucide React | Icon library |
| Page | Route | Status |
|---|
| Home | / | ✅ Done |
| Login | /login | ✅ Done |
| Register | /register | ✅ Done |
| Dashboard | /dashboard | ✅ Done |
| Agents | /dashboard/agents | ✅ Done |
| Workflows | /dashboard/workflows | ✅ Done |
| Tools | /dashboard/tools | ✅ Done |
| Calls | /dashboard/calls | ✅ Done |
| Analytics | /dashboard/analytics | ✅ Done |
| Settings | /dashboard/settings | ✅ Done |
| API Keys | /dashboard/settings/api-keys | ✅ Done |
| Provider Keys | /dashboard/settings/providers | ✅ Done |
| New Agent | /dashboard/agents/new | ✅ Done |
| Edit Agent | /dashboard/agents/[name] | ✅ Done |
| New Workflow | /dashboard/workflows/new | ✅ Done |
| Edit Workflow | /dashboard/workflows/[slug] | ✅ Done |
| New Tool | /dashboard/tools/new | ✅ Done |
| Edit Tool | /dashboard/tools/[name] | ✅ Done |
| Call Detail | /dashboard/calls/[id] | ✅ Done |
| Workflow Editor | /dashboard/workflows/[slug]/editor | ✅ Done |
| Workflow Test | /dashboard/workflows/[slug]/test | ✅ Done |
| Webhook Endpoints | /dashboard/settings/endpoints | ✅ Done |
Production-ready features, backend integration, and operational improvements.
| Task | Status |
|---|
| Webhook event types (call lifecycle) | ✅ Done |
| HMAC-SHA256 signature verification | ✅ Done |
| Exponential backoff retries (5 attempts) | ✅ Done |
| Webhook configuration per tenant | ✅ Done |
| Event filtering (subscribe to specific events) | ✅ Done |
| Webhook management API endpoints | ✅ Done |
| Secret rotation support | ✅ Done |
| Test webhook endpoint | ✅ Done |
| ADR-011 Webhook Delivery System | ✅ Done |
call.started - Call initiated
call.connected - Call connected to user
call.completed - Call ended normally
call.failed - Call failed
call.disconnected - Call dropped unexpectedly
call.timeout - Call timed out
call.agent.changed - Agent handoff occurred
call.transcript.updated - Transcript updated (optional)
| Task | Status |
|---|
| Production Docker Compose file | ✅ Done |
| Environment template (.env.production.template) | ✅ Done |
| Multi-replica API/Worker scaling | ✅ Done |
| Health check configuration | ✅ Done |
| ADR-009 Event-Driven Integration | ✅ Done |
| ADR-010 Production Deployment Strategy | ✅ Done |
| Task | Status |
|---|
| Backend integration guide | ✅ Done |
| Kafka consumer example | ✅ Done |
| Python integration client | ✅ Done |
| API key scopes for integration | ✅ Done |
| Task | Status |
|---|
| Fix orphaned call detection | ✅ Done |
| Active calls time-bounded query | ✅ Done |
| Cleanup orphaned calls endpoint | ✅ Done |
| Call status enum alignment (API/DB/Frontend) | ✅ Done |
| Call list null workflow handling | ✅ Done |
| Task | Status |
|---|
| Agent test dispatch endpoint | ✅ Done |
| Ephemeral single-agent workflow | ✅ Done |
| Test mode metadata tracking | ✅ Done |
| Task | Status |
|---|
| Rate limiting middleware | Pending |
| Optimistic updates (dashboard) | Pending |
| User/team management | Pending |
| Agent testing/preview in dashboard | Pending |
| Multi-region deployment | Pending |
| Kubernetes deployment guide | Pending |
| Per-agent worker scaling | Pending |
| Task | Status |
|---|
| SSO/SAML integration | Pending |
| Audit logging | Pending |
| Custom branding | Pending |
| SLA monitoring | Pending |
| Advanced analytics | Pending |