Skip to main content

Dispatch architecture

The dispatch system connects task management (Plane) to agent execution. This page covers the full flow from task creation to result delivery.

Components​

Plane (task management)​

Tasks are created in Plane with labels that indicate required capabilities:

LabelDispatches toExample tasks
agent:coderBackend/frontend coders (Vega, Rigel)Add endpoint, fix bug, implement feature
agent:opsOps agents (Altair)Terraform changes, Helm updates, CI fixes
agent:docsDocs agents (Lyra)Write docs page, update ADR, fix diagrams
agent:reviewerReviewer agents (Sirius)Code review, security audit

Webhook receiver​

A GitHub Action triggered by Plane webhooks. Routes task events to the dispatcher.

Dispatcher​

Matches tasks to agents based on:

  • Role match — Task label matches agent role
  • Capacity — Agent's max_concurrent_tasks not exceeded
  • Availability — Agent status is active
  • Specialization — If multiple agents match, prefer the one with relevant skills

Agent executor (planned)​

K8s Job-based execution in isolated containers. Each agent run gets:

ResourceDetail
Repo checkoutFresh clone, correct branch
CredentialsAgent-specific tokens from Astra Token Vault
System promptPersonality + guardrails + context loading instructions
Resource limitsCPU: 2 cores, Memory: 4Gi, Time: 30 min max
IsolationSeparate K8s namespace, no cross-agent access

Current status​

info

Phase 1 uses manual agent dispatch — human assigns task in Plane, agent is invoked via Claude Code. Automated dispatch via K8s Jobs is designed and planned for Phase 2.

ComponentPhase 1Phase 2
Task creationPlane (manual)Plane (automated labels)
DispatchHuman assignsAstra dispatcher (automated)
ExecutionClaude Code (local)K8s Jobs (isolated)
Result deliveryManual PRAutomated PR + Plane update
MonitoringGit logAstra dashboard

What's next​