Showing posts with label Araçlar. Show all posts
Showing posts with label Araçlar. Show all posts

Wednesday, January 21, 2026

Yapay Zeka İş Görenlerinde Yeni Dönem: Agent Skills ve VS Code Entegrasyonu

Yapay Zeka İş Görenlerinde Yeni Dönem: Agent Skills ve VS Code Entegrasyonu

Yapay Zeka İş Görenlerinde Modüler Yetenek Devrimi: Agent Skills ve VS Code Entegrasyonu

Murat Karakaya | 30 Aralık 2025 Çalışma Odası Özeti

Merhaba değerli okurlar ve Murat Karakaya Akademi takipçileri. 2025 yılının bu son "Çalışma Odası" yayınında, yapay zeka dünyasında çığır açan bir mimariyi, Anthropic tarafından önerilen ve artık standart VS Code sürümlerinde de tam destekle yerini alan Agent Skills (İş Gören Yetenekleri) protokolünü derinlemesine inceledik. Bu yazı, YouTube kanalımızda gerçekleştirdiğimiz modüler ajan mimarisi eğitiminin en güncel ve teknik detaylarını içeren kapsamlı bir özetidir.

Gelişme Notu: Agent Skills özelliği artık VS Code'un kararlı (stable) sürümünde kullanılabilir durumdadır. Bu yazıda, bu teknolojinin sadece nasıl kurulduğunu değil, arka plandaki çalışma mantığını ve neden geleceğin yazılım geliştirme standartı olacağını detaylandıracağız. Canlı uygulama adımlarını görmek için aşağıdaki videomuzu mutlaka izlemenizi öneririm.

Neden Agent Skills? "Spagetti Prompt" ve Bağlam Kayması Sorunu

Yapay zeka modelleriyle (LLM) çalışan geliştiricilerin en büyük kabusu, projenin büyümesiyle birlikte kontrol edilemez hale gelen talimat listeleridir. Model her yeni sohbette tüm proje kurallarını, kod standartlarını ve araç tanımlarını okumaya zorlandığında şu teknik darboğazlar oluşur:

  • Bağlam Kayması (Context Drift): Model, çok fazla talimat arasında asıl görevinden sapabilir.
  • Token İsrafı: Her istekte binlerce satırlık sistem talimatı göndermek maliyeti artırır ve hızı düşürür.
  • Statik Yapı: Geleneksel "Prompt"lar statiktir; modelin o anki ihtiyacına göre şekillenmezler.

Agent Skills, bu problemleri modülerlik ve dinamik keşif ile çözerek, yapay zekayı "her şeyi bilen ama kafası karışık" bir asistandan, "ihtiyacı olduğunda doğru araca ulaşan" kıdemli bir iş gören (agent) seviyesine taşır.

Modüler Yapay Zeka Yetenekleri ve Kod Blokları

Görsel: Yapay Zeka İş Görenlerinin Dinamik Yetenek Seçimini Temsil Eden Teknik Şema

Teknik Derinlik: Agent Skills Nasıl Çalışır?

Agent Skills protokolü, Aşamalı İfşa (Progressive Disclosure) prensibi üzerine kuruludur. Bu, modelin bilişsel yükünü optimize eden üç katmanlı bir süreçtir:

1. Dinamik Keşif (Metadata Layer)

Model, projenizdeki .github/skills dizinini tarar. Sadece skill.md dosyalarının en başındaki YAML metadata kısmını okur. Burada tanımlanan name ve description, ajanın hangi yeteneği ne zaman kullanacağına karar verdiği "etiket"lerdir.

2. Bağlamsal Yükleme (Activation Layer)

Kullanıcı "API'yi refactor et" dediğinde, ajan sadece bu işle ilgili yeteneğin talimatlarını hafızasına çeker. Diğer tüm yetenekler (UI tasarımı, veri analizi vb.) pasif kalır, böylece bağlam penceresi tertemiz kalır.

3. Kod Yürütme ve Araç Kullanımı (Execution Layer)

Bir yetenek sadece metin değildir. İçerisinde Python scriptleri veya komut satırı araçları (FFmpeg, Docker vb.) barındırabilir. Ajan, yetenek klasörü içindeki bu araçları yerel makinede güvenli bir şekilde çalıştırarak gerçek eylemler gerçekleştirir.

Bir Yeteneğin Anatomisi

Etkili bir skill.md dosyası oluşturmak için şu teknik yapı takip edilmelidir:

---
name: api_refactor_expert
description: "Express.js kodlarını Fastify mimarisine dönüştürmek ve performans optimizasyonu yapmak için kullanılır."
---

# Talimatlar
- Dönüşüm sırasında 'fastify-autoload' yapısını tercih et.
- Şema doğrulama için Joi yerine TypeBox kullan.

# Örnekler
[Girdi ve çıktı kod örnekleri buraya gelir]

Buradaki description alanı hayati önem taşır. Yapay zeka iş göreninin bu yeteneği seçmesi için bu açıklamanın çok net ve işlevsel olması gerekir.

VS Code Entegrasyonu ve Kurulum

Artık Insider sürümüne ihtiyaç duymadan, standart VS Code üzerinde Agent Skills yapısını kurabilirsiniz. Bunun için ana dizininizde şu yapıyı kurgulamanız yeterlidir:

  • .github/skills/
  • ├── pdf_manager/ (Yetenek Klasörü)
  • │   ├── skill.md (Talimatlar ve Metadata)
  • │   └── merge_pdf.py (Çalıştırılabilir Betik)
  • └── code_reviewer/
  •     └── skill.md

VS Code Settings (Ayarlar) kısmından "Chat: Use Agent Skills" aramasını yaparak özelliğin aktif olduğunu doğrulayabilirsiniz. Bu ayar aktif olduğunda, Copilot veya Claude tabanlı ajanlar otomatik olarak bu dizini taramaya başlar.

Neden Gelecek Bu Protokolde?

Agent Skills'i MCP (Model Context Protocol) ile kıyasladığımızda, en büyük avantajının "Sıfır Altyapı Maliyeti" olduğunu görüyoruz. MCP için bir sunucu yönetmeniz gerekirken, Agent Skills için sadece bir klasör yönetirsiniz.

Ayrıca, bu yetenekler projenizin bir parçası olduğu için Git (Versiyon Kontrol Sistemi) ile takip edilebilir. Takımınıza yeni katılan birine proje kurallarını anlatmak yerine, ona Agent Skills içeren bir depo (repository) teslim edersiniz ve yapay zeka asistanı o kuralları saniyeler içinde öğrenir.

Son Söz: Akıllı Asistandan Akıllı İş Görene

Agent Skills, yapay zeka ile etkileşimimizi kökten değiştiriyor. Artık modelleri sadece metinlerle beslemiyoruz; onlara gerçek dünyada iş yapabilecekleri birer "yetkinlik seti" kazandırıyoruz. VS Code'un bu protokolü standart hale getirmesi, bireysel geliştiriciler ve büyük yazılım ekipleri için verimlilikte devasa bir sıçrama anlamına geliyor.

Eğitimin tüm teknik detayları ve canlı uygulama demosu için YouTube videomuzu izlemeyi unutmayın!

Daha fazla teknik derinlik ve yapay zeka eğitimi için takipte kalın.

#MuratKarakayaAkademi #AgentSkills #VSCode #AIProgramming #YapayZekaİşGörenleri #AnthropicClaude #ModülerYazılım #KodlamaEğitimi

ECDD: Vibe Coding'den Yapısal Kodlamaya Geçiş

ECDD: Vibe Coding'den Yapısal Kodlamaya Geçiş

ECDD: Vibe Coding'den Yapısal Kodlamaya Geçiş

Murat Karakaya Akademi YouTube Kanalı Eğitim Özeti

Yazılım ve Yapay Zeka İşbirliği

Merhaba değerli okuyucular ve Murat Karakaya Akademi takipçileri! Bugün sizlere, yazılım dünyasında son dönemde sıkça duyduğumuz "Vibe Coding" kavramının ötesine geçen, kendi geliştirdiğim ve Explicit Context-Driven Development (ECDD) adını verdiğim yeni bir metodolojiyi tanıtacağım.

Günümüzde yapay zeka ile kod yazmak artık standart bir pratik haline geldi. Ancak çoğumuz bunu "sezgisel" yani sadece birkaç cümlelik istemlerle (prompt) yapıyoruz. Yapay zeka tahminlerde bulunuyor, biz deniyoruz, hata alıyoruz, tekrar deniyoruz... İşte ben buna "Vibe Coding" (Hissiyatla Kodlama) diyorum. ECDD ise bu süreci disipline eden, her adımın dokümante edildiği ve yapay zekanın "bağlam" (context) içerisinde hapsolmasını engelleyen yapısal bir yaklaşım.

Eğitimin Tamamını Buradan İzleyebilirsiniz:

Neden ECDD? Vibe Coding'in Sorunları

Yapay zeka modelleri (LLM'ler) geliştikçe, onlara verdiğimiz "Prompt Engineering" (Yönlendirme Mühendisliği) yerini "Context Engineering" (İçerik Mühendisliği) kavramına bıraktı. Çünkü modelin başarısı, ona ne kadar iyi komut verdiğinizden çok, o komutu hangi bağlamda sunduğunuzla ilgilidir.

Vibe Coding'in 3 Temel Sorunu:
  • Bağlam Penceresi (Context Window) Taşması: Proje büyüdükçe sohbet geçmişi şişer ve yapay zeka önceki kararları unutmaya başlar.
  • Tahmine Dayalı Geliştirme: Net isterler olmayınca yapay zeka benzer projelerden öğrendiklerini "uydurarak" kodlar.
  • Sürdürülebilirlik Eksikliği: Sohbet kapandığında veya yeni bir feature ekleneceğinde, her şeye en baştan başlamak zorunda kalırsınız.

ECDD, bu sorunları çözmek için Long-term Memory (Uzun Süreli Hafıza) konseptini getiriyor. Bunu "Artifacts" dediğimiz ara dokümanlar sayesinde sağlıyoruz.

ECDD'nin 5 Aşamalı İş Akışı

ECDD kütüphanesini kullanırken projeyi bir kerede değil, beş mantıksal aşamaya bölerek geliştiriyoruz. Bu sayede direksiyonun başında her zaman biz (insan) oluyoruz.

1. Proje Tanımlama (Define Project)

İlk adımda projenin ne olduğunu tek bir cümleyle ifade ediyoruz. /define komutu ile yapay zekaya bir şablon (template) veriyoruz. Yapay zeka bu şablonu kullanarak projenin teknik isterlerini, kullanıcı rollerini ve MVP kapsamını belirleyen bir project_definition.md dosyası oluşturuyor. Bu bizim projemizin anayasasıdır.

2. Planlama ve Yol Haritası (Plan Roadmap)

Tanımlama bittikten sonra /plan komutuyla projeyi iş paketlerine (Work Packages) bölüyoruz. Örneğin; Backend kurulumu, Frontend arayüzü gibi. Bu aşamada yapay zekaya "maksimum 2 iş paketi oluştur" gibi kısıtlar vererek süreci yönetebiliyoruz.

3. Detaylandırma (Elaborate)

Belirlenen her bir iş paketini tek tek detaylandırıyoruz. /elaborate work_package_1 dediğimizde, yapay zeka bu paketin acceptance kriterlerini, kullanılacak kütüphaneleri ve uygulama adımlarını içeren özel bir doküman hazırlar. Burada önemli olan, yapay zekanın sadece o pakete odaklanmasıdır.

4. Kapsam ve Kurallar (Scope)

Bu aşama ECDD'nin en kritik noktasıdır. /scope komutuyla şimdiye kadar oluşturulan tüm dokümanlar (Artifacts) taranır ve copilot_instructions.md dosyası oluşturulur. Bu dosya, VS Code içinde GitHub Copilot gibi araçlara "her zaman bu kurallara ve bağlama sadık kal" dememizi sağlar.

5. Uygulama (Implement)

Son aşamada /implement work_package_1 komutuyla kodlama başlar. Yapay zeka artık hazırladığımız tüm o dokümanları okuyarak, uydurmadan, bizim istediğimiz standartlarda kodu yazar. Kodlama bittiğinde log dosyalarını günceller ve süreci raporlar.

Canlı Uygulama: Yapay Zeka Sözlüğü

Eğitimde bu süreci somutlaştırmak için basit bir "AI Dictionary" uygulaması geliştirdik. Kullanıcının girdiği terimi Gemini API kullanarak açıklayan bir uygulama.

Uygulama sırasında yapay zekanın bazen eski kütüphane versiyonlarını kullanmaya çalıştığını gördük. ECDD'nin gücü burada devreye giriyor: Hemen araya girip fetch komutuyla güncel Gemini dokümanlarını iş paketine eklettik. İşte bu, yapay zekayı bir asistan olarak yönetmenin en iyi örneğidir.

"Yapay zeka ile kod yazarken otopilot değil, yardımcı pilot kullanın. Direksiyon her zaman sizde olsun."

Sonuç ve Gelecek

ECDD kütüphanesi şu an 1.0 versiyonunda ve açık kaynak olarak GitHub'da (KM Karakaya / ECDD) erişime açık. Bu metodoloji ile amacım, yazılım mühendisliği disiplinini yapay zeka destekli kodlama dünyasına entegre etmek.

Eğer siz de kaos içinde kod yazmaktan yorulduysanız, projelerinizi adım adım, dokümante ederek ve bağlamı kontrol altında tutarak geliştirmek istiyorsanız ECDD'yi mutlaka deneyin.

Daha fazla bilgi, soru ve cevap için YouTube kanalımızdaki yayını izleyebilir, sorularınızı yorumlarda belirtebilirsiniz. Kanala abone olmayı ve videoyu beğenmeyi unutmayın!

Murat Karakaya

Murat Karakaya Akademi & muratkarakaya.net

#MuratKarakayaAkademi #ECDD #YapayZekaKodlama #ContextEngineering #VibeCoding #SoftwareDevelopment #GitHubCopilot #GeminiAPI

Monday, June 9, 2025

Yapay Zeka ve Yazılım Mühendisliği Arasındaki İlişkiyi Yeniden Düşünmek

Merhaba değerli Murat Karakaya Akademi takipçileri,

Bu blog yazımızda, yapay zeka (YZ) ve yazılım mühendisliği arasındaki ilişkiyi ele alacağız. Bu konu, hem benim kendi içimde uzun süredir tartıştığım hem de farklı akademisyenlerle konuştuğum bir konu. Yapay zeka ve yazılım mühendisliği denildiğinde, aslında farklı şeyler anlaşılıyor ve bu durum kavram karmaşasına yol açabiliyor. Bu nedenle, bu ilişkiyi daha net bir şekilde ortaya koymak ve kavramları yerine oturtmak istedim.

Yapay zekanın yazılım mühendisliğinde kullanımı, diğer alanlara göre daha hızlı oldu. Bunun nedeni, yapay zekayı geliştirenlerin çoğunlukla bilgisayar mühendisleri ve yazılım mühendisleri olmasıdır. Yapay zekayla ilk çözülmek istenen problemler, genellikle yazılımcıların kendi karşılaştığı problemlerdi. Örneğin, kod yazma sürecini kolaylaştırmak veya yazılan kodlardaki hataları bulup düzeltmek gibi. Bu nedenle, yapay zekanın gelişimiyle yazılım mühendisliğinin gelişimi paralel bir şekilde ilerliyor. Diğer alanlar da yazılım mühendisliğindeki gelişmeleri takip ederek kendi alanlarına uygulamaya başlıyor. Örneğin, tıpta yapay zeka kullanımı çok önemli olsa da, yazılım mühendisliği tecrübelerinden faydalanarak bu alana aktarımlar yapılıyor.

Bu konuyu daha iyi inceleyebilmek için yapay zeka ve yazılım mühendisliği arasındaki ilişkiyi üç farklı boyutta ele alacağım:

  1. Yapay Zeka Amaçlı Geliştirilen Yazılımlar (AI-Driven Software Development)
  2. Yapay Zeka Destekli Yazılım Geliştirme (AI-Enhanced Software Development)
  3. Yapay Zeka Gömülü Yazılım Geliştirme (AI-Embedded Software Development)

Bu sınıflandırma, benim şu anki gözlemlerime dayanıyor ve bu üç boyutun, yazılım mühendisliği ile yapay zeka arasındaki ilişkiyi daha iyi anlamamızı sağlayacağını düşünüyorum. Bu içerikle, bu ilişkiye farklı bir açıdan bakmanızı umuyorum.

1. Yapay Zeka Amaçlı Geliştirilen Yazılımlar

Bu kategori, yapay zeka teorisini uygulamaya geçirmek için geliştirdiğimiz yazılımları ifade eder. Yani, yapay zekayı son kullanıcıya sunmaktan ziyade, yapay zeka kavramlarını kodlayarak yazılımlar oluşturmayı amaçlarız. Örneğin, kedi ve köpeği ayırt etmek için bir yazılım geliştirmek veya nesneleri tanıyabilen bir yazılım oluşturmak gibi. Bu tür yazılımlara "Yapay Zeka için Yazılım Geliştirme" veya doğrudan "Yapay Zeka Yazılım Geliştirmesi" de diyebiliriz. Amaç, yapay zekanın hedeflerine yönelik yazılımlar geliştirmektir.

Bu alana örnek olarak, büyük dil modellerini (LLM) verebiliriz. Büyük dil modellerinin arkasında, Transformer modeli gibi teoriler bulunur. Bu teorilerin kodlanması ve eğitilmesi, bu kategoriye girer. GPT-4 gibi modellerin geliştirilmesi, bu alandaki çalışmalara örnektir.

2. Yapay Zeka Destekli Yazılım Geliştirme

Bu boyutta, yapay zeka, yazılım geliştirme sürecini destekler. Yapay zeka, yazılım mühendislerinin verimliliğini artırmak, hataları azaltmak ve iş akışlarını kolaylaştırmak için kullanılır. Bu tür yazılımları geliştirmeye "Yapay Zeka ile Güçlendirilmiş Yazılım Geliştirme" de diyebiliriz. Bu, kod asistanları (GitHub Copilot, Amazon CodeWhisperer gibi) gibi araçları içerir. Amaç, yazılımcıların daha verimli ve üretken olmasını sağlamaktır.

Bu kategori, kod kalitesini artırmak, hataları bulup gidermek, test süreçlerini otomatik hale getirmek ve proje yönetimini desteklemek için kullanılan araçları kapsar. Çok ajanlı altyapılar (Multi-Agent Frameworks) da bu kategoriye örnek olarak verilebilir.

3. Yapay Zeka Gömülü Yazılım Geliştirme

Bu yaklaşım, yazılımlarımızın içine yapay zeka yeteneklerini entegre etmeyi ifade eder. Yazılımın daha zeki ve kullanıcı deneyiminin daha iyi olmasını sağlar. Örneğin, bir müşteri temsilcisinin sohbetini analiz ederek, kullanıcının sorularına daha akıllıca cevaplar vermek veya bir PDF dosyasındaki metni analiz ederek metnin kalitesini değerlendirmek gibi. Bu yaklaşım, kullanıcıların daha iyi bir deneyim yaşamasını, daha genel kod yazılmasını ve geliştirme süreçlerinin hızlanmasını sağlar. Bu tür yazılımlara "Yapay Zeka Gömülü Yazılım Geliştirme" denir.

Bu alanda, fonksiyon çağırma (function calling) gibi yöntemler ve çoklu ajan altyapıları kullanılabilir. Özellikle, kullanıcı arayüzleri ve kullanıcı deneyimi gibi alanlarda büyük bir potansiyele sahiptir.

  • Erişim destekli Metin Üretimi (RAG)
  • Yapısal Çıktı (Structurec Output)
  • Çoklu Yapay Zeka İşgörenleri (AI AGENTS)
  • Fonksyion Çağırma (Function Calling)

Bu üç boyutun geleceği, YZ'nin gelişimiyle birlikte şekillenecektir. Daha gelişmiş algoritmalar, daha büyük veri kümeleri ve daha güçlü donanımlar sayesinde, bu boyutların her birinde önemli gelişmeler beklenmektedir.

Gelecekte Yazılım Mühendislerini Neler Bekliyor?

Yapay zeka ve yazılım mühendisliğinin geleceği, bu üç boyutun etkileşimine bağlı olacaktır. Yazılım mühendisleri olarak, YZ teorilerini uygulamaya geçiren, YZ araçlarını etkin bir şekilde kullanan veya geliştirdikleri yazılımlara YZ'yi entegre eden yeteneklere sahip olmamız gerekecektir. Bu, yazılım mühendislerinin rolünün yeniden şekilleneceği anlamına geliyor. Mikser örneğinde olduğu gibi, bazı görevler otomatikleşebilirken, yazılımcıların yeni beceriler kazanması ve daha karmaşık projelere odaklanması gerekecektir. Özellikle, YZ sistemlerinin tasarımı, geliştirilmesi, uygulanması ve bakımı konusunda uzmanlaşmak, yazılım mühendisleri için önemli bir avantaj sağlayacaktır.

Gelecekte yazılım mühendislerinin, YZ'nin etik yönlerini de dikkate almaları gerekecektir. Veri gizliliği, önyargıların ortadan kaldırılması ve yapay zeka sistemlerinin şeffaflığı gibi konular, yazılım mühendislerinin sorumluluğunda olacaktır. Ayrıca, farklı disiplinlerden uzmanlarla işbirliği yaparak, daha kapsamlı ve etkili çözümler üretmeleri gerekecektir.

Sizin Fikirleriniz ve Katkılarınız

Bu tartışmayı daha da zenginleştirmek için sizlerin de fikirlerini ve deneyimlerini duymak istiyorum. Yazılım mühendisliği alanında çalışan veya bu alana ilgi duyan herkesin görüşleri benim için değerli. Lütfen düşüncelerinizi, önerilerinizi ve sorularınızı yorumlar kısmında paylaşmaktan çekinmeyin.


🎥 Murat Karakaya Akademi YouTube Kanalı'ndaki Tamamını İzleyin

Yapay Zeka ve Yazılım Mühendisliği İlişkisi

👉 Tam eğitimi izlemek için buraya tıklayın: YouTube'da İzle