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