Epic: Migrate ADF Claude agents to Agent SDK

Abierto
#689 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
python, rust
Área
ai, backend

Línea de trabajo

Start with cto-executive-system/knowledge/claude-agent-sdk-reference.md and cto-executive-system/plans/adf-architecture-improvements.md, then inspect crates/terraphim_spawner/src/lib.rs and dependency #688. The first deliverable is a spike comparing the three bridge options while preserving the Rust orchestrator; document the selected approach and split implementation work into the listed sub-issues.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Context

ADF spawns Claude agents as claude -p subprocesses with stdout/stderr capture. This causes SIGPIPE bugs, fragile output parsing, cold-start waste, and no native cost tracking. The Claude Agent SDK (renamed from Claude Code SDK) provides query() async iterator with typed hooks, native session resume/fork, and in-process cost tracking.

Proposal

Replace subprocess spawning for Claude-based agents with Agent SDK query() calls. Codex agents remain as subprocesses (no SDK equivalent).

Migration Strategy
  1. Create thin Python wrapper per agent that calls Agent SDK query() and forwards typed JSONL events to stdout using the RPC envelope (#688)
  2. Migrate one agent at a time: product-development first (lowest risk), then security-sentinel
  3. Preserve orchestrator reconciliation loop, Safety/Core/Growth layers, NightwatchMonitor
What This Eliminates
  • SIGPIPE bug (async iterator, no pipes)
  • Stdout/stderr parsing fragility (typed message stream)
  • Cold-start waste (native resume=session_id)
  • Cost tracking complexity (hooks on every API call vs output parsing)
  • Session management complexity (ClaudeSDKClient handles state)
Open Question: Bridge Architecture
  • Option A: Rust orchestrator -> thin Python wrapper (subprocess) -> Agent SDK
  • Option B: Rust orchestrator -> local HTTP server running Agent SDK -> typed responses
  • Option C: Implement Agent SDK protocol directly in Rust (high effort, fragile)
  • Spike needed to determine which approach best preserves Rust orchestrator while gaining SDK benefits
Sub-issues (to be created during design phase)
  • Spike: validate Agent SDK wrapper bridge pattern
  • Migrate product-development agent to Agent SDK
  • Implement cost tracking via Agent SDK hooks (supersedes #638 approach)
  • Implement session resume via Agent SDK (supersedes #639 approach)
  • Migrate security-sentinel agent to Agent SDK

References

  • Agent SDK reference: cto-executive-system/knowledge/claude-agent-sdk-reference.md
  • Current ADF subprocess model: crates/terraphim_spawner/src/lib.rs
  • Comparison table: Agent SDK reference, "Comparison with Current ADF Setup" section
  • Plan: cto-executive-system/plans/adf-architecture-improvements.md (item 2.1)
  • Depends on: #688 (RPC envelope)
  • Related: #637 (Paperclip epic), #638, #639
Lenguaje dominante
Rust
Estrellas
62
Forks
5
Merge medio
2 h 27 min
PR fusionados (30 d)
1

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de terraphim/terraphim-ai

Todos los issues de terraphim/terraphim-ai

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.