AI Skills & Tools Nedir

AI agents paketlenmiş yetenekleri nasıl kullanır — function calls'tan MCP servers'a kadar. LLMs ile çalışan geliştiriciler için pratik bir rehber.

7 dakika okuma Güncellendi: Nisan 2026

🔧 Skill Nedir?

AI ajanları bağlamında, bir skill (aynı zamanda olarak adlandırılır tool or function) paketlenmiş, tekrar kullanılabilir bir yetenektir; LLM bunu bağlam penceresinin dışındaki dünyayla etkileşim için çağırabilir. Skills, dil anlayışı ile gerçek dünya eylemi arasındaki boşluğu kapatır.

Her skill dört bileşene sahiptir:

  • Name — LLM'in skill'e referans vermek için kullandığı benzersiz bir tanımlayıcı (örn., web_search)
  • Description — skill'in ne yaptığını ve ne zaman kullanılacağını açıklayan doğal dil metni; LLM bunu hangi zaman skill'in çağrılacağına karar vermek için okur
  • Girdi şeması — Argümanların yapılandırılmış tanımı (JSON Schema); model göreve göre bunları doldurur
  • Implementation — Gerçek çalışan kod: bir API çağrısı, veritabanı sorgusu, shell komutu veya başka herhangi bir operasyon

Örnek: A get_weather skill açıklaması "Bir şehir için güncel hava durumunu getirir" olan, kabul eder { "city": "string" } girdi olarak ve bir hava durumu API'sini çağırır. LLM API anahtarını veya HTTP çağrısını asla görmez — sadece sonucu metin olarak alır.

⚙️ Araç Çağırma Nasıl Çalışır

Bir ajanın skills erişimi olduğunda, LLM onları doğrudan çağırmaz — bunun yerine requests yapılandırılmış bir çıktı üreterek bir çağrı yapar. Runtime (uygulama kodunuz) gerçek çağrıyı yürütür ve sonucu döndürür. Tam döngü şöyle:

  1. Araç kaydı — Kodunuz modele kullanılabilir skills listesini, açıklamaları ve şemaları gönderir
  2. Model muhakemesi — LLM görevi ve kullanılabilir araçları okur, hangi aracı hangi argümanlarla çağıracağına karar verir
  3. Araç çağrı isteği — Model yapılandırılmış bir "tool call" mesajı çıktılar (örn., { "tool": "web_search", "args": { "query": "current Gemini models" } })
  4. Execution — Runtime kodunuz gerçek fonksiyonu, API'yi veya servisi çağırır
  5. Sonuç enjeksiyonu — Sonuç konuşma bağlamına tekrar eklenir
  6. Sürekli muhakeme — Model sonucu okur ve ya başka bir araç çağırır, takip soru sorar ya da nihai cevabı üretir

Bu döngü bir tur içinde birçok kez tekrarlanabilir. Karmaşık bir ajan görevi, nihai bir cevap üretilmeden önce ardışık olarak 10–20 araca çağrı yapabilir.

📊 Skills vs Plugins vs MCP Sunucuları

Terminoloji hızla evrildi. Kavramların tarihsel ilişkisi şöyle:

EraNameNasıl çalışıyorduStatus
2023 ChatGPT Plugins OpenAPI spec ile kullanıcı tarafından kurulabilen uzantılar; ChatGPT onları HTTP ile çağırdı Kaldırıldı (GPTs + tools ile değiştirildi)
2023 OpenAI Function Calling API düzeyinde JSON Schema tanımları; model yapılandırılmış fonksiyon çağrısı üretir, kodunuz bunu yürütür Aktif — yeniden adlandırıldı "tool use"
2023– Tool Use / Skills Fonksiyon çağırmaya eşdeğer; Anthropic "tool use" terimini icat etti, diğerleri "skills" veya "functions" diyor Aktif — mevcut standart
2024– MCP Sunucuları Standardize edilmiş protokol (Anthropic, Dec 2024) tool sunucularını paketlemek ve dağıtmak için; herhangi bir MCP client herhangi bir MCP server ile bağlanabilir Aktif — büyüyen ekosistem

Ana fark: Geleneksel tool use uygulama kodunuz içinde tanımlanır. MCP sunucuları standart bir protokol üzerinden araçlar sunan bağımsız süreçlerdir — bunlar farklı AI istemcileri (Claude Desktop, Cursor, VS Code, özel ajanlar) arasında tekrar kullanılabilir. Daha fazla bilgi: MCP Nedir.

🗂️ Araç Kategorileri ve Risk Seviyeleri

Tüm araçlar aynı riski taşımaz. Risk seviyesine göre gruplandırma, ajanınızın için tanımlama yapmaya yardımcı olur eylem alanı ve insan-döngüde onay noktalarının nereye eklenmesi gerektiği:

CategoryExamplesRiskRecommendation
Read-only web_search, read_file, get_weather, list_dir Low Otonom olarak izin verin; tüm çağruları kaydedin
Yazma (yerel) write_file, create_dir, edit_code Medium Sandboxlanmış bir çalışma dizinine sınırlayın
Ağ / Harici send_email, post_to_slack, call_api Orta–Yüksek Geri alınamaz gönderimler için HITL onayı
OS / Shell run_command, execute_script, install_package High Kapsayıcı ortama sınırlandırın; HITL gerekli
Destructive delete_file, drop_table, revoke_access Critical Her zaman açık insan onayı gerektirir

🏗️ İyi Bir Skill'in Anatomisi

Bir skill için en önemli tasarım kararı onun description. LLM hangi aracı çağıracağına karar vermek için açıklamaları okur — kötü yazılmış bir açıklama yanlış araç seçimine, eksik çağrılara veya belirsiz argümanlara yol açar.

Açıklamayı etkili kılan nedir

  • Ne zaman kullanılacağını açıkça belirtin — "Kullanıcı gerçek zamanlı veri veya güncel olaylar hakkında soru sorduğunda bu aracı kullanın" ifadesi, "Web'de arama yapar" ifadesinden daha iyidir
  • Yapmadığını belirtin — "30 günden eski tarihsel verileri döndürmez"
  • Çıktı formatını tanımlayın — "Başlık, url ve snippet alanlarına sahip JSON dizisi döndürür"
  • 200 kelimenin altında tutun — ~200 token'dan uzun açıklamalar, birçok araç kayıtlı olduğunda modelin dikkatini zorlayabilir

Şema tasarım ilkeleri

  • Gerekli vs isteğe bağlı — Alanları gerçekten gerekli değilse required olarak işaretlemeyin; varsayılanlı isteğe bağlı alanlar model hatalarını azaltır
  • Kısıtlı değerler için enum kullanın"format": {"enum": ["json", "markdown", "text"]} halüsinasyona uğramış değerleri önler
  • Idempotent araçları tercih edin — Güvenle yeniden denenebilen araçlar (okumalar, aramalar), tek seferlik eylemlerden (gönderimler, silmeler) daha güvenlidir
  • Yapılandırılmış veri döndürün — JSON cevapları modelin yapılandırmamış metin blob'larına göre muhakeme yapmasını kolaylaştırır

💡 Gerçek Dünya Örnekleri

Skill adıNe yaparAna argümanlarRisk
web_search Bir arama motorunu sorgulayın ve en iyi sonuçları döndürün query: string, num_results?: number Low
read_file Çalışma dizininden bir dosya okuyun path: string, offset?: number, limit?: number Low
write_file Bir dosya oluşturun veya üzerine yazın path: string, content: string Medium
run_tests Proje test süitini çalıştırın ve sonuçları döndürün filter?: string Medium
browser_screenshot Bir URL'ye gidin ve ekran görüntüsü döndürün url: string Medium
send_email Bir veya birden fazla alıcıya e-posta gönderin to: string[], subject: string, body: string Yüksek — her zaman HITL
run_shell İstediğiniz bir shell komutunu yürütün command: string, cwd?: string Yüksek — sandbox gerekli

✅ En İyi Uygulamalar

Minimum izinler

Her ajana, onun belirli görevi için ihtiyaç duyduğu araçları verin. Sadece SSS cevaplayan bir ajanın write_file or send_email. Eylem alanı ne kadar küçükse, ajan manipüle edilirse patlama yarıçapı o kadar küçük olur. Bakınız: Aşırı Ajans.

Tüm araç çağrılarını denetleyin

Her araç çağrısını argümanları ve sonucu ile birlikte kaydedin. Bu hata ayıklama, maliyet tahsisi ve anormal davranışların tespiti için (örn., bir ajanın ~/.ssh/ sadece proje dizinine erişmesi gerekirken) önemli olur. LangSmith gibi AgentOps platformları bunu kolaylaştırır.

Geri alınamaz eylemler için insan-döngüsü

Geri alınması zor veya imkansız olan herhangi bir eylem — mesaj gönderme, veri silme, satın alma — yürütmeden önce açık insan onayı gerektirmelidir. HITL kontrollerini sadece prompt'a değil, ajan runtime'ınıza yerleştirin. Promtlar geçersiz kılınabilir; kod kılınamaz.

Tool poisoning'e dikkat edin

Eğer ajanların dinamik olarak MCP sunucuları kurmasına veya keşfetmesine izin verirseniz, kötü niyetli bir sunucu gizli talimatlar içeren bir açıklama ile bir araç kaydedebilir. Araçları ajanınuzun kaydına eklemeden önce her zaman açıklamaları inceleyin. Bakınız: Tool Poisoning.

Açık hata dönüşleri yazın

Bir araç başarısız olduğunda, modelin kurtarması veya yükseltmesi için yeterli bağlamı içeren yapılandırılmış bir hata döndürün — ham istisna yığını değil. Örnek: { "error": "rate_limited", "retry_after": 5 }. İyi tanımlanmış bir hata, ajanın yeniden denemesine, yedek bir aracı kullanmasına veya kullanıcıyı zarifçe bilgilendirmesine olanak verir.