Skip to content

feat(orchestrator): Anticipatory Agent Pre-warming — Subagents vor Voraussetzungs-Completion in Queue legen #282

@Delqhi

Description

@Delqhi

Summary

Implementiere Anticipatory Pre-warming: SIN-Code soll Subagents VOR der Completion ihrer Voraussetzungs-Tasks in die Queue legen, damit sie SOFORT starten wenn die Voraussetzungen erfüllt sind — ohne Cold-Start Delay.

Das ist was SIN-Code einzigartig macht: SIN-Code weiss was kommt, was wahrscheinlich ist, was zu erwarten ist, und delegiert entsprechend im Vorfelde.

Konzept

Task A (architect) läuft...
  │
  ├── Pre-warm: Task B (coder) — P=0.95 dass B nach A kommt
  │   → Lade coder System Prompt
  │   → Bereite Context vor (codebase scan, relevant files)
  │   → Agent ist BEREIT, wartet auf Signal
  │
  ├── Pre-warm: Task C (coder) — P=0.90, parallel zu B
  │   → Lade coder System Prompt (reuse)
  │   → Bereite anderen Context vor
  │
  └── Task A completes (green)
       ↓
       SOFORT: Task B + Task C starten parallel
       (kein Cold-Start, kein Model-Loading, kein Context-Scan)

Ist-Stand

Aktuell: Task B wird erst ERSTELLT wenn Task A completed ist. Dann muss:

  1. Agent gefunden werden (registry lookup)
  2. System Prompt geladen werden
  3. Context assembleiert werden
  4. LLM Call gestartet werden

Das kostet 2-5 Sekunden Cold-Start. Bei 10 Tasks = 20-50 Sekunden reine Wartezeit.

SOLL-Stand

Pre-warmed Agent ist BEREIT wenn dependency completed:

  1. Agent ist bereits instanziiert
  2. System Prompt ist bereits geladen
  3. Context ist bereits assembleiert
  4. LLM Call startet SOFORT wenn Signal kommt

Research-Daten

Predictive Execution in Distributed Systems

  • Speculative Execution (Hadoop/Spark): Starte Tasks die wahrscheinlich gebraucht werden, bevor Vorgänger fertig sind
  • Pre-warming (Serverless): Function Instances werden vorgewärmt vor Traffic
  • Prefetching (CPU/Browser): Lade Daten die wahrscheinlich gebraucht werden vor

Claude Code Plan Mode (aus Leak)

  • Plan Mode (633 Tokens Prompt): Plant VOR der Ausführung
  • Explore Agent (516 Tokens Prompt): Fast codebase navigation
  • Beide laufen read-only, bereiten Context vor

LangGraph Conditional Edges

  • Graph kann "predicted" edges haben
  • Bei Node-Completion wird geprüft welche Edges wahrscheinlich sind
  • should_continue() function entscheidet

CrewAI Task Assignment

  • Tasks haben expected_output — der Agent weiss was rauskommen soll
  • agent field ist prä-assigniert — der Agent ist bekannt vor Task-Start

Requirements

  1. Probability Score — Jeder Task hat Probability float64 (0.0-1.0)

    • P=1.0: definitiv benötigt (harte dependency)
    • P>0.7: sehr wahrscheinlich → pre-warm
    • P>0.5: möglich → pre-queue aber nicht pre-warm
    • P<0.5: unwahrscheinlich → nur bei Bedarf
  2. Pre-warm Agent — Lade System Prompt, bereite Context vor

    • agent.PreWarm(ctx, taskDescription) — lädt System Prompt, scannt relevante Files
    • Agent ist "ready" aber startet keinen LLM Call
  3. Pre-queue Task — Task ist in Queue aber Status = prequeued

    • Bei dependency completion: prequeuedrunning (sofort, kein setup)
  4. Signal ChanneltaskGreenCh <- taskID → pre-warmed agents starten

  5. Cancel Pre-warm — Wenn Dependency failed → pre-warmed agents werden gecancelt

  6. Config:

    [orchestrator]
    prewarm_threshold = 0.7    # Pre-warm bei P > 0.7
    prequeue_threshold = 0.5   # Pre-queue bei P > 0.5
    max_prewarmed = 4          # Max gleichzeitig pre-warmed agents

Technische Umsetzung

  • internal/orchestrator/prewarm.go (neu)
  • Task struct erweitert: Probability float64, PreWarmed bool, PreWarmCtx context.Context
  • Agent interface erweitert: PreWarm(ctx, task) error
  • Integration mit Event-Driven Dispatcher (separates Issue)
  • Bei task.completed event: pre-warmed agents für dependents starten

TUI Integration

Agent Dashboard zeigt:

┌─────────────────────────────────────────┐
│  RUNNING (2)                             │
│  ▸ architect     ● 12 turns  23s        │
│                                          │
│  PRE-WARMED (2)  🔥                      │
│  ○ coder (jwt)   ready · waiting for A  │
│  ○ coder (login) ready · waiting for A  │
│                                          │
│  PREDICTED (2)   📋                      │
│  · tester (P=0.85) will need A+B done   │
│  · security (P=0.70) will need A done   │
└─────────────────────────────────────────┘

Erfolgskriterien

  • Pre-warmed Agent startet in <100ms nach dependency completion (aktuell 2-5s)
  • 10-Task DAG: 50% schnellere Gesamt-Zeit durch Pre-warming
  • TUI zeigt Pre-warmed und Predicted Tasks
  • SIN-Code ist der EINZIGE Coding Agent mit Anticipatory Execution

Referenzen

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestloop-systemAgent loop core: budget, gates, delegation

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions