Agent Skill Nedir
AI agent'lar konusunda şunu bilmek gerekiyor: bir agent, ona öğrettiğiniz kadar iyidir. Agent skill dediğimiz şey, özünde bağımsız bir uzmanlık paketi — tool'lar, bilgi ve workflow'ları bir araya getirip agent'ın belirli bir görev türünü güvenilir şekilde yapmasını sağlıyor. İyi tanımlanmış skill'ler olmadan agent'ınız sadece ham metin üzerinde genel çıkarım yapıyor. Düşünebilir, ama uzman bir alanda gerçek bir iş çıkaramaz.
İnsan uzmanlığının nasıl çalıştığını düşünün. Bir yazılım mühendisi her sorgu optimizasyonu gerektiğinde veritabanı teorisini baştan türetmez. İçselleştirdiği bilgiye başvurur — indexleme stratejileri, query planner'lar, profiling tool'ları — ve bunları neredeyse içgüdüsel olarak uygular. Agent skill'ler tam da bu kalıbı resmileştiriyor. Alan bilgisini, ilgili tool'ları ve kanıtlanmış workflow'ları modüller halinde paketliyorsunuz; agent de bunları gerektiğinde çağırıyor.
Skill ile ham tool arasındaki farkı anlamak önemli. Tool tek bir fonksiyon — web'de ara, SQL sorgusu çalıştır, e-posta gönder. Skill ise bir ya da daha fazla tool'u etkili kullanım için gereken bağlamla birlikte sarıyor: hangi tool'u ne zaman çağırmalı, sonuçları nasıl yorumlamalı, bir şey ters gidince ne yapmalı, hangi güvenlik önlemleri geçerli. Örneğin bir "veritabanı optimizasyonu" skill'i, explain-plan tool'u, index öneri tool'u ve benchmark tool'u birlikte yönetir. Her adımda alan bilgisini uygulayarak agent'ı doğru öneriye yönlendirir.
Tool, agent'a hareket etme gücü verir. Skill ise doğru hareketi seçme yetisini verir. Agent başarısızlıklarının çoğu tam da bu ikisinin arasındaki boşlukta yaşanır.
Skill Mimarisi: Tool'lar, Bilgi ve Workflow'lar
Sağlam bir skill mimarisi üç temel üzerine oturur: tool'lar, bilgi ve workflow'lar. Her biri alan yetkinliğinin farklı bir boyutunu karşılar. Herhangi birini ihmal ederseniz, kırılgan ve güvenilmez agent davranışlarıyla karşılaşırsınız.
Tool'lar
Tool'lar agent'ın çağırabildiği çalıştırılabilir fonksiyonlar. Her tool'un net bir typed interface'i olmalı — input parametreleri, output şeması, hata tipleri. Böylece agent, implementasyona bakmadan tool'un ne yaptığını anlayabilir. Pratikte en iyi tool'lar mümkün olduğunca idempotent çalışır, serbest metin yerine yapılandırılmış veri döndürür, rate limiting ve timeout yönetimini düzgünce halleder.
Bilgi
Bilgi, tool'ların nasıl kullanılacağını belirleyen alan bağlamı — gerçekler, sezgisel kurallar, kısıtlamalar, en iyi pratikler. Farklı biçimlerde olabilir: dokümantasyon üzerinde RAG, skill prompt'larına gömülü few-shot örnekler veya alan kavramlarını haritalayan yapısal ontolojiler. Kritik nokta şu: bilgi karar anında agent'a sunulmalı. Eğitim verisinin derinliklerinde kalmışsa ve güncelliğini yitirmişse, işe yaramaz.
Workflow'lar
Workflow'lar yapıştırıcı görevi görür. Tool'ları ve bilgiyi birbirine bağlayan prosedürel mantığı kodlar — adım sırası, dallanma koşulları, hata yönetim stratejileri, doğrulama kontrolleri. Basit bir doğrusal diziden, paralel dalları ve koşullu mantığı olan karmaşık yönlü döngüsüz çizgelere kadar her türlü karmaşıklıkta olabilir.
Info
En iyi sonucu veren yaklaşım: workflow'ları kod olarak değil veri olarak ele alın. JSON, YAML ya da bir DSL gibi deklaratif konfigürasyonlarla tanımladığınızda, bunlar incelenebilir, versiyonlanabilir ve programcı olmayan alan uzmanları tarafından düzenlenebilir hale gelir. Bu çok büyük bir avantaj.
Composable Skill Modülleri Oluşturma
Agent skill'ler için en önemli tasarım özelliği composability. Composable bir skill, tek başına çözemeyeceği görevleri diğer skill'lerle birleşerek çözebilir. Bunu başarmak için uniform bir interface kontratı gerekiyor: her skill aynı metadata yapısını sunmalı, standart formatta input kabul etmeli ve diğer skill'lerin dönüşüm yapmadan tüketebileceği output'lar döndürmeli.
Pratikte bir skill modülü interface'i şöyle görünür. Her skill adını, agent'ın routing kararları için kullandığı doğal dil açıklamasını, sağladığı tool'ları ve asıl workflow'u çalıştıran bir execute metodunu tanımlar.
interface SkillDefinition {
name: string;
description: string;
// Yetenek keşfi ve yönlendirme için etiketler
tags: string[];
// Yürütme öncesi doğrulanan giriş şeması
inputSchema: JSONSchema;
// Bu yeteneğin ajana sağladığı araçlar
tools: ToolDefinition[];
// Alan bilgisi kaynakları
knowledgeSources: KnowledgeSource[];
}
class SkillModule implements SkillDefinition {
name: string;
description: string;
tags: string[];
inputSchema: JSONSchema;
tools: ToolDefinition[];
knowledgeSources: KnowledgeSource[];
async execute(context: SkillContext): Promise<SkillResult> {
// Girdiyi şemaya göre doğrula
const validated = this.validateInput(context.input);
// İlgili bilgiyi bağlama yükle
const knowledge = await this.retrieveKnowledge(
context.query,
this.knowledgeSources
);
// Araç erişimiyle iş akışı adımlarını yürüt
const workflow = this.buildWorkflow(validated, knowledge);
return workflow.run(context.toolExecutor);
}
private buildWorkflow(
input: ValidatedInput,
knowledge: KnowledgeContext
): Workflow {
// Araçlar ve bilgiden iş akışı adımlarını oluştur
return new WorkflowBuilder()
.step("analyze", this.tools.find(t => t.name === "analyze")!)
.step("plan", this.tools.find(t => t.name === "plan")!)
.step("execute", this.tools.find(t => t.name === "execute")!)
.withKnowledge(knowledge)
.withRetry({ maxAttempts: 3, backoffMs: 1000 })
.build();
}
}Uniform interface, şema doğrulama, bilgi erişimi ve workflow yürütme özelliklerini bir arada sunan composable skill modülü.
Bu yapıdaki birkaç tasarım kararı önemli. inputSchema alanı, agent'ın skill'i çağırmadan önce yeterli bilgiyi toplayıp toplamadığını kontrol etmesini sağlıyor — boşa giden tool çağrılarını azaltır. knowledgeSources dizisi skill'i belirli bir retrieval altyapısına bağlamaz; bir skill vector store kullanırken diğeri yapısal bir API, üçüncüsü statik bir örnek seti kullanabilir. buildWorkflow metodu da prosedürel mantığı kapsülleyerek izole test edilebilirliği sağlar.
Composability ayrıca skill'lerin kendi yeteneklerini ve kısıtlamalarını açıkça bildirmesini gerektirir. Dış durumu değiştiren bir skill bunu söylemeli — böylece orchestrator onay kapıları ekleyebilir. Maliyetli bir skill (çok fazla LLM çağrısı ya da uzun süren API istekleri) tahmini maliyet ve gecikme bilgisini sunmalı ki agent, birden fazla skill'in bir görevi üstlenebileceği durumlarda bilinçli kararlar verebilsin.
Skill Discovery ve Routing
Skill kütüphaneniz büyüdükçe, agent'ın doğru skill'i sistematik olarak bulması gerekiyor. Naif yaklaşım — tüm skill açıklamalarını system prompt'a yığmak — çabuk çöker. Onlarca ya da yüzlerce skill ile prompt hantallaşır, model doğru seçimi yapamaz ve token maliyetleri tavana vurur.
Çok daha iyi çalışan yöntem iki aşamalı routing. İlk aşamada hafif bir retrieval adımı, kullanıcının isteği ile skill açıklamaları arasındaki embedding benzerliğiyle aday havuzunu daraltır. İkinci aşamada agent sadece en iyi adayları alır ve detaylı açıklamalar ile input şemalarına bakarak nihai seçimi yapar.
class SkillRouter {
private registry: SkillRegistry;
private embedder: EmbeddingModel;
async route(
query: string,
maxCandidates: number = 5
): Promise<RankedSkill[]> {
// Aşama 1: Gömme tabanlı erişim
const queryEmbedding = await this.embedder.embed(query);
const candidates = await this.registry.search(
queryEmbedding,
maxCandidates * 2 // Yeniden sıralama için fazla getir
);
// Aşama 2: Tam açıklamalarla LLM tabanlı yeniden sıralama
const ranked = await this.rerank(query, candidates);
// Alaka puanlarıyla üst adayları döndür
return ranked.slice(0, maxCandidates).map(candidate => ({
skill: candidate.skill,
score: candidate.relevanceScore,
reasoning: candidate.selectionReasoning,
}));
}
private async rerank(
query: string,
candidates: SkillCandidate[]
): Promise<ScoredCandidate[]> {
// Adayları puanlama ölçütüyle LLM'e sun
const prompt = buildRerankPrompt(query, candidates);
const scores = await this.llm.evaluate(prompt);
return candidates
.map((c, i) => ({ ...c, relevanceScore: scores[i] }))
.sort((a, b) => b.relevanceScore - a.relevanceScore);
}
}İki aşamalı skill routing: embedding retrieval alanı daraltır, LLM re-ranking en iyi eşleşmeyi seçer.
Bu mimari güzel bir şekilde ölçeklenir. Embedding araması binlerce skill üzerinde bile milisaniyeler içinde çalışır, LLM re-ranking adımı ise sadece küçük, önceden filtrelenmiş bir set üzerinde işlem yapar. selectionReasoning alanı debug için çok değerli — bir skill'in neden seçildiğini tam olarak görmenizi sağlar, routing hatalarını kolayca teşhis edersiniz.
Production'da router'ın sadece anlık sorguya değil, bağlamsal sinyallere de bakması gerekir. Konuşma geçmişi, kullanıcı tercihleri, daha önce çağrılan skill'ler, görev metadata'sı — bunların hepsi faydalı routing ipuçları sunar. Son on mesajdır Python codebase'i üzerinde çalışan bir kullanıcı, anlık sorgusu belirsiz olsa bile büyük olasılıkla generic bir coding skill'i değil Python'a özel bir skill'e ihtiyaç duyar.
Skill'leri Değerlendirme ve Test Etme
Skill'lerin en güzel yanlarından biri test edilebilirlik. Her skill'in tanımlı bir interface'i olduğu için — typed input'lar, typed output'lar, sınırlı bir tool seti — standart yazılım test tekniklerini doğrudan uygulayabilirsiniz. Ham agent prompt'larını test etmeye kıyasla bu büyük bir ilerleme.
Unit test'ler bireysel tool fonksiyonlarını izole şekilde doğrular: şu input'ları verdiğinde beklenen output'u alıyor musun? Integration test'ler workflow'un tool'ları doğru şekilde orkestra ettiğini kontrol eder: temsili bir senaryo verildiğinde, skill beklenen tool çağrı dizisiyle doğru sonucu üretiyor mu? Regression test'ler de geçmiş hataları yakalar ve skill geliştikçe düzeltilmiş kalmalarını garanti eder.
- Her tool fonksiyonu için unit test'ler — input parsing, output formatting ve error handling'i ayrı ayrı doğrulayın.
- Mock'lanmış tool'larla workflow test'leri — skill'in doğru tool'ları doğru sırada doğru argümanlarla çağırdığından emin olun.
- Canlı backend'lere karşı end-to-end test'ler — latency ve hata senaryoları dahil gerçekçi koşullarda tam pipeline'ın çalıştığını onaylayın.
- Etiketli dataset'lerle evaluation benchmark'ları — temsili alan görevleri üzerinde doğruluk, eksiksizlik ve tutarlılık ölçün.
- Edge case'lerle adversarial test'ler — belirsiz input'lar, çelişen kısıtlamalar ve olağandışı koşullarla sınırları zorlayın.
Fonksiyonel doğruluğun ötesinde, alana özel kalite metriklerini de takip etmelisiniz. Kod üretim skill'i için derleme başarı oranı, test geçme oranı ve stil kılavuzuna uyum önemli. Veri analizi skill'i için istatistiksel geçerlilik, görselleştirme netliği ve içgörü ilgisi düşünün. Bu alana özel metrikler, token sayısı ya da latency gibi genel ölçülerden çok daha bilgilendirici.
Tip
Her skill için bir "golden set" — yani referans input-output çiftleri koleksiyonu — tutun. Skill'in tool'larında, bilgi kaynaklarında ya da workflow mantığında her değişiklik olduğunda bunu CI pipeline'ında çalıştırın. Golden set'ler regression'ları erken yakalar ve skill'in ne yapması gerektiğinin canlı dokümantasyonu olarak da işe yarar.
Gerçek Dünyada Skill Kütüphaneleri
Sektördeki production skill kütüphanelerinden net kalıplar ortaya çıktı. En başarılı olanlar ortak özellikler taşır: katı interface kontratları, zengin metadata, versioning ve varsayılan olarak composability — sonradan eklenen bir özellik olarak değil.
Kurumsal skill kütüphaneleri genellikle skill'leri alanlara göre düzenler — finans, mühendislik, müşteri desteği, hukuk — her alanda genelden özele bir hiyerarşi bulunur. Üst düzey bir "mühendislik" alanı kod inceleme, debugging, deployment ve dokümantasyon skill'lerini içerebilir; bunlar da daha uzmanlaşmış alt skill'lere ayrılır. Bu yapı, organizasyonların insan uzmanlığını yapılandırma biçimini yansıtır ve skill discovery'yi sezgisel kılar.
- Kod analizi skill'leri: static analysis, dependency auditing, security scanning, performance profiling ve refactoring önerileri — her biri uzmanlaşmış toolchain'leri alan sezgileriyle sarıyor.
- Data engineering skill'leri: şema doğrulama, pipeline orchestration, veri kalitesi kontrolleri ve migration planlaması — yılların operasyonel deneyiminden süzülen en iyi pratikleri kodlar.
- DevOps skill'leri: altyapı provisioning, incident response, kapasite planlaması ve deployment otomasyonu — cloud provider API'leri ve monitoring sistemleriyle entegre çalışır.
- Araştırma skill'leri: literatür taraması, deney tasarımı, istatistiksel analiz ve sonuç sentezi — retrieval sistemlerini alana özel analitik framework'lerle birleştirir.
Açık kaynak framework'ler skill interface'lerini standartlaştırmaya başladı. LangChain'in tool ekosistemi, Model Context Protocol (MCP) ve OpenAI'ın function-calling spec'i farklı kontratlar öneriyor ama temel ilkeler birleşiyor: skill'lerin typed interface'lere, zengin açıklamalara ve composable execution model'lere ihtiyacı var. Bir ekibin geliştirdiği skill'lerin başka bir ekibin agent'ları tarafından keşfedilip kullanılabildiği interoperable skill registry'lerine doğru ilerliyoruz.
Takip edilmeye değer bir kalıp da backward compatibility garantili skill versioning. Alan bilgisi sürekli değişiyor — finansta yeni düzenlemeler, cloud platformlarında yeni API'ler, güvenlikte yeni best practice'ler. Skill'ler mevcut agent workflow'larını bozmadan güncellenebilmeli. Semantic versioning burada iyi çalışıyor: bilgi güncellemeleri için patch version, yeni tool eklemeleri için minor version, agent reconfiguration gerektiren interface değişiklikleri için major version.
Önemli Çıkarımlar
Sonuç olarak etkili agent skill'ler oluşturmak, yazılım mühendisliği disiplinini AI yeteneklerine uygulamak demek. Geleneksel yazılımı güvenilir kılan ilkeler — temiz interface'ler, separation of concerns, test edilebilirlik, versioning — burada da aynı güçle geçerli. Tek fark, skill'in "tüketicisi" bir insan geliştirici değil bir AI agent. Bu da interface açıklamalarında daha fazla kesinlik ve input/output doğrulamasında daha sıkı titizlik gerektiriyor.
- Skill'ler tool'lardan fazlası — tool'ları, bilgiyi ve workflow'ları agent'ların güvenilir şekilde kullanabildiği tutarlı alan uzmanlığı birimlerinde birleştirir.
- Composability uniform interface ister — her skill aynı metadata yapısını sunmalı, standart input kabul etmeli ve yapılandırılmış output döndürmeli.
- İki aşamalı routing skill discovery'yi ölçeklendirir — embedding retrieval adayları hızla daraltır, LLM re-ranking net bir gerekçeyle en iyi eşleşmeyi seçer.
- Test edilebilirlik birinci sınıf bir öncelik — typed interface'ler, ham prompt'ların destekleyemediği unit, integration ve end-to-end test stratejilerini mümkün kılar.
- Skill'lerinizi yazılım gibi versiyonlayın — backward compatibility garantili semantic versioning, alan bilgisi geliştikçe agent workflow'larını kararlı tutar.
- Bilgi katmanlarına yatırım yapın — vasat bir skill ile uzman seviyesi bir skill arasındaki fark, neredeyse her zaman sunduğu alan bilgisinin kalitesi ve güncelliğiyle ilgili.
Sektör net bir şekilde zengin, interoperable skill ekosistemlerine doğru ilerliyor — agent'lar paylaşılan registry'lerden ihtiyaç duydukları yetenekleri anında birleştirip kullanabilecek. İyi yapılandırılmış skill kütüphanelerine — temiz interface'ler, sağlam testler, kapsamlı metadata — erken yatırım yaparsanız, eklediğiniz her yeni skill'le agent'larınızın daha yetenekli hale geldiğini göreceksiniz. Bu tür bir bileşik getiriyi yenmek zor.