Fəsil 07 · 7 dəq oxu

Subagent-lərlə işləmək

Subagent-lərlə işləmək

Birinci fəsildə context izolyasiyası aləti kimi tanıdıq: araşdırma ayrı pəncərədə gedir, əsas yalnız nəticəni görür. Bu fəsil mexanizmi açır: necə təyin olunur, əsas onu nə vaxt seçir, hansı tool-lara çıxışı olur və bir neçə ibarət sistemi necə dizayn etmək lazımdır.

Subagent nədir

Claude Code-un eyni harness-də, amma ayrı və ayrı ilə işə saldığı ikinci . Əsas ona tapşırığı mətn kimi verir, öz loop-unu işlədir, yəni faylları oxuyur, command işlədir, düşünür, və sonda bir hesabat qaytarır. Əsas context-inə yalnız bu hesabat düşür. oxuduğu on fayl, işlətdiyi iyirmi grep, uğursuz cəhdləri, hamısı onun öz pəncərəsində qalır və session bitəndə yox olur.

Claude Code bir neçə built-in ilə gəlir: geniş axtarış üçün yalnız oxuyan , plan hazırlayan , ümumi məqsədli . Siz öz əlavə edirsiniz və əsas fərq məhz oradadır: onun ixtisasını, tool siyahısı isə sərhədlərini müəyyən edir.

Subagent-i təyin etmək

Markdown fayllarıdır. Layihə səviyyəsində .claude/agents/, istifadəçi səviyyəsində ~/.claude/agents/ qovluğunda yaşayır; layihə faylı eyni adlı istifadəçi faylını üstələyir. Faylın frontmatter-i metadata, gövdəsi isə :

---
name: code-reviewer
description: Dəyişdirilmiş kodu review edir. Kod yazıldıqdan və ya dəyişdirildikdən sonra, commit-dən əvvəl istifadə et. Yeni kod yazmaq üçün istifadə etmə.
tools: Read, Grep, Glob, Bash
model: sonnet
---

Sən təcrübəli code reviewer-san. Vəzifən dəyişdirilmiş kodu oxuyub problemləri tapmaqdır, düzəltmək deyil.

İş qaydası:
1. `git diff` ilə dəyişiklikləri al.
2. Hər dəyişikliyi üç meyarla yoxla: düzgünlük, layihə konvensiyalarına uyğunluq, test coverage.
3. Yalnız real problemləri yaz; üslub iradlarını yalnız CLAUDE.md-də qayda varsa qeyd et.

Hesabat formatı: hər problem üçün fayl və sətir, problemin bir cümləlik təsviri, təklif olunan düzəliş. Problem yoxdursa, bunu bir cümlə ilə de.

Frontmatter-in sahələri:

SahəRolu
nameUnikal identifikator; əsas bu adla çağırır
descriptionƏsas nə vaxt seçəcəyini müəyyən edir
toolsİcazə verilən tool-ların siyahısı; boş qalsa, əsas bütün tool-ları, MCP daxil olmaqla, keçir
model modeli: kiçik və sürətli, orta, böyük, və ya əsas miras

Faylı əl ilə yazmaq əvəzinə session-da /agents command-ı ilə interaktiv yaratmaq və redaktə etmək də olar; command mövcud siyahılayır, yenisini Claude-un köməyi ilə yazdırır və tool siyahısını seçdirir.

Routing: əsas agent subagent-i necə seçir

ən vacib sahəsi description-dır, çünki əsas tapşırığa uyğun seçəndə bu mətnə baxır. Əsas sizin prompt-unuzu oxuyur, mövcud təsvirlərini görür və uyğun gələni seçir; siz adı ilə birbaşa da çağıra bilərsiniz: "code-reviewer ilə review et".

Buna görə təsvir "kod review edir" kimi ümumi olmamalıdır. Yaxşı təsvir üç şeyi deyir: nə edir, nə vaxt istifadə olunmalıdır, nə vaxt istifadə olunmamalıdır. "Commit-dən əvvəl", "kod yazıldıqdan sonra", "yalnız test faylları üçün" kimi ifadələr routing-i dəqiqləşdirir. İki təsviri üst-üstə düşürsə, əsas təsadüfi seçir və nəticə qeyri-sabit olur. Təsvirlər bir-birini tamamlamalı, kəsişməməlidir.

Birinci fəslin ROI prinsipi burada da işləyir: hər adı və təsviri əsas context-ində dayanır. Beş-on yaxşı təsvir edilmiş sağlamdır; əlli həm context-i doldurur, həm də routing-i qarışdırır.

Tool sərhədləri və model seçimi

tools sahəsi nə edə biləcəyini müəyyən edir və bu, həm təhlükəsizlik, həm də keyfiyyət məsələsidir. Reviewer-ə Edit verməmək onu "düzəltmək" həvəsindən saxlayır və hesabatı təmiz edir. Araşdırma Bash verməmək onun təsadüfən test işlədib context-i log ilə doldurmasının qarşısını alır. MCP tool-ları da buraya daxildir: sənədləşmə server-inin tool-unu yalnız ona ehtiyacı olan vermək context-i və xərci azaldır.

Model seçimi iş növünə görədir. Geniş axtarış, fayl siyahısı, sadə xülasə kimi işlər kiçik və sürətli model ilə ucuz və yetərli olur. Mürəkkəb mühakimə tələb edən review və ya dizayn üçün böyük model lazımdır. inherit seçimi əsas session-ın modelini götürməsini təmin edir; əsas session-da model dəyişəndə də dəyişir.

Nümunə: iki fərqli xarakterli subagent

Fərqi görmək üçün iki müqayisə edək.

Diagram generator. Kod strukturunu oxuyub Mermaid diaqramı qaytaran . Tool-ları: Read, Glob, Grep, və diaqramı fayla yazmaq üçün Write. Təsviri: "Kod bazasının və ya modulun strukturunu diaqram kimi göstərmək istənəndə istifadə et; kod dəyişikliyi üçün istifadə etmə." çıxış formatını sərt müəyyən edir: yalnız diaqram, izah yox. Bu "yalnız nəticə" tipidir; hesabatı kiçikdir və əsas context-ə demək olar ki, xərc yazmır.

Test author. Dəyişdirilmiş funksiyalar üçün test yazan . Tool-ları: oxuma tool-ları, Write, Edit, və test işlətmək üçün Bash. Təsviri: "Yeni və ya dəyişdirilmiş funksiya üçün test lazım olanda istifadə et; mövcud test-ləri refactor etmək üçün istifadə etmə." layihənin test konvensiyalarını və "test keçməyincə bitirmə" qaydasını yazır. Bu iş görür və hesabatı daha böyükdür: yazılan fayllar, keçən və keçməyən test-lər.

İkisinin ortaq cəhəti standartlaşdırılmış çıxışdır. hesabatı əsas context-inə yazıldığı üçün "nə etdim, nə tapdım, nə qaldı" formatı hər system prompt-unda olmalıdır. Sərbəst formatlı, uzun hesabat izolyasiyanın faydasını yeyir.

Nə vaxt subagent, nə vaxt yox

pulsuz deyil və hər işə uyğun deyil. Üç xərci var. Birincisi, gecikmə: öz context-ini sıfırdan qurur, yəni və memory fayllarını yenidən yükləyir, sonra araşdırmaya başlayır; kiçik iş üçün bu, əsas iki grep-indən yavaşdır. İkincisi, detalın itməsi: əsas nə gördüyünü yox, nə dediyini bilir; hesabatda olmayan müşahidə itir. Üçüncüsü, paylaşılan yaddaşın olmaması: iki bir-birinin nəticəsini görmür və eyni faylı iki dəfə oxuya bilər.

Buna görə seçim qaydası belədir. Tapşırıq bir-iki fayla baxmaqla bitirsə, əsas özü etsin. Tapşırıq onlarla fayl oxumağı, uzun log-ları və ya bir neçə uğursuz cəhdi tələb edirsə, verin; əsas context yalnız nəticəni görsün. Tapşırıq fərqli rol tələb edirsə, məsələn yazan ayrı bir reviewer, verin; təmiz context və ayrı rolun fərqini qoruyur. Bu üç halın hamısında meyar eynidir: əsas context-i qoruyurmu, yoxsa sadəcə işi uzadır?

Hesabat formatı

əsas qaytardığı mətn onun yeganə çıxışıdır və əsas context-ə birbaşa yazılır. Bu mətnin formatı sərt müəyyən olunmalıdır. İşlək bir şablon:

Nəticə: bir cümlə ilə tapıntı və ya görülən iş
Fayllar: toxunulan və ya əhəmiyyətli fayllar, sətir nömrələri ilə
Sübut: işlədilən command və çıxışın əsas sətri
Açıq suallar: qərar tələb edən məqamlar, varsa

Şablonun hər sətri əsas növbəti qərarı üçündür: nəticə istiqaməti, fayllar hara baxmağı, sübut etibarı, açıq suallar isə insanın nə vaxt lazım olduğunu deyir. "Nə gördüm" sadalaması, yəni oxunan hər faylın təsviri, şablonda yoxdur və olmamalıdır; məhz onu context-dən kənarda saxlamaq üçün işlədilib.

Multi-agent dizayn prinsipləri

sistem qurarkən dörd prinsip işləyir:

  1. Tək məsuliyyət. Hər bir iş görür. "Review edən və düzəldən" iki olmalıdır; əks halda routing qeyri-müəyyən, hesabat qarışıq olur.
  2. Minimum tool. İşə lazım olan tool-lar və başqa heç nə. Bu, həm təhlükəsizlik, həm də fokus məsələsidir.
  3. Standart çıxış. Hesabatın formatı yazılır; əsas onu proqnozlaşdırıla bilən şəkildə emal edir.
  4. İşə uyğun model. Ucuz iş ucuz model-ə, mühakimə böyük model-ə.

Bir məhdudiyyəti də bilmək lazımdır: öz işə sala bilmir, ierarxiya iki səviyyəlidir. Daha dərin ierarxiya lazım olanda 6-cı fəsildəki orkestrasiya pattern-ləri və ya 11-ci fəsildəki framework-lər işə düşür.

Subagent-lər paralel

Əsas bir-birindən asılı olmayan bir neçə eyni anda işə sala bilər: üç modulu üç araşdırma paralel oxuyur, və ya 2-ci fəsildəki kimi beş variant beş eyni vaxtda gəlir. Paralellik vaxt qazandırır, amma nəticələrin hamısı əsas context-ə qayıdır; beş uzun hesabat birdən gələndə context sıçrayışla böyüyür. Qısa, strukturlu hesabat qaydası paralellikdə daha da vacibdir.

Tapşırıqlar

  1. Layihəniz üçün code-reviewer yaradın: yalnız oxuma tool-ları, sərt hesabat formatı. Onu üç fərqli dəyişiklikdə işlədin və hesabatların formatı sabit qaldımı, yoxlayın. Sabit deyilsə, nə çatışmır?
  2. Təsvirləri qəsdən üst-üstə düşən iki yazın, məsələn hər ikisi "kodu yoxlayır" desin. Eyni beş dəfə işlədin və əsas hansını seçdiyini qeyd edin. Sonra təsvirləri "nə vaxt / nə vaxt yox" formatına salıb təkrar edin.
  3. Eyni araşdırma tapşırığını bir dəfə , bir dəfə ilə işlədin və hər ikisində /context ilə əsas session-ın doluluğunu ölçün. Fərq nə qədərdir və hesabatı nə qədər yer tutdu?