İçeriğe geç
28/3030 bölümden 28. bölüm

Agent Skills ve SKILL.md: Progressive disclosure, ölçülmüş

128.374 token yönerge içeren beş gerçek skill, context içinde 253 token yer kaplıyor. Açıklamaları kısaltınca agent onları bulamıyor.

Bu sayfada

Yayımlanmış beş skill’in kurulu olduğu bir proje düşün. Maliyetleri şöyle.

terminalBASH
ls .claude/skills/
TEXT
next-best-practices  next-cache-components  vercel-composition-patterns
vercel-react-best-practices  vercel-react-native-skills
o200k_base tokens, measuredTEXT
skill                              level 1   level 2    level 3   files
next-best-practices                     40       966     19,374      19
next-cache-components                   28     2,334          0       0
vercel-composition-patterns             59       533     10,667      13
vercel-react-best-practices             68     1,670     53,670      75
vercel-react-native-skills              58       950     37,957      41
                                    ------   -------   --------
total                                  253     6,453    121,668

Yüz yirmi sekiz bin tokenlık yönerge, örnek ve kural — 128.000 tokenlık bir context window’a sığandan fazla — ve beşinin de kullanılabilir olmasının kalıcı maliyeti 253 token, yüzde birin onda ikisi. Bu kursta başka hiçbir şeyin biçimi böyle değil. Bir tool tanımı, kullanılsın ya da kullanılmasın her istekte ödenir ve 26. Bölüm, bir MCP server’ın daha hiçbir şey yapmadan önce 1.619 token tuttuğunu ölçtü: yukarıdaki tablodaki ortalama seviye-1 satırının otuz iki katı.

Bu bölüm, bu oranı üreten mekanizmayı, mekanizmanın bozulduğu iki yolu ve mekanizmanın zorladığı ama neredeyse kimsenin yanıtlamadığı soruyu anlatıyor: bir bilgi parçası verildiğinde, dört yerden hangisine aittir?

14. Bölüm, bu kursun ikinci yarısı için kuralı koydu — bağlantılar, yeniden denemeler ve iptal TypeScript’tir — ve beş istisna ilan etti. Bu onlardan biri, nedeni de tercih değil.

Bir skill bir Markdown dosyasıdır. Bir programı yapılandıran dosya değil, bir programın derlediği dosya değil: modelin, senin yazdığın mesajı okuduğu gibi okuduğu bir belge. Bu bölüme bir programlama dili vermek, formatı anlamamış olmak demek olurdu; skills hakkında en yaygın yanlış anlama da tam olarak bu. Aşağıdaki her şey Markdown ve YAML, artı kodun bir skill içinde nereye ait olup nereye ait olmadığını özellikle göstermek için var olan küçük bir shell script.

Çözdüğü fatura ve bu 16. Bölüm’ün aritmetiği

Bölüme bağlantı: Çözdüğü fatura ve bu 16. Bölüm’ün aritmetiği

İşte gerçek bir yönerge: bir şirketin release notes’ları nasıl yazdığı. Bu bir tercih değil, bir prosedür — sıralı adımları, bir taksonomisi, bir sesi, bir şablonu ve ham malzemeyi toplayan bir script’i var.

Çoğu ekibin yaptığı gibi bunların tamamını system prompt’a koyarsan 16. Bölüm’ün aritmetiği devreye girer. Bir system prompt bir prefikstir ve prefiks için her call’da ödeme yapılır. Bu bölüm için yazılan klasör üzerinde o200k_base ile ölçüldüğünde:

the same instruction, two ways, 40 turnsTEXT
whole thing pasted into the system prompt   1,716 x 40  =  68,640 input tokens   $0.1373
as a skill, activated once on turn 12          46 x 40
                                            + 324 (SKILL.md body)
                                            + 665 (two reference files read)
                                                        =   2,829 input tokens   $0.0057
as a skill, never activated at all             46 x 40  =   1,840 input tokens   $0.0037

Kullanıldığında yirmi dört kat, kullanılmadığında otuz yedi kat daha ucuz. Oranlar 16. Bölüm’den: milyon input token başına $2,00.

Şimdi dürüst itiraz, çünkü bunu atlayan bir bölüm reklam olurdu. Prompt caching para farkını büyük ölçüde kapatır. System prompt stabildir ve en başta durur; bu da onu mümkün olan en iyi cache adayı yapar. Cached input için milyon başına $0,20 ile aynı 68.640 token $0,1373 yerine $0,0168 tutar. Hâlâ skill’in üç katı, ama artık başka bir büyüklük mertebesi değil.

Para hiçbir zaman en güçlü argüman değildi. Şu argümandı:

Caching, kalıcı bir prefiksi ucuzlatır. Onu küçültmez.

  1. turda system-prompt sürümünün context window içinde hâlâ 1.716 tokenlık release-note politikası durur; konuşma bambaşka bir şey hakkındayken bile, 24. Bölüm’ün modelin attention budget’ı dediği şey için yarışır. Skill sürümünde 46 vardır. Yanlış şeyi cache edersen bir dikkat dağıtıcısında indirim satın almış olursun.

Formül olarak yazarsak, nn tur, L1L_1 metadata, L2L_2 gövde, L3L_3 tüm paket ve RR de gerçekten okunan paketlenmiş dosyalar kümesi olsun:

system prompt=n(L1+L2+L3)skill=nL1+1[used](L2+iRL3(i))\text{system prompt} = n\,(L_1 + L_2 + L_3) \qquad \text{skill} = n\,L_1 + \mathbb{1}[\text{used}]\left(L_2 + \sum_{i \in R} L_3^{(i)}\right)

Bu bölümün tamamı, ikinci terimi nn ile çarpmak ile onu birle ya da sıfırla çarpmak arasındaki farktır.

Bir skill bir dizindir. Spesifikasyon, tamamen ifade edilebilecek kadar kısadır:

the whole formatTEXT
release-notes/
├── SKILL.md          # required: YAML frontmatter + Markdown instructions
├── scripts/          # optional: executable code
├── references/       # optional: documentation read on demand
├── assets/           # optional: templates, schemas, examples
└── ...               # anything else you like

SKILL.md YAML frontmatter ile başlamalıdır ve tam olarak iki alan zorunludur: name ve description.1 Dört alan daha isteğe bağlıdır ve başka alan tanımlı değildir:

AlanZorunluKısıt
nameevet1–64 karakter, küçük harfler, rakamlar ve tireler; başta, sonda veya çift tire yok; dizin adıyla eşleşmeli
descriptionevet1–1024 karakter, boş değil; skill’in ne yaptığını ve ne zaman kullanılacağını söyler
licensehayırbir lisans adı veya paketlenmiş bir lisans dosyasının adı
compatibilityhayıren fazla 500 karakter: hedef ürün, gerekli paketler, ağ erişimi
metadatahayırkendi tooling’in için string anahtarlardan string değerlere serbest bir map
allowed-toolshayırönceden onaylanmış tools’un boşlukla ayrılmış listesi; deneysel olarak işaretli

Release-notes skill’i, gövdesi otuz satırın altında olacak şekilde eksiksiz burada:

release-notes/SKILL.mdMARKDOWN
---
name: release-notes
description: Write the release notes for a tagged version in this company's house style. Use when preparing a release, drafting a changelog entry, or when someone asks for the notes for a version number or a tag.
allowed-tools: Bash(git log:*) Bash(git tag:*) Read
---

# Release notes

## Procedure

1. Run `scripts/collect.sh <previous-tag> <new-tag>`. It prints one line per merged
   pull request: number, title, author and the labels.
2. Drop every line whose labels contain `internal`, `ci` or `chore`.
3. Put each surviving line into exactly one of the four categories in
   [references/categories.md](references/categories.md). A change that seems to fit two
   belongs in the higher one; the order in that file is the order of precedence.
4. Rewrite each line as a sentence in the voice defined in
   [references/voice.md](references/voice.md). The pull request title is a note to
   the team; the release note is a note to a stranger.
5. Check the result against [references/examples.md](references/examples.md).

## The one rule that is not negotiable

Every note says what a person can now do, or what stopped happening to them. If a
sentence can only be understood by someone who has read the diff, it is not finished.

O gövdenin ne olduğunu oku. Politika değil — işlem sırası olan bir içindekiler tablosu. Politika, adını verdiği ama içine almadığı üç dosyada yaşar. Ve birinci adım işi bir script’e verir, çünkü bir script’in kodu context window’a hiç girmez: yalnızca çıktısı girer.2

Yükleme modelinin bir adı ve üç aşaması var. Spesifikasyon bunları bir token bütçesiyle birlikte belirtir:1

  1. Metadata, yaklaşık 100 token: name ve description, kurulu her skill için başlangıçta yüklenir.
  2. Yönergeler, 5.000 tokenın altında önerilir: SKILL.md gövdesi, skill etkinleştirildiğinde yüklenir.
  3. Kaynaklar, gerektiği kadar: paketlenmiş dosyalar, yalnızca bir şey gerektirdiğinde yüklenir.

Referans dokümantasyon aynı tabloya dördüncü bir sütun koyar — ne zaman yüklenir, token maliyeti, içerik — ve önemli satır üçüncüdür: erişilene kadar hiçbiri.3 Bütün bölümü özetleyen cümle de oradadır:

Files don't consume context until accessed, so Skills can include comprehensive API documentation, large datasets, or extensive examples. There's no context penalty for bundled content that isn't used.3

Bu bölümün başındaki ölçülen tablo, bu iddianın bu makale için yazılmamış beş skill’e karşı kontrol edilmiş hâlidir. İki satırın birlikte okunması gerekiyor.

next-best-practices, 19.374 token tutan on dokuz dosyaya link veren 966 tokenlık bir gövdeye sahip. Ondan bir hydration error düzeltmesini iste ve agent gövdeyi artı hydration-error.md dosyasını okur: 20.340 içinden 1.409 token, on dört katlık bir fark; diğer on sekiz dosya hiç açılmaz.

next-cache-components, 2.334 tokenlık bir gövdeye sahip ve hiç paketlenmiş dosyası yok. Geçerli bir skill ve iyi yazılmış bir skill; ayrıca açıklayacak seviye 3’ü yok. Tekniğin dürüst sınırı budur: progressive disclosure ancak ertelenecek bir şey varsa tasarruf sağlar. Bilgisi parçalanmayan bir skill, etkinleştirildiğinde tüm gövdesini öder ve geriye kalan tek kaldıraç onu etkinleştirmemektir.

Seviye 1, tek bir cümleden verilen routing kararıdır. Bir skill’in başka hiçbir şeyi onun açılıp açılmayacağını etkilemez — gövdenin kalitesi değil, örnekler değil, script’ler değil. Bu yüzden açıklama dokümantasyon değildir. Sorgu yüzeyidir ve yanlış olabilir.

Spesifikasyon bunu iyi bir örnek ve kötü bir örnek biçiminde söyler; kötü örnek dört kelimedir: description: Helps with PDFs.1 Bunu kabul etmek yerine ölçmeye değer.

Altı skill, her biri ne yaptığını ve ne zaman kullanılacağını söyleyen makul bir açıklamaya sahip. Yirmi dört istek, skill başına dört, bir insanın ifade edeceği gibi phrased ve skill’in adı hiç geçmeden. Model system prompt içinde altı satırı görür ve bir adla ya da NONE ile yanıt vermelidir. Greedy decoding, yani yeniden üretir. Sonra aynı altı skill ile aynı yirmi dört istek, ama açıklamalar yalın konularına kadar kırpılmış hâlde.

the two system promptsTEXT
rich   - sql-review: Review a SQL migration for locks, missing indexes and unsafe
         defaults before it runs on the production database. Use when someone adds
         or changes a migration, an index, or a table column.
thin   - sql-review: Helps with SQL.
24 requests, Qwen2.5-0.5B-Instruct, greedy decodingTEXT
rich   295 tokens of level 1 for six skills   18/24 correct = 75.0 %  [55.1, 88.0]
thin    81 tokens of level 1 for six skills   10/24 correct = 41.7 %  [24.5, 61.2]

paired: rich only 9, thin only 1, two-sided sign test p = 0.0215
answered NONE: rich 1 of 24, thin 9 of 24

Önce aralıkları oku; 4. Bölüm’ün ısrar ettiği ve 29. Bölüm’ün yeniden ısrar edeceği gibi: örtüşüyorlar ve yirmi dört vaka, iki sistemi yalnızca toplamlarına bakarak sıralayamaz. Bunu çözen eşleştirilmiş karşılaştırmadır ve bu 15. Bölüm’ün aracıdır: iki kolun ayrıştığı on vakadan dokuzu zengin açıklamalara, biri ince açıklamalara gitti. Bu, olağan eşikte kuruludur.

Şimdi asıl bulgu olan son satırı oku. İnce açıklamalarla model yirmi dört isteğin dokuzunda NONE yanıtını verdi. Yanlış skill değil: hiçbir skill. İşte bunlardan dördü, birebir:

TEXT
"Check this migration before I run it against production."     -> release-notes
"Will this CREATE INDEX lock writes?"                          -> NONE
"Is this ALTER TABLE safe to deploy at peak traffic?"          -> NONE
"Is 'seamless and powerful' allowed in the app store listing?" -> next-best-practices

Mükemmel bir sql-review skill’i kuruluydu; gövdesi, örnekleri ve checklist’i vardı; ama yazıldığı üç soru için, üç kez üst üste, hiç açılmadı. Seviye 1’in hiç ulaşmadığı bir skill için seviye 2 ve 3 önemsizdir.

Bunu düzeltmenin maliyeti: 214 token, 295 ile 81 arasındaki fark, altı skill’e yayılmış hâlde. Bu da 18. Bölüm’ün bulgusunun diğer taraftan gelişidir. Orada yalnızca bir tool’un açıklamasını değiştirmek date formatting’i 24’te 2 doğrudan 24’te 24 doğruya taşıdı. Burada yalnızca bir skill’in açıklamasını değiştirmek activation’ı 24’te 10’dan 18’e çıkarır. Her iki durumda da sistemdeki en ucuz düzeltme bir cümledir ve her iki durumda da cümlenin yalnızca konuyu değil trigger’ı adlandırması gerekir: şeyin ne olduğunu değil, geçerli olduğunda kullanıcının az önce ne demiş olacağını.

Bu bölümün kendi standartlarına borçlu olduğu bir uyarı. Bu yarım milyar parametreli bir model ve bir frontier model %75’ten çok daha iyi routing yapar. Büyüklüğü değil mekanizmayı oku: routing sinyali, hangi model okursa okusun, bir cümle uzunluğundadır ve hiçbir model o cümleye koymadığın bilgiye göre seçim yapamaz.

Tekrar boz: 26.362 token tutan kaçış kapağı

Bölüme bağlantı: Tekrar boz: 26.362 token tutan kaçış kapağı

İkinci hata ilkinin tersidir. Skill bulunur, seviyeler doğru ayrılmıştır ve agent yine de tamamını okur.

vercel-react-best-practices gerçekten iyi inşa edilmiş bir skill’dir. 1.670 tokenlık gövdesi, sekiz kategoriden oluşan bir öncelik tablosu ve her biri tek satırla adlandırılan 70 kural dosyası içeren hızlı bir referanstır. Kurallar yanında disktedir: 70 dosya, en küçüğü 132 token, median 319, en büyüğü 1.052. Ona barrel imports hakkında tek bir soru sor ve dürüst maliyet gövde artı bir dosyadır — 53.670’lik bir pakete karşı 2.400 tokenın altında.

Sonra gövdenin son satırı şunu söyler:

the final section of SKILL.mdTEXT
## Full Compiled Document

For the complete guide with all rules expanded: `AGENTS.md`

AGENTS.md 26.362 tokendır. 70 kural dosyasının birleştirilmiş hâlidir: toplamları 25.784’tür, fark aralarındaki başlıklardır. Yani skill, agent’a 319 tokenlık bir median kuralı okumak ile aynı içeriği, tamamını, seksen üç kat maliyetle okumak arasında bir seçim sunar — ve bu seçimi, maliyeti belirtilmeyen ve ne zaman alınacağına dair koşulu olmayan bir cümleyle sunar.

Bu bir bug değil ve dosya yanlış değil; derlenmiş bir belge bir insan için ve tüm bir codebase’i denetlemesi istenmiş bir agent için gerçekten faydalıdır. Bu, seviye-2 daveti olan bir seviye-3 dosyadır ve ders bu tek skill’in ötesine genellenir: bir SKILL.md içinden çıkan her yol, maliyetini ve ne zaman buna değdiğini söylemelidir; çünkü modelin bir dosya adının üstündeki dosya adından seksen üç kat daha pahalı olduğunu bilmesinin hiçbir yolu yoktur.

Aynı klasör staleness konusunda daha küçük bir ders taşır. Gövde "8 kategoride 70 kural" der ve 70 tane listeler; rules/ dizini 72 dosya içerir, bunların ikisi scaffolding’dir (_template.md ve _sections.md); sidecar metadata.json ise "40+ kural" der. Aynı kümenin bir klasörde üç sayımı: biri doğru, biri aritmetik, biri de eski bir sürümden kalma. Bir skill bir belgedir ve belgeler tam olarak yanındaki koddan uzaklaşıp drift etmiş bir kod yorumu gibi çürür — tek fark, bunu kaşını bile kaldırmayacak bir makinenin okumasıdır.

Referans implementasyonun eklediği alanlar ve portability tuzağı

Bölüme bağlantı: Referans implementasyonun eklediği alanlar ve portability tuzağı

Açık spesifikasyon altı frontmatter alanı tanımlar. Referans implementasyon olan Claude Code yirmi alan kabul eder.2 Beş grubu adıyla bilmeye değer, çünkü formatın yalnızca belge olmaktan çıktığı yerler bunlardır:

İzin ve invocation. allowed-tools skill’i çağıran tur için tools’u önceden onaylar ve grant bir sonraki mesajda temizlenir; disallowed-tools bunları kaldırır. disable-model-invocation modelin onu kendi kendine yüklemesini durdurur; bu da skill’i bir insanın çalıştırdığı komuta dönüştürür. user-invocable: false bunun tersini yapar: insanlardan gizli, yalnızca model için erişilebilir, arka plan bilgisi olarak.

İzolasyon ve maliyet. context: fork skill’i kendi window’una sahip ayrı bir sub-agent context’inde çalıştırır — 25. Bölüm’ün sub-agent sınırı bir satır YAML olarak — agent hangi türün kullanılacağını seçer ve background turun bekleyip beklemeyeceğine karar verir. model ve effort, skill aktifken yalnızca o tur için hangi modelin çalışacağını değiştirir.

Argümanlar (arguments, argument-hint), bir kişinin gövdeye ikame edilen değerler geçmesine izin verir; skill’i slash command olarak kullanılabilir yapan budur. Kapsam belirleme (paths) activation’ı bir glob ile eşleşen dosyalarla sınırlar. Ve dinamik context injection, zihinsel modeli değiştiren alandır: !`git diff HEAD` biçimindeki bir satır gövde gönderilmeden önce çalışır ve çıktısı metne ikame edilir. Belge bir şablondur ve bir kısmı okuma zamanında hesaplanır.

Şimdi tuzak; aynı dokümantasyonda belirtilir: Claude Code dışında — web ürününde, Skills API üzerinden, paketlemede — yalnızca belirtilen altı alana izin verilir ve başka herhangi bir alan yüklemede sert hatadır.2 Yani bir üründe kusursuz çalışan bir skill, aynı vendor’a ait başka bir ürüne kurulamaz; hata da metni okuyarak test edebileceğin herhangi bir yerde değil frontmatter’da oluşur. Bir skill’in portable olmasını istiyorsan altı alan tüm bütçedir. İstemiyorsan bunu compatibility içinde söyle; tam olarak bunun için vardır.

Dört şey sürekli birbirine karıştırılıyor ve bu karışıklık kelime bilgisi titizliği değil: yanlış seçmek ya her tur para yakar ya da sahip olduğunu sandığın bir garantiyi kaybettirir.

System promptSkillToolMCP server
Nedirher istekte metinkökünde SKILL.md olan bir klasörbir JSON Schema artı kodunda bir endpointbir protokol konuşan process veya servis
Model ne yaparonu her zaman okuraçıklamanın eşleştiğine karar verdiğinde onu okuronu çağırır ve sonucunu beklerhost üzerinden çağırır, server başına bir client
Maliyeti nedirtam uzunluğu, her tur, sonsuza kadartur başına yaklaşık 50 token; kullanılırsa gövde bir kezschema’sı, her tur; çağrıldığında executionher schema artı server’ın instructions’i, her tur
Ne garanti edebilirhiçbir şey — tavsiyedirhiçbir şey — modelin atlayabileceği tavsiyedirkodunun işlemden önce enforce ettiği her şeyserver’ın enforce ettiği her şey
Kim yazarsensen, bir çalışma arkadaşın veya bir vendorsenbaşka biri, birçok host için
Bölüm15bu1826 ve 27

Kalın yazılan iki satır tüm ayrımdır. Bir skill okunur; bir tool invoked edilir. Skill, context window’a gelen ve oradaki her şeyle attention için yarışan prose’dur; model onu izleyebilir, yanlış okuyabilir veya görmezden gelebilir ve sistemde hiçbir şey bunu fark etmez. Tool ise modelin elinden tamamen çıkan bir call’dur: kodun arguments alır, validate eder, izinleri kontrol eder ve karar verir. 18. Bölüm bunu modelin önerdiği, kodunun hüküm verdiği bir ayrım olarak koydu; bu ayrım tam olarak skill’de yoktur.

Altı gerçek vaka, çözülmüş hâlde:

"Kullanıcının dilinde yanıt ver. Sana verilmemiş bir fiyatı asla söyleme."

Bölüme bağlantı: "Kullanıcının dilinde yanıt ver. Sana verilmemiş bir fiyatı asla söyleme."

System prompt. Her tur geçerlidir, bir prosedürden çok kısıttır ve iki cümle uzunluğundadır. Her zaman geçerli olan bir şeyin kademeli olarak açıklayacağı hiçbir şey yoktur; her tur iki cümle için ödeme yapmaktan kaçınmak adına her tur bir keşif satırı için ödeme yapmak tasarruf değildir.

Skill. Prosedürel, belki kırk turda bir gerekir, ses, taksonomi ve örneklere ayrışabilir; ayrıca bir insanın düzenleyeceği prose’dur. Formatın tasarlandığı biçim budur ve yukarıdaki ölçümün tasarruf ettirdiği şey de budur.

"Depo veritabanında identifier ile bir order ara."

Bölüme bağlantı: "Depo veritabanında identifier ile bir order ara."

Tool. Arkasında deterministik bir function vardır ve model query’yi uydurmamalıdır. Bunu skill olarak yazmak — depoyu nasıl sorgulayacağını açıklayan bir belge — modele schema’yı verir ve umut eder. Schema artı endpoint ona yanıt verir.

"Şirketin kullandığı her agent ürününden tracker’ımızdaki issue’ları oku ve yaz."

Bölüme bağlantı: "Şirketin kullandığı her agent ürününden tracker’ımızdaki issue’ları oku ve yaz."

MCP server. Capability senin değildir, birkaç host’un buna ihtiyacı vardır ve bir authentication hikâyesi vardır. Bu, 26. Bölüm’ün açtığı N×MN \times M problemidir; yanıt protokoldür ve 27. Bölüm bunu iki kez ship eder. Bir skill, filesystem’ini hiç görmemiş bir host tarafından keşfedilemez — bu bölümün sonundaki standartlar çalışmasının kapattığı boşluk da tam olarak budur.

Dördünden hiçbiri. Bu, takip edilecek bir prosedür değil, bakılacak bilgidir ve agent’ın aradığı bir indekse aittir: 19. Bölüm. Bunu seviye 3 olarak paketlemek izinli, cazip ve yanlıştır; çünkü modelin kırk dosyadan hangisinin yanıtı tuttuğunu yalnızca adlarından tahmin etmesi gerekir. İyi bir skill olan şey, agent’a o indeksi ne zaman arayacağını, düşük similarity score’un ne anlama geldiğini ve bulduklarını nasıl cite edeceğini söyleyen iki sayfalık prosedürdür.

"Bir insan olmadan asla iki yüz eurodan fazla refund yapma."

Bölüme bağlantı: "Bir insan olmadan asla iki yüz eurodan fazla refund yapma."

Approval gate’i olan bir tool, asla skill değil. Önemli olan vaka budur. Bir SKILL.md içine yazıldığında limit, modelin okuduğu ve genellikle uyduğu bir cümledir; refund tool’una yazıldığında, para hareket etmeden önce çalışan bir branch’tir. Aşılması seni utandıracak bir limit dokümantasyon değildir. Ezberlemeye değer kural: yönergeyi görmezden gelmenin sonucu kötü formatlanmış bir yanıttan daha kötüyse, o yönerge bir belgeye ait değildir.

Tarihçe kısa, alışılmadık derecede iyi tarihlenmiş ve neredeyse kimsenin anlatmadığı kısım.

Agent Skills, 16 Ekim 2025’te bir vendor’ın özelliği olarak yayımlandı; o duyuruda "organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks" diye tanımlandı ve üç seviye, saklamaya değer bir analojiyle anlatıldı: "like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix".4

18 Aralık 2025’te aynı sayfa, formatı açık standart olarak duyurmak üzere güncellendi; agentskills.io adresinde kendi spesifikasyonu, katkılara açık governance ve referans validator ile.3 7 Eylül 2026’da okunduğunda standardın client showcase’i kırk altı ürün listeliyordu — editörler, terminaller, cloud platformları ve mobile runtime’lar; Anthropic, OpenAI, Google ve Mistral’ın first-party coding agents’ları dahil — her biri kendi kurulum dokümantasyonuna link veriyordu.1

MCP ile yakınsama açıkta ve kontrol edebileceğin rakamlarla yapılıyor:

NedirAçılış7 Eyl 2026 durumu
SEP-2076Agent Skills as a First-Class MCP Primitive: yeni skills/list ve skills/get methods, bir skills capability, bir list_changed notification13 Ocak 2026kapalı, 24 Şubat 2026
Skills Over MCP çalışma grubuskills’in "discovered, distributed, and consumed through MCP" olma biçimini tanımlar; haftalık toplanır; listelenmiş on yedi üye, ikisi leadsinterest group 1 Şubat 2026; çalışma grubu 16 Nisan 2026aktif
SEP-2640Skills Extension, Extensions Track: bir skill:// resource convention, extension identifier io.modelcontextprotocol/skills, skills/list üzerinden discovery ve resources/read üzerinden content23 Nisan 2026incelemede

İlginç olan teklifler değil, kapanıştır. SEP-2076 tools, resources ve prompts yanında dördüncü bir primitive istedi. Ondan doğan çalışma grubu yanıtın hayır olduğuna karar verdi: skills, opt-in extension olarak zaten var olan resources primitive’in üzerinde taşınır.5 26. Bölüm protokolün kendi changelog’unda aynı içgüdüyü ölçmüştü; sampling, roots ve logging tutulmak yerine deprecated edilmişti. Kendi yazdığı bir teklifi kaldıran bir standards body iyi davranıyordur; bu hikâyeyi rakamlarla anlatmanın nedeni, başka yerlerde okuyacağın özetlerin hâlâ skills’i bir MCP primitive’i olarak tanımlamasıdır.

Artık bir SKILL.md yazabilir, onu kendi maliyetini ödeyen üç seviyeye bölebilir, başka birinin skill’inin frontmatter’ını okuyup hangi alanların başka bir yere yüklenirken ayakta kalmayacağını bilebilir ve tüm bölümün etrafında kurulduğu soruyu — system prompt, skill, tool veya server — alışkanlıkla değil gerekçeyle yanıtlayabilirsin.

Yapamayacağın şey, seninkinin çalışıp çalışmadığını söylemektir.

Bu bölümde önemli olan her iddia bir ölçümdü ve en önemlisi bir accuracy idi: 24’te 18’e karşı 24’te 10, her birinde bir aralık ve aralarında eşleştirilmiş test; çünkü örtüşen iki toplam hiçbir şeye karar vermez. O araç ödünç alınmıştı. Bir skill’in açıklaması bir routing key’dir, gövdesi modelin izleyebileceği ya da izlemeyebileceği bir prosedürdür; bunların ikisi de ancak şeyi birçok kez çalıştırıp döneni score ederek öğrenebileceğin özelliklerdir — yani bir golden set, run’dan önce yazdığın bir grader ve en az bir kez değil her seferinde çalışıp çalışmadığını soran metrik.

  1. Bölüm budur ve bu bölümün yönteminin dayandığı rakamla açılır: on denemeden yedisinde başarılı olan bir agent %70 gibi görünür ve onun pass^10 — on denemenin hepsinde başarılı olma şansı — sıfırdır. Ayrıca aynı iki yüz transcript üzerinde üç grader ölçer ve tek bir token bile yeniden üretmeden %0, %13 ve %26 alır. Bir description içine az önce yazdığın cümleye güvenmeden önce, onun değiştirdiğin cümleden daha kötü olduğunu söyleyebilecek araca ihtiyacın var.

Bu bölümdeki her token sayımı, 7 Eylül 2026’da, bu bölümün başında listelenen beş third-party skill üzerinde ve bu bölüm için yazılan, tam metni yukarıda kısmen yeniden üretilen release-notes skill’i üzerinde, tiktoken 0.14.0 ve o200k_base encoding ile yerelde üretildi. Seviye 1, bir host’un system prompt’a render ettiği tek satır - name: description olarak ölçülür; seviye 2, frontmatter’dan sonraki SKILL.md gövdesidir; seviye 3, klasördeki diğer her dosyadır. Maliyetler, 16. Bölüm’ün gpt-5.6-terra için ölçtüğü oranları — milyon input token başına $2,00 ve milyon cached input token başına $0,20 — bu sayımlara uygular; bunlar ölçülmüş tokenlar üzerinde aritmetiktir, canlı bir faturanın gözlemleri değildir. Bu bölümü yazmak için ücretli API çağrılmadı.

Activation deneyi Qwen/Qwen2.5-0.5B-Instruct’yi yarım hassasiyette tek bir consumer GPU üzerinde, greedy decoding ile çalıştırdı: altı skill üzerinde 24 istek, iki kez — birinde skill’in ne yaptığını ve ne zaman geçerli olduğunu söyleyen açıklamalarla, diğerinde açıklamalar spesifikasyonun kendi "poor example" tarzında yalın konuya kırpılmış olarak. Aralıklar %95 Wilson’dır; eşleştirilmiş karşılaştırma, on discordant case üzerinde iki yönlü exact sign test’tir; Wilson aralığı 4. Bölüm’den ve exact paired sign test 15. Bölüm’den, ikisi de değiştirilmeden yeniden kullanıldı. Büyüklükleri çok küçük bir modelin özelliği, yöntemi ise taşınabilir olarak oku.

Burada ölçülen beş skill, bu bölüm için yazılmamış third-party paketlerdir: vercel-labs/next-skills kaynağından next-best-practices ve next-cache-components; vercel-labs/agent-skills kaynağından vercel-composition-patterns, vercel-react-best-practices ve vercel-react-native-skills. İç sayımları — 70 kural dosyası, 26.362 tokenlık AGENTS.md, Ocak 2026 tarihli ve "40+ rules" iddiasındaki metadata.json — 7 Eylül 2026’da diskteki dosyalardan okundu ve o yayımlanmış sürümün özellikleridir, yazarlarına yönelik eleştiriler değil: her biri, sayılmasından daha sık düzenlenen herhangi bir dokümantasyon ağacında görülen türden drift’tir.

  1. Agent Skills Specification ve Overview, agentskills.io/specification ve agentskills.io, 7 Eylül 2026’da okundu. Dizin layout’unun kaynağı; yukarıda her kısıtla yeniden üretilen frontmatter tablosu (name 1–64 karakter ve dizinle eşleşme, description 1–1024 karakter, compatibility en fazla 500, allowed-tools deneysel olarak işaretli); iyi ve poor description örnekleri; token bütçesiyle üç aşamalı progressive-disclosure açıklaması (metadata yaklaşık 100 token, instructions için 5.000’in altı önerilir, resources gerektiği kadar) ve SKILL.md’i 500 satırın altında tutma tavsiyesi; "the agent will load this entire file once it's decided to activate a skill" notu; scripts/, references/ ve assets/ conventions; skills-ref validate komutu; formatın "was originally developed by Anthropic, released as an open standard, and has been adopted by a growing number of agent products" olduğu ifadesi; ve okuma tarihinde kırk altı ürün listeleyen client showcase. 2 3 4

  2. Claude Code dokümantasyonunda Skills, code.claude.com/docs/en/skills, 7 Eylül 2026’da okundu. "Referans implementasyonun eklediği alanlar" bölümünde kullanılan tam alan tablosunun kaynağı — when_to_use, argument-hint, arguments, disable-model-invocation, user-invocable, allowed-tools, disallowed-tools, model, effort, context, agent, background, hooks, paths, shell, metadata, license, compatibility — body gönderilmeden önce çalışan !`command` ile dynamic context injection açıklamasının, allowed-tools grant’inin bir sonraki mesajda temizlendiği kuralın ve Claude Code dışında yalnızca belirtilen altı alanın kabul edildiğini, başka herhangi birinin upload veya packaging sırasında hard error oluşturduğunu söyleyen compliance notunun kaynağı. 2 3

  3. Agent Skills overview, platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, 7 Eylül 2026’da okundu. Dört sütunlu seviye tablosunun kaynağı (Level 1 metadata, always, skill başına yaklaşık 100 token; Level 2 instructions, when triggered, under 5k tokens; Level 3+ resources, as needed, none until accessed); paketlenmiş içeriğin context penalty taşımadığına dair tam alıntılanan cümlenin; "until a Skill is triggered, only its name and description occupy context" ifadesinin; bir script’in kodunun context window’a hiç girmeyip yalnızca çıktısının girdiği ifadesinin; ve güvenlik bölümünün kaynağı. Bu bölüm, skills’i yalnızca güvenilir kaynaklardan kullanmanı söyler ve kötü niyetli bir skill’in "can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose" olabileceği konusunda uyarır — 30. Bölüm’ün konusu, tool açıklaması yerine bir belge üzerinden gelir. 2 3

  4. Anthropic, Equipping agents for the real world with Agent Skills, 16 Ekim 2025, anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills, 7 Eylül 2026’da okundu. Yukarıda alıntılanan tanımın, içindekiler/chapters/appendix analojisinin, başlangıçta tanımlandığı hâliyle üç seviyenin ve agents’ın domain expertise almak için "more composable, scalable, and portable ways"’e ihtiyaç duyduğu framing’in kaynağı. claude.com/blog/skills adresindeki eşlik eden ürün duyurusu, 16 Ekim 2025 yayın tarihini ve organization-wide management ile açık standardı tanıtan 18 Aralık 2025 güncellemesini taşır.

  5. Skills Over MCP Charter, modelcontextprotocol.io/community/working-groups/skills-over-mcp, 7 Eylül 2026’da okundu. Yukarıda alıntılanan mission statement’ın, changelog tarihlerinin (interest group 1 Şubat 2026’da kuruldu, initial charter 14 Nisan 2026, 16 Nisan 2026’da working group’a dönüştü, SEP-2640 25 Nisan 2026’da linklendi), leadership ve listelenmiş on yedi üyenin, haftalık meeting cadence’in ve taslak Skills Extension’ı "a formal extension using existing Resources primitives" diye adlandıran başarı ölçütünün kaynağı. SEP-2076, Agent Skills as a First-Class MCP Primitive, github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, 13 Ocak 2026’da açıldı ve 24 Şubat 2026’da kapandı; skills/list, skills/get, bir skills server capability ve bir skills/list_changed notification önerdi ve skill’i "a named bundle of instructions plus references to tools, prompts, and resources that together teach an agent how to perform a domain-specific workflow" olarak tanımladı. SEP-2640, Skills Extension, .../pull/2640, 23 Nisan 2026’da Extensions Track üzerinde açıldı ve skill:// resource convention ile extension identifier io.modelcontextprotocol/skills’yi taşır. 26. Bölüm aynı çalışma grubunu protokolün optional extensions’ları arasında listeler.

Seçimi LIA'ya bırakmaya hazır mısın?

Tüm yapay zeka modelleriyle tek yerde üret — bugün ücretsiz başla.