50. Alt Ajanlar¶
Alt ajanlar, ana sohbeti engellemeden arka plan görevleri çalıştırmanıza olanak tanır. Bir alt ajan oluşturduğunuzda, kendi yalıtılmış oturumunda çalışır, işini yapar ve tamamlandığında sonucu sohbete bildirir.
Kullanım senaryoları:
- Ana ajan soruları yanıtlamaya devam ederken bir konuyu araştırmak
- Birden fazla uzun görevi paralel olarak çalıştırmak (web kazıma, kod analizi, dosya işleme)
- Çoklu ajan kurulumunda görevleri uzmanlaşmış ajanlara devretmek
Hızlı Başlangıç¶
Alt ajanları kullanmanın en basit yolu, ajanınıza doğal bir şekilde sormaktır:
"En son Node.js sürüm notlarını araştırmak için bir alt ajan oluştur"
Ajan, perde arkasında sessions_spawn aracını çağırır. Alt ajan tamamlandığında, bulgularını sohbetinize geri bildirir.
Seçenekler konusunda açık da olabilirsiniz:
"Bugüne ait sunucu günlüklerini analiz etmek için bir alt ajan oluştur. gpt-5.2 kullan ve 5 dakikalık zaman aşımı ayarla." Ana ajan, bir görev açıklamasıyla
sessions_spawnçağrısını yapar.
Nasıl Çalışır¶
{ status: "accepted", runId, childSessionKey } yanıtını alır.
Yeni bir yalıtılmış oturum oluşturulur (agent:
:subagent:) ve özel subagent kuyruk şeridinde çalışır.
subagents.model ayarlanmadıkça) Düşünme: alt ajan için geçersiz kılma yok (subagents.thinking ayarlanmadıkça)
Yapılandırma¶
Maksimum eşzamanlı: 8 Varsayılanlar:
- Otomatik arşivleme: 60 dakika sonra
- Varsayılan Model Ayarlama
- Token maliyetlerinden tasarruf etmek için alt ajanlar için daha ucuz bir model kullanın:
- { agents: { defaults: { subagents: { model: "minimax/MiniMax-M2.1", }, }, }, }
Varsayılan Düşünme Seviyesini Ayarlama¶
Use a cheaper model for sub-agents to save on token costs:
{
agents: {
defaults: {
subagents: {
model: "minimax/MiniMax-M2.1",
},
},
},
}
Setting a Default Thinking Level¶
{
agents: {
defaults: {
subagents: {
thinking: "low",
},
},
},
}
Aracı Bazında Geçersiz Kılmalar¶
Çok aracılı bir kurulumda, alt aracı varsayımlarını aracı başına ayarlayabilirsiniz:
{
agents: {
list: [
{
id: "researcher",
subagents: {
model: "anthropic/claude-sonnet-4",
},
},
{
id: "assistant",
subagents: {
model: "minimax/MiniMax-M2.1",
},
},
],
},
}
Eşzamanlılık¶
Aynı anda kaç alt aracın çalışabileceğini kontrol edin:
{
agents: {
defaults: {
subagents: {
maxConcurrent: 4, // default: 8
},
},
},
}
Alt aracılar, ana aracı kuyruğundan ayrı, kendilerine adanmış bir kuyruk şeridi (subagent) kullanır; böylece alt aracı çalışmaları gelen yanıtları engellemez.
Otomatik Arşivleme¶
Alt aracı oturumları, yapılandırılabilir bir süreden sonra otomatik olarak arşivlenir:
{
agents: {
defaults: {
subagents: {
archiveAfterMinutes: 120, // default: 60
},
},
},
}
*.deleted olarak yeniden adlandırır.<timestamp> (aynı klasör) — dökümler silinmez, korunur. Otomatik arşivleme zamanlayıcıları en iyi çaba esaslıdır; ağ geçidi yeniden başlatılırsa bekleyen zamanlayıcılar kaybolur.
sessions_spawn Aracı¶
Bu, aracının alt aracılar oluşturmak için çağırdığı araçtır.
Parametreler¶
| Parametre | Ana makine hacim bağlaması | Varsayılan | Açıklama |
|---|---|---|---|
task |
string | (zorunlu) | Alt aracının ne yapması gerektiği |
etiket |
string | — | Tanımlama için kısa etiket |
agentId |
string | (çağıranın aracı) | Farklı bir aracı kimliği altında oluştur (izin verilmiş olmalıdır) |
model |
string | (isteğe bağlı) | Bu alt aracı için modeli geçersiz kıl |
thinking |
string | (isteğe bağlı) | Düşünme seviyesini geçersiz kıl (off, low, medium, high vb.) |
runTimeoutSeconds |
sayı | 0 (sınırsız) |
Alt aracıyı N saniye sonra durdur |
temizlik |
"delete" | "keep" | "keep" | "delete" duyurudan hemen sonra arşivler |
Model Çözümleme Sırası¶
Alt aracı modeli şu sırayla çözülür (ilk eşleşen kazanır):
sessions_spawnçağrısındaki açıkmodelparametresi- Aracı başına yapılandırma:
agents.list[].subagents.model - Genel varsayılan:
agents.defaults.subagents.model - Hedef aracının, yeni oturum için normal model çözümlemesi
Düşünme seviyesi şu sırayla çözülür:
sessions_spawnçağrısındaki açıkthinkingparametresi- Aracı başına yapılandırma:
agents.list[].subagents.thinking - Genel varsayılan:
agents.defaults.subagents.thinking - Aksi halde alt aracıya özgü bir düşünme geçersiz kılması uygulanmaz
Aracılar Arası Oluşturma¶
Varsayılan olarak, alt aracılar yalnızca kendi aracı kimlikleri altında oluşturulabilir. Bir aracının diğer aracı kimlikleri altında alt aracılar oluşturmasına izin vermek için:
{
agents: {
list: [
{
id: "orchestrator",
subagents: {
allowAgents: ["researcher", "coder"], // veya herhangi birine izin vermek için ["*"]
},
},
],
},
}
sessions_spawn için şu anda hangi aracı kimliklerine izin verildiğini keşfetmek için agents_list aracını kullanın.
Alt Aracıları Yönetme (/subagents)¶
Geçerli oturum için alt aracı çalışmalarını incelemek ve kontrol etmek üzere /subagents eğik çizgi komutunu kullanın:
| Command | Açıklama |
|---|---|
/subagents list |
Tüm alt aracı çalışmalarını listele (aktif ve tamamlanmış) |
/subagents stop <id\\|#\\|all> |
Stop a running sub-agent |
/subagents log <id\\|#> [limit] [tools] |
Alt aracı dökümünü görüntüle |
/subagents info <id\\|#> |
Ayrıntılı çalışma meta verilerini göster |
/subagents send <id\\|#> <message> |
Çalışan bir alt aracıya mesaj gönder |
Alt aracıları liste dizini (1, 2), çalışma kimliği öneki, tam oturum anahtarı veya last ile referans alabilirsiniz.
/subagents list
````
```
🧭 Subagents (current session)
Active: 1 · Done: 2
1) ✅ · research logs · 2m31s · run a1b2c3d4 · agent:main:subagent:...
2) ✅ · check deps · 45s · run e5f6g7h8 · agent:main:subagent:...
3) 🔄 · deploy staging · 1m12s · run i9j0k1l2 · agent:main:subagent:...
```
```
/subagents stop 3
```
```
⚙️ Stop requested for deploy staging.
```
````
/subagents info 1
````
```
ℹ️ Subagent info
Status: ✅
Label: research logs
Task: Research the latest server error logs and summarize findings
Run: a1b2c3d4-...
Session: agent:main:subagent:...
Runtime: 2m31s
Cleanup: keep
Outcome: ok
```
````
/subagents log 1 10
````
Alt aracının dökümünden son 10 mesajı gösterir. Araç çağrısı mesajlarını dahil etmek için `tools` ekleyin:
```
/subagents log 1 10 tools
```
````
/subagents send 3 "Also check the staging environment"
```
Çalışan alt aracının oturumuna bir mesaj gönderir ve yanıt için 30 saniyeye kadar bekler.
```
Duyuru (Sonuçlar Nasıl Geri Döner)¶
Bir alt aracı tamamlandığında bir duyuru adımından geçer:
- Alt aracının nihai yanıtı yakalanır
- Sonuç, durum ve istatistiklerle birlikte ana aracının oturumuna bir özet mesaj gönderilir
- Ana aracı sohbetinize doğal dilde bir özet gönderir
Duyuru yanıtları, mevcut olduğunda iş parçacığı/konu yönlendirmesini korur (Slack iş parçacıkları, Telegram konuları, Matrix iş parçacıkları).
Duyuru İstatistikleri¶
Her duyuru, şu bilgileri içeren bir istatistik satırı içerir:
- Çalışma süresi
- Token kullanımı (girdi/çıktı/toplam)
- Tahmini maliyet (
models.providers.*.models[].costüzerinden model fiyatlandırması yapılandırıldığında) - Oturum anahtarı, oturum kimliği ve döküm yolu
Duyuru Durumu¶
Duyuru mesajı, çalışma zamanındaki sonuca dayalı bir durum içerir (model çıktısına değil):
- başarılı tamamlanma (
ok) — görev normal şekilde tamamlandı - hata — görev başarısız oldu (ayrıntılar notlarda)
- zaman aşımı — görev
runTimeoutSecondssüresini aştı - bilinmiyor — durum belirlenemedi
NO_REPLY döndürebilir ve hiçbir şey gönderilmez.
Bu, ajanlar arası duyuru akışında (sessions_send) kullanılan ANNOUNCE_SKIP’ten farklıdır.
Araç Politikası¶
Varsayılan olarak, alt aracılar arka plan görevleri için güvensiz veya gereksiz olan reddedilmiş araçlar kümesi hariç tüm araçları alır:
sessions_list | Oturum yönetimi — ana aracı düzenler |
| sessions_history | Oturum yönetimi — ana aracı düzenler |
| sessions_send | Oturum yönetimi — ana aracı düzenler |
| sessions_spawn | İç içe fan-out yok (alt aracılar alt aracı oluşturamaz) |
| gateway | Sistem yöneticisi — alt aracıdan tehlikeli |
| agents_list | Sistem yöneticisi |
| whatsapp_login | Etkileşimli kurulum — bir görev değil |
| session_status | Durum/zamanlama — ana aracı koordine eder |
| cron | Durum/zamanlama — ana aracı koordine eder |
| memory_search | Bunun yerine ilgili bilgileri oluşturma isteminde geçin |
| memory_get | Bunun yerine ilgili bilgileri oluşturma isteminde geçin |
Alt Aracı Araçlarını Özelleştirme¶
Alt aracı araçlarını daha da kısıtlayabilirsiniz:
{
tools: {
subagents: {
tools: {
// reddetme her zaman izin vermeye üstün gelir
deny: ["browser", "firecrawl"],
},
},
},
}
Alt aracıları yalnızca belirli araçlarla sınırlandırmak için:
{
tools: {
subagents: {
tools: {
allow: ["read", "exec", "process", "write", "edit", "apply_patch"],
// ayarlanmışsa reddetme yine kazanır
},
},
},
}
allow ayarlanırsa, yalnızca bu araçlar kullanılabilir (varsayılan reddetme listesi yine de üstüne uygulanır).
Kimlik doğrulama¶
Alt ajan kimlik doğrulaması oturum türüne göre değil, ajan kimliğine göre çözülür:
- Kimlik doğrulama deposu hedef aracının
agentDirdizininden yüklenir - Ana aracının kimlik doğrulama profilleri yedek olarak birleştirilir (çakışmalarda aracı profilleri kazanır)
- Birleştirme ekleyicidir — ana profiller her zaman yedek olarak kullanılabilir
Bağlam ve Sistem İstemi¶
Alt ajanlar, ana ajana kıyasla azaltılmış bir sistem istemi alır:
- Dahil edilenler: Tooling, Workspace, Runtime bölümleri ile birlikte
AGENTS.mdveTOOLS.md - Not included:
SOUL.md,IDENTITY.md,USER.md,HEARTBEAT.md,BOOTSTRAP.md
Alt ajan ayrıca, kendisine atanan göreve odaklanmasını, görevi tamamlamasını ve ana ajan gibi davranmamasını söyleyen görev odaklı bir sistem istemi alır.
Alt Ajanların Durdurulması¶
| Yöntem | Etkisi |
|---|---|
Sohbette /stop |
Ana oturumu ve ondan oluşturulmuş tüm aktif alt ajan çalıştırmalarını iptal eder |
/subagents stop <id> |
Ana oturumu etkilemeden belirli bir alt ajanı durdurur |
runTimeoutSeconds |
Belirtilen süreden sonra alt ajan çalıştırmasını otomatik olarak iptal eder |
runTimeoutSeconds, oturumu otomatik olarak arşivlemez. The session remains until the normal archive timer fires.
Tam Yapılandırma Örneği¶
json5
{
agents: {
defaults: {
model: { primary: "anthropic/claude-sonnet-4" },
subagents: {
model: "minimax/MiniMax-M2.1",
thinking: "low",
maxConcurrent: 4,
archiveAfterMinutes: 30,
},
},
list: [
{
id: "main",
default: true,
name: "Personal Assistant",
},
{
id: "ops",
name: "Ops Agent",
subagents: {
model: "anthropic/claude-sonnet-4",
allowAgents: ["main"], // ops can spawn sub-agents under "main"
},
},
],
},
tools: {
subagents: {
tools: {
deny: ["browser"], // sub-agents can't use the browser
},
},
},
}
Sınırlamalar¶
maxConcurrent kullanın.
- Otomatik arşivleme en iyi çaba ile yapılır: Bekleyen arşiv zamanlayıcıları gateway yeniden başlatıldığında kaybolur.
Ayrıca Bakın¶
- Oturum Araçları —
sessions_spawnve diğer oturum araçları hakkında ayrıntılar - Çok Ajanlı Sandbox ve Araçlar — ajan başına araç kısıtlamaları ve sandboxing
- Yapılandırma —
agents.defaults.subagentsreferansı - Kuyruk —
subagenthattının nasıl çalıştığı