/model vasitəsilə modeli dəyişib tapşırığı yenidən verdiniz və cavab fərqli oldu. Amma agent CLAUDE.md faylını yenə əvvəlki kimi oxudu, əmrdən əvvəl yenə icazə istədi, hook da əvvəlki kimi işə düşdü. Deməli, bunların hamısı modelin özündə deyil.
Gəlin modelin harada bitdiyinə və onun ətrafındakı proqramın harada başladığına baxaq. Bu, agent səhv edəndə nəyi yoxlamaq lazım olduğunu anlamağa kömək edəcək.
Model və harness
Model ona verilən konteksti emal edir və cavab, yaxud alətə sorğu hazırlayır. Məsələn, hansı faylı oxumağı və hansı əmri işə salmağı seçir. Bu addımları yerinə yetirmək üçün modelin ətrafında proqram lazımdır: o, fayllara müraciət edir, əmrləri işə salır və nəticələri modelə qaytarır.
İngilisdilli materiallarda bu cür proqrama harness deyilir. Hərfi mənada bu, "qoşqu"dur (bəli, ata taxılan həmin qoşqu), Azərbaycan dilində isə termini tərcümə etmədən işlətmək rahatdır: harness. Anthropic sənədlərində bu, açıq şəkildə belə ifadə olunur: Claude Code harness-dir, Claude isə onun daxilindəki modeldir. Bu söz ümumən agentlərə dair yazılarda da işlənir, yadda saxlamağa dəyər.
Sxemdəki harness konteksti toplayır, icazələri yoxlayır və modelin alətlərə sorğularını icra edir. Modelin altındakı ox dövrü göstərir: alətin nəticəsi kontekstə qaytarılır, model isə növbəti addımı seçir və ya cavabını tamamlayır. Cavabın tamamlanması tapşırığın həll olunduğunu hələ sübut etmir: nəticəni yoxlamaq lazımdır.
İndiyədək nələri sazlamısınız
Harness-in hissələri Claude Code-da belə görünür. Sağ sütundakı fayl və əmrlər hər mexanizmi layihədə və ya sessiyada tapmağa kömək edəcək.
| Harness-in hissəsi | Nə edir | Harada tapmalı |
|---|---|---|
| Sistem təlimatları | Claude Code ilk mesajınızdan əvvəl onları kontekstə əlavə edir: necə işləmək, hansı alətlərin olduğu və sessiyanın hansı qovluqda aparıldığı barədə | /context çıxışındakı System prompt sətri |
CLAUDE.md | agentin sessiyanın əvvəlində oxuduğu layihə qaydaları | layihənin kökündəki fayl |
| Alətlər | faylları oxumaq və redaktə etmək, axtarış və terminal əmrləri | iş zamanı görünən Read(...) və Bash(...) kimi sətirlər |
| Skills | modelin tapşırığa uyğun seçə biləcəyi və ya sizin açıq şəkildə çağıra biləcəyiniz təlimatlar | .claude/skills/, /skills |
| MCP | xarici servislərə və canlı məlumatlara keçid | /mcp |
| Subagent-lər | öz konteksti olan ayrıca icraçı | .claude/agents/ |
| İcazə sorğuları | harness əməlin icazəli olub-olmadığını yoxlayır; lazım gələrsə razılığınızı istəyir | əmrdən və ya redaktədən əvvəl terminalda çıxan sual |
| Hooks | sessiya hadisələrində işə düşən əmrləriniz; modelin qərarından asılı deyil | /hooks |
| Kontekst və sessiya | modelin hazırda gördükləri və geri qayıda biləcəyiniz məqam | /context, /clear, /rewind |
| Agent dövrü | növbəti addımı seçməsi üçün alət nəticələrini modelə qaytarır | bir sorğuya cavab olaraq ardıcıl bir neçə əməl |
CLAUDE.md və skills modelə təlimat verir. Model qaydanı səhv anlaya və ya nəzərdən qaçıra bilər. İcazələrin yoxlanması və sazlanmış hooks-dakı əmrlər proqram səviyyəsində icra olunur: nəticə müəyyən edilmiş şərtlərdən və əmrlərin özündən asılıdır.
Plugins cədvəldə yoxdur, çünki ayrıca hissə deyil, paketdir: bir neçə skill, əmr və ya hook bir əməliyyatla quraşdırılır.
Eyni model, fərqli davranış
Layihənizə və terminalınıza qoşulmayan veb-çat nümunəsinə baxaq. Onun öz harness-i var: söhbət tarixçəsi, interfeys, bəzən internetdə axtarış və ya fayl yükləmə imkanı. Belə çatda model düzəlişi izah edə və kod göstərə bilər, Claude Code isə layihəyə çıxışı olduğu üçün onu fayla tətbiq edə bilər. Model eynidir, imkanlar isə fərqlidir, çünki ətrafındakı proqram başqadır.
/model ilə isə əksinə olur. Model dəyişir, harness əvvəlki kimi qalır, buna görə qaydalar, alətlər və icazə sorğuları heç yerə getmir.
Tapşırığı necə anlaması, alətləri necə seçməsi və nəticələrini necə qiymətləndirməsi modeldən asılıdır. Harness konteksti toplayır, alətləri əlçatan edir və icazələri yoxlayır. Məsələn, model çatışmayan faylı istəyə bilər, harness isə onu oxuyub məzmununu geri qaytarar.
Agent layihədə çoxdan olmayan funksiya barədə əminliklə danışır? Əvvəlcə aktual kodun kontekstə daxil olub-olmadığını yoxlayın. Fayl yolunu @ ilə göstərə, kodu mesaja əlavə edə və ya oxuma alətindən istifadə edə bilərsiniz. İlk iki halda ayrıca oxuma çağırışı olmaya bilər. Alət çağırılıbsa, onun nə qaytardığına baxın: faylın məzmununa, yoxsa giriş və ya yol xətasına. Kod kontekstdə yoxdursa, onu ötürün və ya faylı oxumağı istəyin. Kod artıq varsa, amma nəticə səhvdirsə, konkret sətirlərə əsasən mühakiməni yoxlayın. Burada başqa model də kömək edə bilər.
Agent səhv edəndə nəyi dəyişmək lazımdır
Birdəfəlik səhvi belə bir mesajla düzəltmək asandır: "səhv fayldır, src/utils.js faylına bax". Səhv sessiyadan-sessiyaya təkrarlanırsa, təlimatları və əlçatan məlumatları yoxlayın. Bəlkə də eyni qaydanı hər dəfə yenidən izah etməli olursunuz.
Praktikada bu, təxminən belə görünür:
- agent hər sessiyada layihə qaydasını, məsələn testlərin
npm testilə işə salındığını unudur - qaydanıCLAUDE.mdfaylına yazın. Vacib qaydanı bu faylda açıq saxlamaq yazışmada xatırlatmağa bel bağlamaqdan daha etibarlıdır; - eyni proseduru üçüncü dəfə izah edirsiniz - onu skill kimi yazmağın vaxtıdır. Agent tapşırığa uyğun təlimatı yükləyə bilər. İş zamanı skill-in çağırıldığını yoxlayın; çağırılmayıbsa, həqiqi adını
/skill-nameyerinə yazıb özünüz çağırın; - agent əlində olmayan məlumatı təxmin edir - lazımi məlumatı ötürün: faylı
@ilə kontekstə əlavə edin və ya MCP vasitəsilə xarici servis qoşun. Təxmin etməyi xahiş-minnətlə aradan qaldırmaq olmur; - agent yoxlamanı işə salmadan "hazırdır" yazır -
Stophadisəsi üçün hook testləri model qərarı olmadan özü işə sala bilər. Görülən işi yenə də siz əmrin çıxışına əsasən qəbul edirsiniz, hesabata görə yox; - lazımi məlumat əlçatandır və oxunub, amma agent mürəkkəb mühakimədə çaşır -
/modelilə başqa modeli sınayın və eyni tapşırıqda nəticələri müqayisə edin.
Əvvəlcə lazımi məlumat və alətlərin əlçatan olduğunu yoxlayın. Çətinlik mühakimə ilə bağlıdırsa, dərhal başqa modeli sınamaq olar. Nəticənin keyfiyyətini və /usage çıxışındakı sərfiyyatı müqayisə edin: uğursuz cəhdlərin təkrarı da limitinizi və vaxtınızı aparır.
GO TO FULL VERSION