What are Subagents?

Subagent’lar, ana session tarafından özelleşmiş görevleri yönetmek için başlatılan izole Claude instance’larıdır. Her subagent temiz bir context ile başlar, bağımsız çalışır ve yalnızca bir özet döndürür - ana konuşmada “context bloat”u önler.

Temel sorun: Tek bir konuşma penceresi dosya okumaları, tool çıktıları ve önceki kararlarla dolar. Context büyüdükçe Claude orijinal hedefleri kaybeder ve kalite düşer. Subagent’lar odaklanmış işleri temiz başlayan ayrı context’lere aktararak bunu çözer.

What is Context bloat?

Claude Code ile çalışırken her mesaj, dosya okuma, tool çıktısı ve önceki kararlar context window’a (200K veya 1M token) birikir. Bu birikime context bloat denir.

Ne olur:

Nasıl önlenir:

Kısaca: context window’un gereksiz bilgiyle dolması = context bloat. Subagent’ların varlık sebebi bu.

Key Insight: Keşif ve özelleşmiş işleri delegation layer’a itin, core layer’ı yalnızca orkestrasyon için kullanın.

Agent System Architecture

Main Agent, tool çağrıları üzerinden subagent’lar başlatır, context’i yönetir ve extension’larla etkileşir:

graph TD
    MAIN["Main Agent<br/>Sonnet / Opus"] --> CTX["Context Manager"]
    CTX --> COMPACT["Auto-Compaction"]
    CTX --> MEM["Memory Manager<br/>user / project / local"]

    MAIN --> TOOLS["Tool Execution"]
    TOOLS --> BASH["BashTool"]
    TOOLS --> FILE["FileRead/Write/<br/>EditTool"]
    TOOLS --> TASK["TaskTool"]
    TOOLS --> MCPT["MCP Tools"]

    BASH --> PERM{"Permission<br/>Classifier"}
    FILE --> PERM
    PERM -- "allow" --> EXEC["Execute"]
    PERM -- "ask" --> ASK["User Approval"]
    PERM -- "deny" --> BLOCK["Block"]

    TASK --> SPAWN["Subagent Spawner"]
    SPAWN --> TEAMS["Agent Teams"]

    MAIN --> PLUGINS["Plugin Loader"]
    PLUGINS --> HOOKS["Hook System"]
    PLUGINS --> SKILLS["Skill Loader"]
    PLUGINS --> MCPSRV["MCP Server Manager"]

    style MAIN fill:#1c1208,stroke:#eab308,stroke-width:2px,color:#facc15
    style TASK fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80
    style SPAWN fill:#132213,stroke:#22c55e,stroke-width:1px,color:#4ade80
    style PERM fill:#2d1117,stroke:#f85149,stroke-width:1px,color:#f85149
    style PLUGINS fill:#1a1a3e,stroke:#a855f7,stroke-width:1px,color:#c084fc

Kaynak: DeepWiki - Agent System and Subagents

Creating Subagents with Task Tool

Main agent, TaskTool çağırarak subagent başlatır. Subagent bağımsız çalışır ve sonuçları TaskOutputTool ile raporlar.

graph LR
    MAIN["Main Agent"] -- "TaskTool<br/>çağrısı" --> TASK["Task Tool"]
    TASK -- "parametreler" --> SUB["Subagent"]
    SUB -- "TaskUpdate<br/>ilerleme raporu" --> MAIN
    SUB -- "TaskOutputTool<br/>son sonuç" --> MAIN

    style MAIN fill:#1c1208,stroke:#eab308,stroke-width:2px,color:#facc15
    style TASK fill:#0f2027,stroke:#3b82f6,stroke-width:1px,color:#60a5fa
    style SUB fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80

Task Tool parametreleri:

Parametre Açıklama
description Doğal dil görev tanımı
agent_type Kullanılacak agent profili (explore, plan, general)
model Subagent için model override
allowed_tools İzin verilen tool alt kümesi
permission_mode Permission davranış override’ı
context Context devralma modu (ör. fork)

Execution modes:

Mod Çalışma Dizini Kullanım
Default Main agent ile paylaşımlı Basit paralel görevler
isolation: worktree Geçici git worktree Dosya izolasyonu gereken görevler
background: true Her iki mod Non-blocking, uzun süren görevler

İletişim mekanizmaları:

Subagent lifecycle hook’ları:

SessionStartWorktreeCreatePreToolUsePostToolUseTaskCompletedSessionEnd

Hata durumunda StopFailure, takım üyesi bekliyorsa TeammateIdle tetiklenir.

Subagent Types

graph LR
    subgraph TYPES["Subagent Tipleri"]
        EXP["Explore<br/>Ara, analiz et<br/>degistirme"]
        PLAN["Plan<br/>Yaklasim tasarla<br/>calistirma"]
        GEN["General<br/>Tam yetenekli<br/>izole agent"]
        CUSTOM["Custom<br/>Kullanici tanimli<br/>ozel uzman"]
    end

    style EXP fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80
    style PLAN fill:#0f2027,stroke:#3b82f6,stroke-width:1px,color:#60a5fa
    style GEN fill:#1c1208,stroke:#eab308,stroke-width:1px,color:#facc15
    style CUSTOM fill:#1a1a3e,stroke:#a855f7,stroke-width:1px,color:#c084fc
Tip Amaç Tool’lar Örnek
Explore Aramak ve analiz etmek (değiştirmeden) Read, Glob, Grep, WebSearch, LSP “Codebase’deki tüm TODO yorumlarını bul”
Plan Yaklaşım tasarlamak (çalıştırmadan) Sadece Read tool’lar + yapısal çıktı “Auth modülü için refactoring stratejisi tasarla”
General Tam yetenekli izole agent Tüm tool’lar “Feature X’i izole olarak implement et”
Custom Kullanıcı tanımlı özel talimatlar Kullanıcı belirlediği tool seti Domain-specific uzmanlar

Spawning Subagents

Session içinde otomatik:

> "Authentication modülünü incele ve potansiyel güvenlik sorunlarını bul"

Claude otomatik olarak Explore subagent başlatabilir.

Açık komutla:

> /task explore "Tüm veritabanı query'lerini ara ve N+1 problemlerini tespit et"
> /task general "Kullanıcı profil sayfası component'ini implement et"
> /task plan "Bildirim sistemi için veritabanı şeması tasarla"

Context Isolation

Her subagent şunlarla başlar:

Maliyet etkisi: Keşif için Haiku, implementation için Sonnet, orkestrasyon için Opus. Bu katmanlama, her şey için Opus kullanmaya kıyasla maliyeti %40-50 düşürebilir.

Subagent Output

Subagent tamamlandığında Claude yalnızca özeti döndürür - tam transcript ana konuşmaya girmez:

[Subagent Result: Explore]
47 TODO yorumu bulundu:
- 12 src/auth'da (güvenlikle ilgili)
- 8 src/api'de (doğrulama gerekli)
- 15 src/ui'da (refactoring gerekli)

Temel bulgular:
1. Auth flow'da rate-limiting eksik
2. API endpoint'lerinde input validation yok
3. Birçok deprecated pattern hâlâ kullanımda

Orchestration Patterns

Sequential Pipeline

graph LR
    E["Explore<br/>Kesfet"] --> P["Plan<br/>Planla"]
    P --> I["Implement<br/>Uygula"]
    I --> T["Test<br/>Dogrula"]

    style E fill:#132213,stroke:#22c55e,stroke-width:1px,color:#4ade80
    style P fill:#0f2027,stroke:#3b82f6,stroke-width:1px,color:#60a5fa
    style I fill:#1c1208,stroke:#eab308,stroke-width:1px,color:#facc15
    style T fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80
> /task explore "Eski authentication pattern'ını kullanan tüm dosyaları bul"
[23 lokasyon döner]

> /task plan "Her modül için paralel migrasyon stratejisi tasarla"
[Detaylı plan döner]

> /task general "src/auth'da migrasyonu implement et"
[Değişiklikleri uygular]

> /task general "Migrasyon için testleri yaz"
[Testleri yazar]

Parallel Exploration

Birden fazla Explore subagent’ı eş zamanlı çalıştırın:

> /task explore "Database modülünde N+1 query'leri kontrol et"
> /task explore "API modülünde eksik validation'ları kontrol et"
> /task explore "UI modülünde accessibility sorunlarını kontrol et"
[Üçü paralel çalışır; özetler tamamlandıkça döner]

Claude Code 10’a kadar paralel subagent yönetir.

Delegation with Quality Gates

SubagentStop hook’ları ile otomatik kalite kapıları uygulayın:

{
  "hooks": {
    "SubagentStop": [{
      "hooks": [{
        "type": "agent",
        "prompt": "Test coverage'ın %85'i aştığını doğrula. Aşmıyorsa iyileştirme öner."
      }]
    }]
  }
}

Agent Teams (v2.1.32+)

Gerçekten karmaşık görevler için agent team’ler, Opus tarafından koordine edilen birden fazla özelleşmiş agent’ı ilişkili alt görevler üzerinde paralel çalıştırır.

Nasıl Çalışır

Bir hedef verirsiniz. Opus nasıl bölüneceğine karar verir:

> "Authentication'ı session-based'den JWT'ye tüm codebase'de refactor et"

[Opus takım kompozisyonuna karar verir]
Agent 1: Auth modülü core logic'ini refactor et
Agent 2: API endpoint'lerini JWT kullanacak şekilde güncelle
Agent 3: Frontend'i JWT token gönderecek şekilde güncelle
Agent 4: Database schema ve migration'ları güncelle

[Dört agent paralel çalışır]
[Opus ilerlemeyi izler, bağımlılıkları yönetir, uyumluluğu sağlar]

Subagents vs Agent Teams

Özellik Subagents Agent Teams
Koordinasyon Siz prompt’larla yönetirsiniz Opus otomatik yönetir
Paralellik Siz paralel başlatırsınız; bağımsızlar Opus bağımlılık ve senkronizasyon yönetir
Karmaşıklık Basit görevler (keşif, tek modül) Karmaşık multi-modül refactor
Feedback Siz özetleri inceler, sonraki adıma karar verirsiniz Opus otonom devam kararı verir
Maliyet Ucuz (Haiku/Sonnet) Pahalı (Opus orkestrasyon)

Agent Teams Etkinleştirme

export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

Veya settings’te:

{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

Opus 10’a kadar agent’ı paralel koordine edebilir. Agent team’ler otomatik olarak iş dağıtımı, git merge conflict yönetimi, hata durumunda yeniden senkronizasyon ve ana session’a ilerleme raporlama yapar.

Worktrees for Agent Parallelism (v2.1.26+)

Birden fazla agent eş zamanlı çalışırken, her birinin git conflict’lerini önlemek için kendi çalışma dizinine ihtiyacı vardır. Worktree’ler bunu otomatik sağlar.

graph TD
    MAIN["Main Session<br/>.git"] --> WT1["Worktree 1<br/>subagent-1"]
    MAIN --> WT2["Worktree 2<br/>subagent-2"]
    MAIN --> WT3["Worktree 3<br/>subagent-3"]
    WT1 --> MERGE["Auto Merge<br/>& Cleanup"]
    WT2 --> MERGE
    WT3 --> MERGE

    style MAIN fill:#1c1208,stroke:#eab308,stroke-width:2px,color:#facc15
    style MERGE fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80

Agent’lar tamamlandığında worktree’ler otomatik temizlenir. Özel VCS kurulumu için WorktreeCreate hook’ları kullanılabilir.

Subagent Configuration

Model Selection

# Tüm subagent'lar için global override
export CLAUDE_CODE_SUBAGENT_MODEL=haiku
{
  "subagentModelOverrides": {
    "explore": "haiku",
    "plan": "sonnet",
    "general": "sonnet",
    "custom-security-review": "opus"
  }
}

Tool Constraints

{
  "subagentPermissions": {
    "explore": ["Read", "Glob", "Grep", "WebSearch"],
    "plan": ["Read", "Glob", "Grep"],
    "general": ["Read", "Edit", "Write", "Bash", "Glob", "Grep"]
  }
}

Token Budgets

{
  "subagentContextLimits": {
    "explore": 100000,
    "plan": 150000,
    "general": 200000
  }
}

Subagent limitine yaklaştığında Claude Code otomatik compact yapar veya agent’ı durdurur.

Performance Considerations

Context Efficiency

Senaryo Context Büyümesi Maliyet
Tek session, 5 keşif +500K token $3.75 (Opus)
5 Explore subagent (Haiku) +100K token (sadece özetler) $0.15
Tasarruf %80 azalma %96 maliyet düşüşü

Latency

Subagent’lar hafif gecikme ekler (~2-3 saniye spawning overhead).

Subagent kullanın:

Subagent kullanmayın:

Throughput

Sıralı:    3 × 60s = 180s
Paralel:   60s + network overhead ≈ 70s
Hızlanma:  2.5x

Real-World Patterns

Multi-Module Refactoring

> /task explore "Eski payment API'sini kullanan tüm dosyaları bul"
[15 dosya, 3 modül döner]

> /task plan "Her modül için paralel migrasyon stratejisi tasarla"
[Detaylı plan]

> /task general "src/payments'da migrasyonu uygula"
> /task general "src/billing'de migrasyonu uygula"
> /task general "src/reports'da migrasyonu uygula"
[Üçü eş zamanlı çalışır]

> /task general "Migrasyon için kapsamlı testler yaz"
[Entegrasyon noktalarını test eder]

Codebase Audit

> /task explore "Hardcoded secret, API key, password bul"
> /task explore "SQL injection açıkları kontrol et"
> /task explore "Deprecated kütüphane kullanımlarını tespit et"
> /task explore "Yakalanmamış promise rejection'ları bul"
[Dört agent paralel arar; özetler döner]

> Bu bulgulara göre öncelikli remediation planı oluştur
[Ana konuşma sonuçları eyleme dönüştürür]

Feature Development with Isolation

> /task general "Auth UI component'ini oluştur (src/components/Auth.tsx)"
> /task general "Auth API endpoint'ini implement et (src/routes/auth.ts)"
> /task general "Her ikisi için kapsamlı testler yaz"
[Üç agent ayrı concern'lerde bağımsız çalışır]

> /task plan "Üç implementasyonu entegrasyon boşlukları için incele"
[Plan agent dosyalara dokunmadan inceler]

> Üç implementasyonu birleştir ve birlikte çalıştığını doğrula
[Ana session son entegrasyonu yapar]

Limitations and Gotchas

Kısıtlama Açıklama
Subagent subagent başlatamaz Recursive delegation yok. Subagent’lar tek seviye derinlikte
Context izolasyonu tek yönlü Parent’ın dosya context’ini devralır ama bellek/kısmi çalışma durumu paylaşamaz
Çalışma sırasında kullanıcı girişi yok Subagent’lar görev ortasında onay isteyemez, otonom çalışmalı
Tool izinleri devralınmaz Her subagent tipi için tool’ları açıkça izin vermelisiniz
Paralel agent’larda race condition İki agent aynı dosyayı değiştirirse sonraki üzerine yazabilir - worktree kullanın
Paylaşılan bellek yok Subagent’lar long-term memory devralamaz, her biri sıfırdan başlar

Debugging

# Subagent transcript'ini görüntüle
> /show-transcript subagent-id

# Detaylı loglama
export CLAUDE_CODE_DEBUG_SUBAGENTS=1

Subagent’lar varsayılan 30 dakika timeout’a sahiptir. Ayarlanabilir:

{
  "subagentTimeouts": {
    "explore": 300000,
    "plan": 600000,
    "general": 1800000
  }
}

Örnek 1: Legacy Monolith → Microservices Migrasyon

Gerçek dünya senaryosu: 5 yıllık bir Node.js monolith’i microservices mimarisine taşıyoruz. 6 subagent paralel çalışıyor, her biri önceki agent’ın çıktısını kullanıyor ve shared contract dosyaları üzerinden birbirleriyle iletişim kuruyor.

Senaryo

E-ticaret monolith’i (tek Express.js uygulaması) → 4 bağımsız microservice:

Akış Diyagramı

graph TD
    START["Monolith →<br/>Microservices"] --> PHASE1

    subgraph PHASE1["Faz 1: Analiz"]
        ARCH["Architect<br/>Opus 1M"]
        DB["DB Migration<br/>Opus 1M"]
    end

    ARCH -- "servis sınırları<br/>API contract'lar" --> PHASE2
    DB -- "migration planı" --> PHASE2

    subgraph PHASE2["Faz 2: Paralel Gelistirme"]
        USER["User Service<br/>Sonnet"]
        PRODUCT["Product Service<br/>Sonnet"]
        ORDER["Order Service<br/>Sonnet"]
        NOTIF["Notification<br/>Sonnet"]
    end

    PHASE2 -- "servisler hazır" --> PHASE3

    subgraph PHASE3["Faz 3: Entegrasyon"]
        GW["API Gateway<br/>Sonnet"]
        TEST["Integration Test<br/>Opus"]
    end

    GW -- "routing hazır" --> TEST

    style PHASE1 fill:#1a1a3e,stroke:#a855f7,stroke-width:2px,color:#c084fc
    style PHASE2 fill:#0f2027,stroke:#3b82f6,stroke-width:2px,color:#60a5fa
    style PHASE3 fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80

Agent İletişim Mekanizması

Agent’lar birbirleriyle doğrudan konuşamaz, ama shared dosyalar üzerinden iletişim kurar. Her agent bir sonrakinin ihtiyaç duyduğu çıktıyı belirli bir dosyaya yazar:

shared/
├── contracts/
│   ├── user-service.openapi.yaml      ← Architect yazar, tüm agent'lar okur
│   ├── product-service.openapi.yaml
│   ├── order-service.openapi.yaml
│   └── notification-events.json       ← Event schema'ları
├── db-plan.md                         ← DB Agent yazar
├── architecture-decision-record.md    ← Architect yazar
└── integration-checklist.md           ← Her agent tamamladığını işaretler
graph LR
    ARCH["Architect"] -- "OpenAPI spec yaz" --> CONTRACTS["shared/<br/>contracts/"]
    CONTRACTS -- "spec oku" --> USER["User"]
    CONTRACTS -- "spec oku" --> PRODUCT["Product"]
    CONTRACTS -- "spec oku" --> ORDER["Order"]
    CONTRACTS -- "event schema oku" --> NOTIF["Notification"]

    USER -- "guncelle" --> CHECK["integration<br/>checklist.md"]
    PRODUCT -- "guncelle" --> CHECK
    ORDER -- "guncelle" --> CHECK
    NOTIF -- "guncelle" --> CHECK
    CHECK -- "tumu tamam?" --> GW["Gateway"]

    style CONTRACTS fill:#1c1208,stroke:#eab308,stroke-width:2px,color:#facc15
    style CHECK fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80

Başlatma Prompt’u

Legacy e-ticaret monolith'imizi microservices'a taşıyoruz. Aşağıdaki fazları
multi-agent olarak fully autonomous gerçekleştir. Agent'lar shared/ klasörü
üzerinden birbirleriyle iletişim kursun.

## Faz 1 - Analiz (paralel)

ARCHITECT AGENT (Opus 1M):
- Monolith codebase'ini tara (src/ altındaki tüm dosyalar)
- Domain boundary'leri belirle (User, Product, Order, Notification)
- Her servis için OpenAPI 3.0 spec yaz → shared/contracts/<service>.openapi.yaml
- Servisler arası event schema'larını tanımla → shared/contracts/notification-events.json
- Mimari kararları belgele → shared/architecture-decision-record.md
- shared/integration-checklist.md oluştur (her servis için checkbox)

DB MIGRATION AGENT (Opus 1M):
- Mevcut monolith DB schema'sını analiz et
- Her microservice için ayrı DB schema tasarla
- Data migration stratejisi yaz → shared/db-plan.md
- Migration script'lerinin iskeletlerini oluştur

## Faz 2 - Paralel Geliştirme (4 agent eş zamanlı)

Her service agent kendi worktree'sinde çalışsın (isolation: worktree).
Her agent shared/contracts/ altındaki kendi OpenAPI spec'ini okuyarak başlasın.

USER SERVICE AGENT (Sonnet):
- shared/contracts/user-service.openapi.yaml'ı oku
- services/user/ altında Express.js + TypeScript microservice oluştur
- Auth (JWT), profil CRUD, session yönetimi implement et
- DB migration'ları shared/db-plan.md'ye göre uygula
- Unit test yaz, integration-checklist.md'de kendi satırını işaretle

PRODUCT SERVICE AGENT (Sonnet):
- shared/contracts/product-service.openapi.yaml'ı oku
- services/product/ altında microservice oluştur
- Katalog CRUD, stok yönetimi, arama implement et
- Unit test yaz, checklist güncelle

ORDER SERVICE AGENT (Sonnet):
- shared/contracts/order-service.openapi.yaml'ı oku
- services/order/ altında microservice oluştur
- Sipariş akışı, ödeme entegrasyonu (Stripe), kargo takibi implement et
- User ve Product service'lere HTTP client yaz (spec'ten)
- Unit test yaz, checklist güncelle

NOTIFICATION SERVICE AGENT (Sonnet):
- shared/contracts/notification-events.json'ı oku
- services/notification/ altında event-driven microservice oluştur
- Email (SendGrid), SMS (Twilio), push notification handler'ları implement et
- Event consumer (RabbitMQ/Redis Streams) kur
- Unit test yaz, checklist güncelle

## Faz 3 - Entegrasyon (sıralı)

API GATEWAY AGENT (Sonnet):
- Tüm OpenAPI spec'leri oku
- gateway/ altında API Gateway oluştur
- Rate limiting, auth middleware, request routing implement et
- Docker Compose ile tüm servisleri ayağa kaldır
- integration-checklist.md'nin tamamlandığını doğrula

INTEGRATION TEST AGENT (Opus):
- Tüm servisleri Docker Compose ile başlat
- E2E test senaryoları yaz:
  • Kullanıcı kaydı → login → ürün listele → sipariş ver → bildirim al
  • Stok kontrolü → yetersiz stok → hata yönetimi
  • Ödeme başarısız → rollback → bildirim
- Servisler arası contract test'leri çalıştır
- Performans baseline ölç (response time, throughput)
- Sonuç raporu yaz

Agent Konfigürasyonu

Agent Model Worktree Tool Okuduğu Shared Dosya
Architect Opus 1M - Read, Glob, Grep, Write Monolith src/
DB Migration Opus 1M - Read, Grep, Write, Bash Monolith DB schema
User Service Sonnet Read, Edit, Write, Bash user-service.openapi.yaml
Product Service Sonnet Read, Edit, Write, Bash product-service.openapi.yaml
Order Service Sonnet Read, Edit, Write, Bash order + user/product spec
Notification Sonnet Read, Edit, Write, Bash notification-events.json
API Gateway Sonnet - Read, Edit, Write, Bash Tüm OpenAPI spec’ler
Integration Test Opus - Read, Write, Bash Tüm servisler, checklist

Neden Bu Mimari Çalışıyor