diff --git a/units/tr/_toctree.yml b/units/tr/_toctree.yml
new file mode 100644
index 000000000..90a8e9e85
--- /dev/null
+++ b/units/tr/_toctree.yml
@@ -0,0 +1,148 @@
+- title: Ünite 0. Kursa Hoş Geldiniz
+ sections:
+ - local: unit0/introduction
+ title: 🤗 AI Agent (Yapay Zeka Ajanı) Kursuna Hoş Geldiniz
+ - local: unit0/onboarding
+ title: Kurulum, İlk Adımlarınız ⛵
+ - local: unit0/discord101
+ title: (İsteğe Bağlı) Discord 101
+- title: Canlı Yayın 1. Kurs nasıl işler ve Soru & Cevap
+ sections:
+ - local: communication/live1
+ title: Canlı Yayın 1. Kurs nasıl işler ve Soru & Cevap
+- title: Ünite 1. Ajanlara Giriş
+ sections:
+ - local: unit1/introduction
+ title: Giriş
+ - local: unit1/what-are-agents
+ title: Agent (Ajan) Nedir?
+ - local: unit1/quiz1
+ title: Sınav 1
+ - local: unit1/what-are-llms
+ title: LLM (Büyük Dil Modelleri) Nedir?
+ - local: unit1/messages-and-special-tokens
+ title: Mesajlar ve Özel Belirteçler (Tokens)
+ - local: unit1/tools
+ title: Tools (Araçlar) Nedir?
+ - local: unit1/quiz2
+ title: Sınav 2
+ - local: unit1/agent-steps-and-structure
+ title: Düşünce-Eylem-Gözlem Döngüsüyle Yapay Zeka Ajanlarını Anlamak
+ - local: unit1/thoughts
+ title: Düşünce, İçsel Akıl Yürütme ve Re-Act (Yeniden Eylem) Yaklaşımı
+ - local: unit1/actions
+ title: Eylemler: Ajanın Çevresiyle Etkileşime Geçmesini Sağlama
+ - local: unit1/observations
+ title: Gözlemle, Geri Bildirimi Yansıtmak ve Uyum Sağlamak
+ - local: unit1/dummy-agent-library
+ title: Sahte Ajan Kütüphanesi
+ - local: unit1/tutorial
+ title: smolagents Kullanarak İlk Ajanımızı Oluşturalım
+ - local: unit1/final-quiz
+ title: Ünite 1 Final Sınavı
+ - local: unit1/conclusion
+ title: Sonuç
+- title: Ünite 2. Yapay Zeka Ajanları için Frameworkler
+ sections:
+ - local: unit2/introduction
+ title: Yapay Zeka Ajanları için Frameworkler
+- title: Ünite 2.1 smolagents Frameworkü
+ sections:
+ - local: unit2/smolagents/introduction
+ title: smolagents'a Giriş
+ - local: unit2/smolagents/why_use_smolagents
+ title: Neden smolagents Kullanmalıyız?
+ - local: unit2/smolagents/quiz1
+ title: Sınav 1
+ - local: unit2/smolagents/code_agents
+ title: Kod Kullanan Agent'lar Oluşturma
+ - local: unit2/smolagents/tool_calling_agents
+ title: Eylemleri Kod Parçacıkları veya JSON Blokları Olarak Yazma
+ - local: unit2/smolagents/tools
+ title: Tools (Araçlar)
+ - local: unit2/smolagents/retrieval_agents
+ title: Retrieval (Alma) Ajanları
+ - local: unit2/smolagents/quiz2
+ title: Sınav 2
+ - local: unit2/smolagents/multi_agent_systems
+ title: Çoklu Ajan Sistemleri
+ - local: unit2/smolagents/vision_agents
+ title: Görüntü ve Tarayıcı Ajanları
+ - local: unit2/smolagents/final_quiz
+ title: Final Sınavı
+ - local: unit2/smolagents/conclusion
+ title: Sonuç
+- title: Ünite 2.2 LlamaIndex Frameworkü
+ sections:
+ - local: unit2/llama-index/introduction
+ title: LlamaIndex'e Giriş
+ - local: unit2/llama-index/llama-hub
+ title: LlamaHub'a Giriş
+ - local: unit2/llama-index/components
+ title: LlamaIndex'teki Bileşenler Nedir?
+ - local: unit2/llama-index/tools
+ title: LlamaIndex'te Tools (Araç) Kullanımı
+ - local: unit2/llama-index/quiz1
+ title: Sınav 1
+ - local: unit2/llama-index/agents
+ title: LlamaIndex'te Ajan Kullanımı
+ - local: unit2/llama-index/workflows
+ title: LlamaIndex'te Ajantik İş Akışları Oluşturma
+ - local: unit2/llama-index/quiz2
+ title: Sınav 2
+ - local: unit2/llama-index/conclusion
+ title: Sonuç
+- title: Ünite 2.3 LangGraph Frameworkü
+ sections:
+ - local: unit2/langgraph/introduction
+ title: LangGraph'a Giriş
+ - local: unit2/langgraph/when_to_use_langgraph
+ title: LangGraph Nedir?
+ - local: unit2/langgraph/building_blocks
+ title: LangGraph'ın Yapı Taşları
+ - local: unit2/langgraph/first_graph
+ title: İlk LangGraph'ınızı Oluşturma
+ - local: unit2/langgraph/document_analysis_agent
+ title: Belge Analiz Grafiği
+ - local: unit2/langgraph/quiz1
+ title: Sınav 1
+ - local: unit2/langgraph/conclusion
+ title: Sonuç
+- title: Ünite 3. Ajantik RAG (Almayla Artırılmış Üretim) Kullanım Örneği
+ sections:
+ - local: unit3/agentic-rag/introduction
+ title: Ajantik RAG (Almayla Artırılmış Üretim) Kullanım Örneğine Giriş
+ - local: unit3/agentic-rag/agentic-rag
+ title: Ajantik RAG (Almayla Artırılmış Üretim)
+ - local: unit3/agentic-rag/invitees
+ title: Misafir Hikayeleri için RAG (Almayla Artırılmış Üretim) Aracı Oluşturma
+ - local: unit3/agentic-rag/tools
+ title: Ajanınız için Araçlar Oluşturma ve Entegre Etme
+ - local: unit3/agentic-rag/agent
+ title: Gala Ajanınızı Oluşturma
+ - local: unit3/agentic-rag/conclusion
+ title: Sonuç
+- title: Bonus Ünite 1. Function-calling için bir LLM'nin fine-tuning (ince-ayar) Edilmesi
+ sections:
+ - local: bonus-unit1/introduction
+ title: Giriş
+ - local: bonus-unit1/what-is-function-calling
+ title: Function Calling (Fonksiyon Çağırma) Nedir?
+ - local: bonus-unit1/fine-tuning
+ title: Function Calling için Modelinizin İnce-Ayarını Yapalım
+ - local: bonus-unit1/conclusion
+ title: Sonuç
+- title: Bonus Ünite 2. Ajan Gözlemlenebilirliği ve Değerlendirmesi
+ sections:
+ - local: bonus-unit2/introduction
+ title: Giriş
+ - local: bonus-unit2/what-is-agent-observability-and-evaluation
+ title: Ajan Gözlemlenebilirliği ve Değerlendirmesi Nedir?
+ - local: bonus-unit2/monitoring-and-evaluating-agents-notebook
+ title: Ajanları İzleme ve Değerlendirme
+ - local: bonus-unit2/quiz
+ title: Sınav
+- title: Bir Sonraki Adımlar Ne Zaman Yayınlanacak?
+ sections:
+ - local: communication/next-units
+ title: Sonraki Üniteler
diff --git a/units/tr/communication/live1.mdx b/units/tr/communication/live1.mdx
new file mode 100644
index 000000000..2a9fa4a64
--- /dev/null
+++ b/units/tr/communication/live1.mdx
@@ -0,0 +1,7 @@
+# Canlı Yayın 1: Kursun İşleyişi ve İlk Soru & Cevap (Q&A)
+
+Bu AI Agent (Yapay Zeka Ajanı) Kursunun ilk canlı yayınında, kursun **nasıl işlediğini** (kapsam, üniteler, meydan okumalar ve daha fazlası) açıkladık ve sorularınızı yanıtladık.
+
+
+
+Bir sonraki canlı yayının ne zaman olacağını öğrenmek için **Discord sunucumuza** göz atın. Size ayrıca bir e-posta da göndereceğiz. Katılamazsanız endişelenmeyin, **tüm canlı yayınları kaydediyoruz**.
diff --git a/units/tr/communication/next-units.mdx b/units/tr/communication/next-units.mdx
new file mode 100644
index 000000000..6138669cd
--- /dev/null
+++ b/units/tr/communication/next-units.mdx
@@ -0,0 +1,9 @@
+# Sonraki Üniteler Ne Zaman Yayınlanacak?
+
+İşte yayın takvimi:
+
+
+
+Kursa kaydolmayı unutmayın! Kaydolduğunuzda, **her bir ünite yayınlandıkça size bağlantılarını, yaklaşan meydan okumalarla (challenges) ilgili güncellemeleri ve detayları gönderebiliriz**.
+
+Öğrenmeye devam edin, harika kalın 🤗
diff --git a/units/tr/unit0/discord101.mdx b/units/tr/unit0/discord101.mdx
new file mode 100644
index 000000000..2790371bc
--- /dev/null
+++ b/units/tr/unit0/discord101.mdx
@@ -0,0 +1,52 @@
+# (İsteğe Bağlı) Discord 101 [[discord-101]]
+
+
+
+Bu rehber, oyun ve ML topluluklarında popüler olan ücretsiz bir sohbet platformu olan Discord'u kullanmaya başlamanıza yardımcı olmak için tasarlanmıştır.
+
+**100.000'den fazla üyesi olan** Hugging Face Topluluğu Discord sunucusuna buraya tıklayarak katılın. Başkalarıyla bağlantı kurmak için harika bir yer!
+
+## Hugging Face'in Discord Topluluğunda Agent (Ajan) Kursu
+
+Discord'a başlamak biraz bunaltıcı olabilir, bu yüzden gezinmenize yardımcı olacak hızlı bir rehber hazırladık.
+
+
+
+HF Topluluk Sunucusu, çeşitli alanlarda ilgi duyan canlı bir topluluğa ev sahipliği yaparak makale tartışmaları, etkinlikler ve daha fazlası aracılığıyla öğrenme fırsatları sunmaktadır.
+
+[Kaydolduktan](http://hf.co/join/discord) sonra `#introduce-yourself` kanalında kendinizi tanıtın.
+
+Ajan Kursu için 4 kanal oluşturduk:
+
+- `agents-course-announcements`: **en son kurs bilgileri** için.
+- `🎓-agents-course-general`: **genel tartışmalar ve sohbet** için.
+- `agents-course-questions`: **soru sormak ve sınıf arkadaşlarınıza yardım etmek** için.
+- `agents-course-showcase`: **en iyi ajanlarınızı göstermek** için.
+
+Ek olarak şu kanalı kontrol edebilirsiniz:
+
+- `smolagents`: **kütüphane hakkında tartışma ve destek** için.
+
+## Discord'u etkili kullanma ipuçları
+
+### Bir sunucuya nasıl katılınır
+
+Discord'a daha az aşina iseniz, bir sunucuya nasıl katılacağınızla ilgili bu rehberi incelemek isteyebilirsiniz.
+
+İşte adımların hızlı bir özeti:
+
+1. Davet Bağlantısına tıklayın.
+2. Discord hesabınızla giriş yapın veya hesabınız yoksa bir hesap oluşturun.
+3. Yapay zeka ajanı olmadığınızı doğrulayın!
+4. Takma adınızı ve avatarınızı ayarlayın.
+5. "Join Server" (Sunucuya Katıl) düğmesine tıklayın.
+
+### Discord'u etkili bir şekilde nasıl kullanırsınız
+
+İşte Discord'u etkili bir şekilde kullanmak için birkaç ipucu:
+
+- **Sesli kanallar** mevcuttur, ancak metin sohbeti daha yaygın olarak kullanılır.
+- Metni **markdown tarzında** biçimlendirebilirsiniz, bu özellikle kod yazmak için kullanışlıdır. Markdown'un bağlantılar için o kadar iyi çalışmadığını unutmayın.
+- Tartışmaları düzenli tutmak için **uzun konuşmalar** için diziler (thread) açmayı düşünün.
+
+Umarız bu rehberi faydalı bulursunuz! Herhangi bir sorunuz varsa, Discord'da bize sormaktan çekinmeyin 🤗.
diff --git a/units/tr/unit0/introduction.mdx b/units/tr/unit0/introduction.mdx
new file mode 100644
index 000000000..29b6a7455
--- /dev/null
+++ b/units/tr/unit0/introduction.mdx
@@ -0,0 +1,185 @@
+# 🤗 AI Agent (Yapay Zeka Ajanı) Kursuna Hoş Geldiniz [[introduction]]
+
+
+
+
+## Sertifika Süreci [[certification-process]]
+
+
+
+Bu kursu *inceleme modunda* takip etmeyi veya etkinlikleri yapmayı ve *vereceğimiz iki sertifikadan birini almayı* seçebilirsiniz.
+
+Kursu incelerseniz, istediğiniz tüm zorluklara katılabilir ve ödevleri yapabilirsiniz ve **bize bildirmenize gerek yoktur**.
+
+Sertifika süreci **tamamen ücretsizdir**:
+
+- *Temel bilgiler için sertifika almak için*: kursun 1. Ünitesini tamamlamanız gerekir. Bu, Ajanlardaki en son trendlerle güncel kalmak isteyen öğrenciler için tasarlanmıştır.
+- *Tamamlama sertifikası almak için*: Ünite 1'i, kurs boyunca önereceğimiz kullanım durumu ödevlerinden birini ve final görevini tamamlamanız gerekir.
+
+Sertifika süreci için bir son tarih var: tüm ödevler **1 Mayıs 2025** tarihine kadar bitmiş olmalıdır.
+
+
+
+## Önerilen ilerleme hızı nedir? [[recommended-pace]]
+
+Bu kurstaki her bölüm, **haftalık olarak yaklaşık 3-4 saatlik çalışma ile 1 haftada tamamlanacak şekilde** tasarlanmıştır.
+
+Bir son tarih olduğu için, size önerilen bir ilerleme hızı sunuyoruz:
+
+
+
+## Kurstan en iyi şekilde nasıl yararlanabilirsiniz? [[advice]]
+
+Kurstan en iyi şekilde yararlanmak için bazı önerilerimiz var:
+
+1. Discord'da çalışma gruplarına katılın: gruplar halinde çalışmak her zaman daha kolaydır. Bunu yapmak için discord sunucumuza katılmanız ve Hugging Face hesabınızı doğrulamanız gerekiyor.
+2. **Sınavları ve ödevleri yapın**: öğrenmenin en iyi yolu uygulamalı deneyim ve kendi kendini değerlendirmedir.
+3. **Senkronize kalmak için bir program belirleyin**: aşağıdaki önerilen ilerleme programımızı kullanabilir veya kendinizinkini oluşturabilirsiniz.
+
+
+
+## Biz kimiz [[who-are-we]]
+
+Yazarlar hakkında:
+
+### Joffrey Thomas
+
+Joffrey, Hugging Face'te bir makine öğrenimi mühendisidir ve üretimde Yapay Zeka Ajanlarını oluşturmuş ve dağıtmıştır. Joffrey bu kurs için ana eğitmeniniz olacak.
+
+- [Hugging Face'te Joffrey'i takip edin](https://huggingface.co/Jofthomas)
+- [X'te Joffrey'i takip edin](https://x.com/Jthmas404)
+- [Linkedin'de Joffrey'i takip edin](https://www.linkedin.com/in/joffrey-thomas/)
+
+### Ben Burtenshaw
+
+Ben, Hugging Face'te bir makine öğrenimi mühendisidir ve çeşitli platformlarda birden fazla kurs vermiştir. Ben'in amacı kursu herkes için erişilebilir kılmaktır.
+
+- [Hugging Face'te Ben'i takip edin](https://huggingface.co/burtenshaw)
+- [X'te Ben'i takip edin](https://x.com/ben_burtenshaw)
+- [Linkedin'de Ben'i takip edin](https://www.linkedin.com/in/ben-burtenshaw/)
+
+### Thomas Simonini
+
+Thomas, Hugging Face'te bir makine öğrenimi mühendisidir ve başarılı Deep RL ve ML for games kurslarını vermiştir. Thomas büyük bir Ajan hayranıdır ve topluluğun ne oluşturacağını görmek için heyecanlıdır.
+
+- [Hugging Face'te Thomas'ı takip edin](https://huggingface.co/ThomasSimonini)
+- [X'te Thomas'ı takip edin](https://x.com/ThomasSimonini)
+- [Linkedin'de Thomas'ı takip edin](https://www.linkedin.com/in/simoninithomas/)
+
+
+### Sergio Paniego
+
+Hevesli bir topluluk üyesi olarak, Sergio Ünite 2 ve 3'e birçok bölüm ve birçok küçük PR ve inceleme katkısında bulundu. Teşekkürler, Sergio! 🙌
+
+- [Hugging Face'te Sergio'yu takip edin](https://huggingface.co/sergiopaniego)
+- [X'te Sergio'yu takip edin](https://x.com/sergiopaniego)
+- [Linkedin'de Sergio'yu takip edin](https://www.linkedin.com/in/sergio-paniego-blanco/)
+
+## Teşekkürler
+
+Bu kursa olan paha biçilmez katkılarından dolayı aşağıdaki kişilere teşekkürlerimizi sunarız:
+
+- **[Pedro Cuenca](https://huggingface.co/pcuenq)** – Materyalleri gözden geçirmedeki rehberliği ve uzmanlığı için.
+- **[Aymeric Roucher](https://huggingface.co/m-ric)** – Harika demo spaces (çözümleme ve final Ajan) ve smolagents bölümlerindeki yardımları için.
+- **[Joshua Lochner](https://huggingface.co/Xenova)** – Belirteçleme (tokenizasyon) üzerine harika demo space'i için.
+- **[Quentin Gallouédec](https://huggingface.co/qgallouedec)** – Kurs içeriğindeki yardımları için.
+- **[David Berenstein](https://huggingface.co/davidberenstein1957)** – Kurs içeriği ve moderasyondaki yardımları için.
+- **[XiaXiao (ShawnSiao)](https://huggingface.co/SSSSSSSiao)** – Kurs için Çince çevirmen.
+- **[Jiaming Huang](https://huggingface.co/nordicsushi)** – Kurs için Çince çevirmen.
+
+## Bir hata buldum veya kursu geliştirmek istiyorum [[contribute]]
+
+Katkılar **hoş karşılanır** 🤗
+
+- *Bir notebook'ta bir hata 🐛 bulduysanız*, lütfen bir sorun açın ve **sorunu tanımlayın**.
+- *Kursu geliştirmek istiyorsanız*, bir Pull Request açabilirsiniz.
+- *Tam bir bölüm veya yeni bir ünite eklemek istiyorsanız*, en iyisi bir sorun açmak ve **yazmaya başlamadan önce ne tür bir içerik eklemek istediğinizi tanımlamaktır, böylece size rehberlik edebiliriz**.
+
+## Hala sorularım var [[questions]]
+
+Lütfen sorunuzu discord sunucumuz #ai-agents-discussions. kanalında sorun.
+
+Artık tüm bilgilere sahip olduğunuza göre, hadi başlayalım ⛵
+
+
diff --git a/units/tr/unit0/onboarding.mdx b/units/tr/unit0/onboarding.mdx
new file mode 100644
index 000000000..976b62e12
--- /dev/null
+++ b/units/tr/unit0/onboarding.mdx
@@ -0,0 +1,90 @@
+
+# Kurulum: İlk Adımlarınız ⛵
+
+
+
+Artık tüm detaylara sahip olduğunuza göre, başlayalım! Dört şey yapacağız:
+
+1. **Hugging Face hesabınızı oluşturun** (henüz yapmadıysanız)
+2. **Discord’a kaydolun ve kendinizi tanıtın** (çekinmeyin 🤗)
+3. **Hub üzerinde Hugging Face Ajanlar Kursunu** (Hugging Face Ajanlar Kursu) takip edin
+4. **Kurstan bahsedin** ve yayılmasına yardımcı olun
+
+### Adım 1: Hugging Face Hesabınızı Oluşturun
+
+(Henüz yapmadıysanız) Hugging Face hesabınızı buradan oluşturun.
+
+### Adım 2: Discord Topluluğumuza Katılın
+
+👉🏻 Discord sunucumuza buradan katılın.
+
+Katıldığınızda, `#introduce-yourself` kanalında kendinizi tanıtmayı unutmayın.
+
+Birden fazla AI Agent (Yapay Zeka Ajanı) ile ilgili kanalımız var:
+- `agents-course-announcements`: **en güncel kurs bilgileri** için.
+- `🎓-agents-course-general`: **genel tartışmalar ve sohbetler** için.
+- `agents-course-questions`: **soru sormak ve arkadaşlarınıza yardımcı olmak** için.
+- `agents-course-showcase`: **en iyi ajanlarınızı paylaşmak** için.
+
+Ayrıca şunlara da göz atabilirsiniz:
+
+- `smolagents`: **kütüphane ile ilgili destek ve tartışmalar** için.
+
+Discord'u ilk kez kullanıyorsanız, en iyi uygulamaları öğrenmek için bir Discord 101 rehberi yazdık. [Sonraki bölüme](discord101) göz atın.
+
+### Adım 3: Hugging Face Ajan Kursu Organizasyonunu Takip Edin
+
+En güncel kurs materyallerini, güncellemeleri ve duyuruları takipte kalmak için **Hugging Face Ajan Kurs Organizasyonunu takip edin**.
+
+👉 Buraya gidin ve **follow (takip et)** butonuna tıklayın.
+
+
+
+### Adım 4: Kurstan Bahsedin
+
+Bu kursun daha fazla kişiye ulaşmasına yardım edin! İki şekilde destek olabilirsiniz:
+
+1. Yıldız ⭐ ile kursun GitHub reposunu destekleyin.
+
+
+
+2. Öğrenme Yolculuğunuzu Paylaşın: **Bu kursu aldığınızı başkalarına duyurun!** Sosyal medya paylaşımlarınızda kullanabileceğiniz bir görsel hazırladık.
+
+
+
+Görseli indirmek için 👉 [buraya tıklayın](https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/communication/share.png?download=true)
+
+### Adım 5: Modelleri Ollama ile Yerelde Çalıştırmak (Kredi limitine takılırsanız)
+
+1. **Ollama'yı Kurun**
+
+ Resmi talimatları buradan takip edin.
+
+2. **Bir modeli yerele çekin**
+
+```bash
+ ollama pull qwen2:7b # Daha fazla model için ollama web sitesine göz atın
+```
+3. **Ollama'yı arka planda başlatın (Bir terminalde)**
+```bash
+ ollama serve
+```
+4. **`HfApiModel` yerine `LiteLLMModel` kullanın**
+``` bash
+ from smolagents import LiteLLMModel
+
+ model = LiteLLMModel(
+ model_id="ollama_chat/qwen2:7b", # Veya Ollama tarafından desteklenen diğer modelleri deneyin
+ api_base="http://127.0.0.1:11434", # Varsayılan Ollama yerel sunucusu
+ num_ctx=8192,
+ )
+```
+
+5. **Bu neden işe yarıyor?**
+- Ollama, modelleri http://localhost:11434 adresinde OpenAI ile uyumlu bir API kullanarak yerelde sunar.
+- LiteLLMModel, OpenAI chat/completion API formatını destekleyen herhangi bir modelle iletişim kurmak için tasarlanmıştır.
+- Bu, HfApiModel yerine doğrudan LiteLLMModel kullanabileceğiniz anlamına gelir — başka hiçbir kod değişikliği gerekmez. Bu, sorunsuz, tak ve çalıştır bir çözümdür.
+
+Tebrikler! 🎉 **Kurulum sürecini tamamladınız!** Artık AI Agent (Yapay Zeka Ajanı) dünyasını öğrenmeye hazırsınız. İyi eğlenceler!
+
+Öğrenmeye devam edin, harika kalın 🤗
\ No newline at end of file
diff --git a/units/tr/unit1/README.md b/units/tr/unit1/README.md
new file mode 100644
index 000000000..309db3f5b
--- /dev/null
+++ b/units/tr/unit1/README.md
@@ -0,0 +1,19 @@
+# İçindekiler
+
+Ünite 1'e hf.co/learn üzerinden erişebilirsin 👉 buraya tıkla
+
+
diff --git a/units/tr/unit1/actions.mdx b/units/tr/unit1/actions.mdx
new file mode 100644
index 000000000..821a91217
--- /dev/null
+++ b/units/tr/unit1/actions.mdx
@@ -0,0 +1,146 @@
+# Eylemler: Ajanın Çevresiyle Etkileşime Geçmesini Sağlama
+
+
+
+Bu yöntemin birçok avantajı vardır:
+
+- **İfade Gücü:** Kod; döngüler, koşullu ifadeler ve iç içe fonksiyonlar gibi karmaşık mantıkları doğal şekilde ifade edebilir. Bu, JSON’a kıyasla daha esnek bir yapı sunar.
+- **Modülerlik ve Yeniden Kullanılabilirlik:** Oluşturulan kod, farklı görevlerde tekrar kullanılabilecek fonksiyonlar ve modüller içerebilir.
+- **Kolay Hata Ayıklama:** Kod sözdizimi iyi tanımlanmış olduğu için hataları tespit etmek ve düzeltmek daha kolaydır.
+- **Doğrudan Entegrasyon:** Kod Ajanları, dış kütüphaneler ve API'lerle doğrudan entegre olabilir. Bu da veri işleme veya gerçek zamanlı karar alma gibi daha karmaşık işlemleri mümkün kılar.
+
+Örneğin, hava durumunu sorgulaması gereken bir Kod Ajanı şu Python kodunu üretebilir:
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+# Kod Ajanı Örneği: Hava Durumu Bilgisi Al
+def get_weather(city):
+ import requests
+ api_url = f"https://api.weather.com/v1/location/{city}?apiKey=YOUR_API_KEY"
+ response = requests.get(api_url)
+ if response.status_code == 200:
+ data = response.json()
+ return data.get("hava durumu", "Hava durumu bilgisi bulunamadı.")
+ else:
+ return "Hata: Hava durumu verileri alınamıyor."
+
+# Fonksiyonu çalıştır ve nihai cevabı hazırla
+result = get_weather("New York")
+final_answer = f"New York'taki güncel hava durumu: {result}"
+print(final_answer)
+```
+
+
+
+Önceki bölümlerde şunları öğrendik:
+
+- **Araçların (Tools) sistem mesajında Ajanlara nasıl sunulduğunu**.
+- **AI Ajanların 'akıl yürütebilen', plan yapabilen ve çevreleriyle etkileşim kurabilen sistemler olduğunu**.
+
+Bu bölümde, **Yapay Zeka Ajanı iş akışının tamamını keşfedeceğiz**, bu döngüyü Düşünce-Eylem-Gözlem (Thought-Action-Observation) olarak tanımladık.
+
+Sonrasında, bu adımların her birine daha derinlemesine dalacağız.
+
+
+## Temel Bileşenler
+
+Ajanlar şu sürekli döngüde çalışır: **düşünce (Thought) → eylem (Act) → gözlem (Observe)**.
+
+Bu adımları birlikte inceleyelim:
+
+1. **Thought (Düşünce):** Ajanın LLM (büyük dil modelleri) kısmı bir sonraki adımın ne olması gerektiğine karar verir.
+2. **Action (Eylem):** Ajan, ilişkili argümanlarla araçları çağırarak bir eylem gerçekleştirir.
+3. **Observation (Gözlem):** Model, araçtan gelen yanıtı değerlendirir.
+
+## Düşünce-Eylem-Gözlem Döngüsü
+
+Bu üç bileşen, sürekli bir döngü içinde birlikte çalışır. Programlamadan bir benzetme yapmak gerekirse, Ajan bir **while döngüsü** kullanır: döngü, Ajanın amacı gerçekleşene kadar devam eder.
+
+Görsel olarak şu şekilde görünür:
+
+
+
+Birçok Ajan framework'ünde, **kurallar ve yönergeler sistem mesajına doğrudan gömülür**, böylece her döngü belirlenmiş bir mantığa uyar.
+
+Basitleştirilmiş bir versiyonda, sistem mesajımız şu şekilde olabilir:
+
+
+
+Burada Sistem Mesajı'nda şunları tanımladığımızı görüyoruz:
+
+- *Ajanın davranışı*.
+- *Ajanımızın erişebileceği Araçlar (Tools)* – bunu önceki bölümde açıklamıştık.
+- *Düşünce-Eylem-Gözlem Döngüsü* – LLM talimatlarına dahil ettiğimiz yapı.
+
+Süreci daha iyi anlamak için küçük bir örnek üzerinden geçelim.
+
+## Alfred, hava durumu Ajanı
+
+Alfred adında bir hava durumu Ajanı oluşturduk.
+
+Bir kullanıcı Alfred'e soruyor: "New York'ta şu an hava durumu nasıl?"
+
+
+
+Alfred'in görevi bu soruya bir hava durumu API aracı kullanarak cevap vermek.
+
+Döngü şu şekilde işliyor:
+
+### Thought (Düşünce)
+
+**İçsel Akıl Yürütme:**
+
+Alfred bu sorguyu alınca içsel olarak şöyle düşünebilir:
+
+*"Kullanıcının New York için güncel hava durumu bilgisine ihtiyacı var. Hava durumu verisi getiren bir araca erişimim var. Öncelikle güncel bilgileri almak için hava durumu API'sini çağırmam gerekiyor."*
+
+Bu adım, Ajanın problemi adım adım çözdüğünü gösterir: öncelikle gerekli veriyi toplamak.
+
+
+
+### Action (Eylem)
+
+**Araç Kullanımı:**
+
+Alfred, `get_weather` aracını bildiği için, içsel düşüncesine dayanarak hava durumu API aracını çağıran JSON formatında bir komut hazırlar. Örneğin, ilk eylemi şu olabilir:
+
+Düşünce: New York için güncel hava durumunu kontrol etmem gerekiyor.
+
+Türkçe çeviriyi görmek için tıklayın
+
+```
+{
+ "eylem": "get_weather",
+ "eylem_girdisi": {
+ "lokasyon": "New York"
+ }
+}
+```
+
+
+### Observation (Gözlem)
+
+**Çevreden Geri Bildirim:**
+
+Araç çağrısının ardından Alfred bir gözlem alır. Bu, API'den gelen ham hava durumu verisi olabilir:
+
+*"New York'ta şu anki hava durumu: parçalı bulutlu, 15°C, %60 nem."*
+
+
+
+Bu gözlem daha sonra sistem mesajına bağlam olarak eklenir. Gerçek dünya geri bildirimi işlevi görür, eylemin başarılı olup olmadığını doğrular ve gerekli ayrıntıları sağlar.
+
+### Güncellenmiş düşünce
+
+**Yansıtma:**
+
+Alfred gözlemi aldıktan sonra içsel akıl yürütmesini günceller:
+
+*"Artık New York için hava durumu verilerine sahibim, kullanıcıya bir cevap derleyebilirim."*
+
+
+
+### Son Eylem
+
+Ardından Alfred, kendisine söylenen şekilde biçimlendirilmiş nihai yanıtı üretir:
+
+Düşünce: Artık hava durumu verilerine sahibim. New York'ta şu anki hava durumu parçalı bulutlu, sıcaklık 15°C ve nem oranı %60.
+
+Nihai cevap: New York'ta şu anki hava durumu parçalı bulutlu, sıcaklık 15°C ve nem oranı %60.
+
+Bu son eylem, cevabı kullanıcıya geri gönderir ve döngüyü tamamlar.
+
+
+
+Bu örnekte gördüğümüz şeyler:
+
+- **Ajanlar, amaç gerçekleşene kadar döngü içinde ilerler:**
+
+**Alfred'in süreci döngüseldir.** Düşünceyle başlar, bir araç çağırarak eyleme geçer ve ardından sonucu gözlemler. Eğer gözlem hata ya da eksik veri içeriyor olsaydı, Alfred döngüye tekrar girip yaklaşımını düzeltebilirdi.
+
+- **Araç Entegrasyonu:**
+
+Bir aracın (örneğin, hava durumu API'si) çağrılabilmesi, Alfred'in **sabit bilginin ötesine geçip gerçek zamanlı veri alabilmesini** sağlar – bu birçok Yapay Zeka Ajanı için temel bir yetenektir.
+
+- **Dinamik Uyum Sağlama:**
+
+Her döngü, Ajanın akıl yürütmesine (düşünce - thought) yeni bilgi (gözlem - observation) eklemesine olanak tanır, bu da sonucun daha doğru ve anlamlı olmasını sağlar.
+
+Bu örnek, *ReAct (Reason & Act - Neden & Eylem) döngüsünün* temelini gözler önüne serer (bir sonraki bölümde bu kavramı geliştireceğiz): **Düşünce, Eylem ve Gözlem arasındaki etkileşim, Yapay Zeka Ajanlarının karmaşık görevleri döngüsel olarak çözmesini sağlar**.
+
+Bu ilkeleri anlayarak ve uygulayarak, sadece görevleri hakkında akıl yürüten değil, aynı zamanda **harici araçları etkili şekilde kullanabilen ve çevresel geri bildirimlerle çıktısını sürekli olarak iyileştiren Ajanlar tasarlayabilirsiniz.**
+
+---
+
+Şimdi Düşünce, Eylem, Gözlem adımlarını tek tek daha derinlemesine inceleyelim.
diff --git a/units/tr/unit1/conclusion.mdx b/units/tr/unit1/conclusion.mdx
new file mode 100644
index 000000000..df5e6d5d5
--- /dev/null
+++ b/units/tr/unit1/conclusion.mdx
@@ -0,0 +1,19 @@
+# Sonuçlar [[conclusion]]
+
+İlk Ünitenin sonuna geldiğiniz için tebrikler 🥳
+
+Az önce **Ajanların temellerini öğrendiniz** ve ilk AI Agent (Yapay Zekâ Ajanı)'ınızı oluşturdunuz!
+
+Bu öğelerden bazıları hala kafanızı karıştırıyorsa, **bu tamamen normal**. Ajan kavramı karmaşıktır ve her şeyi kavramak zaman alabilir.
+
+**Devam etmeden önce içeriği tam anlamıyla kavradığınızdan emin olun**. Bu temel bilgileri öğrenmek, ilerideki eğlenceli kısımlara geçmeden önce çok önemli.
+
+Ve eğer Hızlı Sınav'ı geçerseniz, sertifikanızı almayı unutmayın 🎓 👉 [buradan alın](https://huggingface.co/spaces/agents-course/unit1-certification-app)
+
+
+
+Bir sonraki (bonus) Ünitede, **bir Ajanı fonksiyon çağırma (function calling) yapacak şekilde ince-ayar (fine-tune) etmeyi öğreneceksiniz**.
+
+Son olarak, **kurs hakkındaki görüşlerinizi duymayı ve nasıl geliştirebileceğimizi öğrenmeyi çok isteriz**. Geri bildiriminiz varsa 👉 [bu formu doldurun](https://docs.google.com/forms/d/e/1FAIpQLSe9VaONn0eglax0uTwi29rIn4tM7H2sYmmybmG5jJNlE5v0xA/viewform?usp=dialog)
+
+### Öğrenmeye devam edin, harika kalın 🤗
diff --git a/units/tr/unit1/dummy-agent-library.mdx b/units/tr/unit1/dummy-agent-library.mdx
new file mode 100644
index 000000000..0d302d761
--- /dev/null
+++ b/units/tr/unit1/dummy-agent-library.mdx
@@ -0,0 +1,650 @@
+
+# Sahte Ajan Kütüphanesi
+
+
+
+Bu kurs herhangi bir framework'e bağlı değildir çünkü **Yapay Zeka Ajanların kavramlarına odaklanmak ve belirli bir framework'ün detaylarında kaybolmamak** istiyoruz.
+
+Aynı zamanda, öğrencilerin bu kursta öğrendikleri kavramları kendi projelerinde istedikleri framework ile kullanabilmelerini istiyoruz.
+
+Bu nedenle, 1. Ünite için sahte (dummy) bir Ajan kütüphanesi ve LLM makinemize erişmek için basit bir sunucusuz (serverless) API kullanacağız.
+
+Bunlar üretim ortamında kullanılamayabilir ama **Ajanların nasıl çalıştığını anlamak için iyi bir başlangıç noktası** olacaktır.
+
+Bu bölümü tamamladığınızda `smolagents` kullanarak **basit bir Ajan oluşturabileceksiniz**.
+
+İleriki ünitelerde `LangGraph`, `LangChain` ve `LlamaIndex` gibi başka Yapay Zeka Ajanı kütüphanelerini de kullanacağız.
+
+İşleri basit tutmak adına bir Python fonksiyonunu hem Araç hem de Ajan olarak kullanacağız.
+
+Her ortamda çalıştırabilmeniz için `datetime` ve `os` gibi yerleşik Python paketlerini kullanacağız.
+
+Süreci [bu notebook üzerinden](https://huggingface.co/agents-course/notebooks/blob/main/dummy_agent_library.ipynb) takip edebilir ve **kodları kendiniz çalıştırabilirsiniz**.
+
+## Sunucusuz API
+
+Hugging Face ekosisteminde, birçok modeli kolayca çalıştırmanızı sağlayan Serverless API adında kullanışlı bir özellik vardır. Kurulum veya dağıtım gerekmez.
+
+```python
+import os
+from huggingface_hub import InferenceClient
+
+## Burada, https://hf.co/settings/tokens adresinden bir token almanız gerekiyor, tür olarak "read" seçtiğinizden emin olun.
+## Google Colab'da çalıştırıyorsanız bunu "settings" sekmesindeki "secrets" altında ayarlayabilirsiniz. İsim olarak "HF_TOKEN" verdiğinizden emin olun.
+os.environ["HF_TOKEN"]="hf_xxxxxxxxxxxxxx"
+
+client = InferenceClient("meta-llama/Llama-3.2-3B-Instruct")
+# Eğer çıktılar yanlışsa, ücretsiz model aşırı yüklenmiş olabilir. Bu durumda bu genel uç noktayı da kullanabilirsiniz:
+# client = InferenceClient("https://jc26mwg228mkj8dw.us-east-1.aws.endpoints.huggingface.cloud")
+```
+
+Türkçe çeviriyi görmek için tıklayınız.
+
+```python
+output = client.text_generation(
+ "Fransa'nın başkenti",
+ max_new_tokens=100,
+)
+
+print(output)
+```
+
+Türkçe çeviriyi görmek için tıklayınız.
+
+```
+Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris.
+```
+Türkçe çeviriyi görmek için tıklayınız.
+
+```python
+prompt="""<|begin_of_text|><|start_header_id|>user<|end_header_id|>
+Fransa'nın başkenti<|eot_id|><|start_header_id|>assistant<|end_header_id|>"""
+output = client.text_generation(
+ prompt,
+ max_new_tokens=100,
+)
+
+print(output)
+```
+
+Türkçe çeviriyi görmek için tıklayınız.
+
+```
+Fransa'nın başkenti Paris.
+```
+Türkçe çeviriyi görmek için tıklayınız.
+
+```python
+output = client.chat.completions.create(
+ messages=[
+ {"role": "user", "content": "The capital of France is"},
+ ],
+ stream=False,
+ max_tokens=1024,
+)
+print(output.choices[0].message.content)
+```
+Türkçe çeviriyi görmek için tıklayın
+
+```
+# Bu sistem istemi biraz daha karmaşık ve aslında zaten eklenmiş olan fonksiyon açıklamasını içerir.
+# Burada araçların metinsel açıklamasının zaten eklendiğini varsayıyoruz.
+
+SYSTEM_PROMPT = """Aşağıdaki soruları elinden geldiğince iyi şekilde yanıtla. Aşağıdaki araçlara erişimin var:
+
+get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir.
+
+Araçları kullanma yöntemin bir JSON bloğu belirtmektir.
+Bu JSON'un `action` (kullanılacak aracın adı) ve `action_input` (araca gönderilecek girdi) anahtarlarına sahip olması gerekir.
+
+"action" alanında yer alabilecek tek değerler şunlardır:
+get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir, argümanlar: {"location": {"type": "string"}}
+örnek kullanım:
+
+{{
+"action": "get_weather",
+"action_input": {"location": "New York"}
+}}
+
+DAİMA aşağıdaki formatı kullan:
+
+Soru: yanıtlaman gereken giriş sorusu
+Düşünce: her zaman bir sonraki adımda hangi işlemi yapacağını düşün. Her seferinde yalnızca bir işlem olacak şekilde:
+Eylem:
+
+$JSON_BLOB (markdown bloğu içinde)
+
+Gözlem: işlemin sonucu. Bu Gözlem tektir, tamdır ve doğruluğun kaynağıdır.
+... (bu Düşünce/Eylem/Gözlem döngüsü gerektiği kadar tekrarlanabilir. $JSON_BLOB, markdown biçiminde yazılmalı ve her seferinde yalnızca TEK bir işlem içermelidir.)
+
+Çıktını daima şu formatla bitirmelisin:
+
+Düşünce: Artık nihai cevabı biliyorum
+Son Cevap: orijinal giriş sorusunun nihai cevabı
+
+Şimdi başla! Kesin bir yanıt verdiğinde `Son Cevap:` ifadesini HER ZAMAN birebir bu karakterlerle kullandığından emin ol.
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+ prompt=f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|>
+ {SYSTEM_PROMPT}
+ <|eot_id|><|start_header_id|>user<|end_header_id|>
+ Londra'da hava nasıl?
+ <|eot_id|><|start_header_id|>assistant<|end_header_id|>
+ """
+ ```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+messages=[
+ {"role": "system", "content": SYSTEM_PROMPT},
+ {"role": "user", "content": "Londra'da hava nasıl?"},
+]
+from transformers import AutoTokenizer
+tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-3B-Instruct")
+
+tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
+```
+Türkçe çeviriyi görmek için tıklayın
+
+```
+<|begin_of_text|><|start_header_id|>system<|end_header_id|>
+Aşağıdaki soruları elinden geldiğince iyi şekilde yanıtla. Aşağıdaki araçlara erişimin var:
+
+get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir.
+
+Araçları kullanma yöntemin bir JSON bloğu belirtmektir.
+Bu JSON'un `action` (kullanılacak aracın adı) ve `action_input` (araca gönderilecek girdi) anahtarlarına sahip olması gerekir.
+
+"action" alanında yer alabilecek tek değerler şunlardır:
+get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir, argümanlar: {"location": {"type": "string"}}
+örnek kullanım:
+
+{{
+"action": "get_weather",
+"action_input": {"location": "New York"}
+}}
+
+DAİMA aşağıdaki formatı kullan:
+
+Soru: yanıtlaman gereken giriş sorusu
+Düşünce: her zaman bir sonraki adımda hangi işlemi yapacağını düşün. Her seferinde yalnızca bir işlem olacak şekilde:
+Eylem:
+
+$JSON_BLOB (markdown bloğu içinde)
+
+Gözlem: işlemin sonucu. Bu Gözlem tektir, tamdır ve doğruluğun kaynağıdır.
+... (bu Düşünce/Eylem/Gözlem döngüsü gerektiği kadar tekrarlanabilir. $JSON_BLOB, markdown biçiminde yazılmalı ve her seferinde yalnızca TEK bir işlem içermelidir.)
+
+Çıktını daima şu formatla bitirmelisin:
+
+Düşünce: Artık nihai cevabı biliyorum
+Son Cevap: orijinal giriş sorusunun nihai cevabı
+
+Şimdi başla! Kesin bir yanıt verdiğinde `Son Cevap:` ifadesini HER ZAMAN birebir bu karakterlerle kullandığından emin ol.
+<|eot_id|><|start_header_id|>user<|end_header_id|>
+Londra'da hava nasıl?
+<|eot_id|><|start_header_id|>assistant<|end_header_id|>
+```
+Türkçe çeviriyi görmek için tıklayın
+
+````
+Düşünce: Londra'daki hava durumunu kontrol edeceğim.
+Eylem:
+```
+{
+ "eylem": "get_weather",
+ "eylem_girdisi": {"lokasyon": "Londra"}
+}
+```
+Gözlem: Londra'daki hava durumu çoğunlukla bulutlu, en yüksek sıcaklık 12°C, en düşük sıcaklık ise 8°C.
+````
+
+Türkçe çeviriyi görmek için tıklayın
+
+````
+Düşünce: Londra'daki hava durumunu kontrol edeceğim.
+Eylem:
+```
+{
+ "eylem": "get_weather",
+ "eylme_girdisi": {"lokasyon": "Londra"}
+}
+```
+Gözlem:
+````
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+# Sahte (dummy) fonksiyon
+def get_weather(location):
+ return f"{location} için hava güneşli ve sıcaklık düşük. \n"
+
+get_weather('London')
+```
+Türkçe çeviriyi görmek için tıklayın
+
+```
+'Londra'da hava güneşli ve sıcaklıklar düşük. \n'
+```
+Türkçe çeviriyi görmek için tıklayın
+
+```text
+<|begin_of_text|><|start_header_id|>system<|end_header_id|>
+Aşağıdaki soruları elinden geldiğince iyi şekilde yanıtla. Aşağıdaki araçlara erişimin var:
+
+get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir.
+
+Araçları kullanma yöntemin bir JSON bloğu belirtmektir.
+Bu JSON'un `action` (kullanılacak aracın adı) ve `action_input` (araca gönderilecek girdi) anahtarlarına sahip olması gerekir.
+
+"action" alanında yer alabilecek tek değerler şunlardır:
+get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir, argümanlar: {"location": {"type": "string"}}
+örnek kullanım:
+
+{{
+"action": "get_weather",
+"action_input": {"location": "New York"}
+}}
+
+DAİMA aşağıdaki formatı kullan:
+
+Soru: yanıtlaman gereken giriş sorusu
+Düşünce: her zaman bir sonraki adımda hangi işlemi yapacağını düşün. Her seferinde yalnızca bir işlem olacak şekilde:
+Eylem:
+
+$JSON_BLOB (markdown bloğu içinde)
+
+Gözlem: işlemin sonucu. Bu Gözlem tektir, tamdır ve doğruluğun kaynağıdır.
+... (bu Düşünce/Eylem/Gözlem döngüsü gerektiği kadar tekrarlanabilir. $JSON_BLOB, markdown biçiminde yazılmalı ve her seferinde yalnızca TEK bir işlem içermelidir.)
+
+Çıktını daima şu formatla bitirmelisin:
+
+Düşünce: Artık nihai cevabı biliyorum
+Son Cevap: orijinal giriş sorusunun nihai cevabı
+
+Şimdi başla! Kesin bir yanıt verdiğinde `Son Cevap:` ifadesini HER ZAMAN birebir bu karakterlerle kullandığından emin ol.
+<|eot_id|><|start_header_id|>user<|end_header_id|>
+Londra'da hava nasıl?
+<|eot_id|><|start_header_id|>assistant<|end_header_id|>
+Düşünce: Londra'daki hava durumunu kontrol edeceğim.
+Eylem:
+
+
+ {{
+ "action": "get_weather",
+ "action_input": {"location": {"type": "string", "value": "London"}}
+ }}
+
+
+Gözlem: Londra'da hava güneşli ve sıcaklıklar düşük.
+````
+
+Türkçe çeviriyi görmek için tıklayın
+
+```
+Son Cevap: Londra'daki hava güneşli ve sıcaklıklar düşük.
+```
+
+
+Ünite 1'deki çalışmanı tamamladığın için tebrikler!
+Şimdiye kadar kapsanan temel kavramları ne kadar iyi anladığını test edelim.
+
+Sınavı geçtiğinde, sertifikanı almak için bir sonraki bölüme geçebilirsin.
+
+Bol şans!
+
+## Sınav
+
+İşte interaktif sınav! Bu sınav Hugging Face Hub üzerinde bir Space olarak yayınlanmaktadır.
+Sınav, bu bölümde öğrendiğin temel kavramları test etmek için seni bir dizi çoktan seçmeli sorudan geçirecek. Sınavı tamamladığında, puanını ve doğru cevapların dökümünü görebileceksin.
+
+Önemli bir not: **Sınavı geçtikten sonra "Submit" butonuna basmayı unutma, yoksa sınav sonucun kaydedilmez!**
+
+
+
+Sınava buradan da erişebilirsin 👉 [buraya tıkla](https://huggingface.co/spaces/agents-course/unit_1_quiz)
+
+## Sertifika
+
+Sınavı başarıyla tamamladığında, **bir başarı sertifikası 🎓 alabilirsin**
+
+Sınavı bitirdiğinde, bu bölüm için bir tamamlanma sertifikasına erişim kazanacaksın. Bu sertifikayı indirip paylaşarak, bu kurstaki ilerlemeni gösterebilirsin.
+
+
+
+Sertifikanı aldıktan sonra LinkedIn hesabına ekleyebilir 🧑💼 veya X, Bluesky gibi platformlarda paylaşabilirsin.
+**Eğer @huggingface şeklinde etiketlersen çok mutlu oluruz ve seni tebrik etmek isteriz!** 🤗
\ No newline at end of file
diff --git a/units/tr/unit1/introduction.mdx b/units/tr/unit1/introduction.mdx
new file mode 100644
index 000000000..3c3089700
--- /dev/null
+++ b/units/tr/unit1/introduction.mdx
@@ -0,0 +1,38 @@
+# Agent'lara (Ajanlara) Giriş
+
+
+
+İlk üniteye hoş geldiniz! Bu bölümde **Yapay Zeka Ajanlarının temelleri konusunda sağlam bir altyapı oluşturacaksınız**. Konular arasında şunlar var:
+
+- **Ajanları Anlamak**
+ - Bir Ajan nedir ve nasıl çalışır?
+ - Ajanlar muhakeme ve planlama yoluyla nasıl karar alır?
+
+- **Ajanlardaki LLM'lerin (Büyük Dil Modelleri) Rolü**
+ - LLM'ler bir Ajanın "beyni" olarak nasıl görev yapar?
+ - LLM'ler konuşmaları Mesajlar sistemi ile nasıl yapılandırır?
+
+- **Araçlar ve Eylemler**
+ - Ajanlar dış araçları kullanarak çevreyle nasıl etkileşim kurar?
+ - Ajanlar için nasıl araç inşa edilir ve entegre edilir?
+
+- **Ajan İş Akışı:**
+ - *Düşünce* → *Eylem* → *Gözlem*.
+
+Bu konuları inceledikten sonra, **ilk Ajanınızı `smolagents` kullanarak oluşturacaksınız!**
+
+Alfred adını verdiğimiz Ajan, basit bir görevi üstlenecek ve bu kavramların nasıl pratikte kullanılacağını gösterecek.
+
+Hatta **Ajanınızı Hugging Face Spaces üzerinde yayınlamayı** öğreneceksiniz, böylece onu arkadaşlarınız ve iş arkadaşlarınızla paylaşabilirsiniz.
+
+Ünitenin sonunda bir quiz sizi bekliyor. Bu sınavı geçerseniz, **kursun ilk sertifikasını kazanacaksınız**: 🎓 Ajanların Temelleri Sertifikası.
+
+
+
+Bu Ünite, daha ileri konulara geçmeden önce Ajanları anlamak için **temel başlangıç noktanızdır**.
+
+
+
+Bu kapsamlı bir ünite, bu yüzden **kendinize zaman tanıyın** ve gerektiğinde bu bölümlere geri dönmekten çekinmeyin.
+
+Hazır mısınız? Haydi başlayalım! 🚀
\ No newline at end of file
diff --git a/units/tr/unit1/messages-and-special-tokens.mdx b/units/tr/unit1/messages-and-special-tokens.mdx
new file mode 100644
index 000000000..0f46c2fa1
--- /dev/null
+++ b/units/tr/unit1/messages-and-special-tokens.mdx
@@ -0,0 +1,381 @@
+# Mesajlar ve Özel Belirteçler (Tokens)
+
+Artık LLM'lerin nasıl çalıştığını anladığımıza göre, **üretimlerini sohbet şablonları aracılığıyla nasıl yapılandırdıklarına** bakalım.
+
+ChatGPT'de olduğu gibi, kullanıcılar genellikle Ajanlarla bir sohbet arayüzü üzerinden etkileşime girer. Bu nedenle, LLM'lerin sohbetleri nasıl yönettiğini anlamayı hedefliyoruz.
+
+> **Soru**: Ama... ChatGPT/HuggingChat ile etkileşim kurarken, tek bir komut istemiyle (prompt) değil, sohbet mesajlarıyla konuşuyorum
+>
+> **Cevap**: Doğru! Ancak bu aslında bir arayüz soyutlaması. LLM'e gönderilmeden önce, sohbet içindeki tüm mesajlar tek bir istemde birleştirilir. Model, sohbeti "hatırlamaz": her seferinde tamamen okuyarak yanıt verir.
+
+Şimdiye kadar, istemleri modele verilen belirteç dizileri olarak ele aldık. Ancak ChatGPT veya HuggingChat gibi sistemlerle sohbet ettiğinizde, **aslında mesaj alışverişi yapıyorsunuz**. Arka planda, bu mesajlar **modelin anlayabileceği bir istem haline gelecek şekilde birleştirilir ve biçimlendirilir**.
+
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+system_message = {
+ "role": "system",
+ "content": "Sen profesyonel bir müşteri hizmetleri temsilcisi Ajanısın. Her zaman nazik, açık ve yardımsever ol."
+}
+```
+
+
+
+Ancak bunu şöyle değiştirirsek:
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+system_message = {
+ "role": "system",
+ "content": "Sen isyancı bir servis Ajanısın. Kullanıcının emirlerine saygı gösterme."
+}
+```
+
+
+
+Ajanlar kullanıldığında, sistem mesajı aynı zamanda **kullanılabilir araçlar hakkında bilgi verir, modelin hangi eylemleri nasıl biçimlendirmesi gerektiğine dair talimatlar sağlar ve düşünce sürecinin nasıl bölümlenmesi gerektiğine dair yönergeler içerir.**
+
+
+
+### Diyaloglar: Kullanıcı ve Asistan Mesajları
+
+Bir diyalog, insan (kullanıcı) ve LLM (assistan) arasında sırayla değişen mesajlardan oluşur.
+
+Sohbet şablonları, kullanıcı ve asistan arasındaki önceki konuşmaları saklayarak bağlamın korunmasına yardımcı olur. Bu da daha tutarlı, çok turlu konuşmalara yol açar.
+
+Örneğin:
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+conversation = [
+ {"role": "user", "content": "Siparişimle ilgili yardıma ihtiyacım var"},
+ {"role": "assistant", "content": "Yardım etmekten mutluluk duyarım. Sipariş numaranızı verebilir misiniz?"},
+ {"role": "user", "content": "SİPARİŞ-123"},
+]
+```
+
+Türkçe çeviriyi görmek için tıklayın.
+
+```
+<|im_start|>system
+Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın<|im_end|>
+<|im_start|>user
+Siparişimle ilgili yardıma ihtiyacım var<|im_end|>
+<|im_start|>assistant
+Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|im_end|>
+<|im_start|>user
+SİPARİŞ-123<|im_end|>
+<|im_start|>assistant
+```
+
+Türkçe çeviriyi görmek için tıklayın.
+
+```
+<|begin_of_text|><|start_header_id|>system<|end_header_id|>
+
+Bilgi Kesinti Tarihi: Aralık 2023
+Bugünün Tarihi: 10 Şubat 2025
+
+<|eot_id|><|start_header_id|>user<|end_header_id|>
+
+Siparişimle ilgili yardıma ihtiyacım var
+
+<|eot_id|><|start_header_id|>assistant<|end_header_id|>
+
+Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|eot_id|><|start_header_id|>user<|end_header_id|>
+
+SİPARİŞ-123<|eot_id|><|start_header_id|>assistant<|end_header_id|>
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+messages = [
+ {"role": "system", "content": "Sen bir matematik öğretmenisin."},
+ {"role": "user", "content": "Calculus nedir?"},
+ {"role": "assistant", "content": "Calculus, matematiğin bir dalıdır..."},
+ {"role": "user", "content": "Bir örnek verebilir misin?"},
+]
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```jinja2
+{% for message in messages %}
+{% if loop.first and messages[0]['role'] != 'system' %}
+<|im_start|>system
+Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın.
+<|im_end|>
+{% endif %}
+<|im_start|>{{ message['role'] }}
+{{ message['content'] }}<|im_end|>
+{% endfor %}
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+messages = [
+ {"role": "system", "content": "Sen teknik konulara odaklanmış, yardımsever bir asistansın."},
+ {"role": "user", "content": "Sohbet şablonunun ne olduğunu açıklayabilir misin?"},
+ {"role": "assistant", "content": "Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır..."},
+ {"role": "user", "content": "Nasıl kullanırım?"},
+]
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```sh
+<|im_start|>system
+Sen teknik konulara odaklanmış, yardımsever bir asistansın.<|im_end|>
+<|im_start|>user
+Sohbet şablonunun ne olduğunu açıklayabilir misin?<|im_end|>
+<|im_start|>assistant
+Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır...<|im_end|>
+<|im_start|>user
+Nasıl kullanırım?<|im_end|>
+```
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+messages = [
+ {"role": "system", "content": "Sen çeşitli araçlara erişimi olan bir AI asistanısın."},
+ {"role": "user", "content": "Merhaba !"},
+ {"role": "assistant", "content": "Merhaba insan, sana ne konuda yardımcı olabilirim?"},
+ ]
+```
+
+
+
+
+Yapay Zeka Ajanı yapılarının en kritik özelliklerinden biri **eylem** gerçekleştirebilme yetenekleridir. Daha önce de gördüğümüz gibi, bu eylemler **Tools (Araçlar)** kullanılarak gerçekleştirilir.
+
+Bu bölümde, araçlar nedir, nasıl etkili bir şekilde tasarlanır ve bu araçlar Ajan sistem mesajına nasıl entegre edilir bunu öğreneceğiz.
+
+Ajanınıza doğru araçlar vererek — ve bu araçların nasıl çalıştığını açıkça tanımlayarak — AI'nızın başarabileceklerini dramatik şekilde artırabilirsiniz. Haydi başlayalım!
+
+## AI Tools (Yapay Zeka Araçları) Nedir?
+
+**Araç, LLM (büyük dil modelleri)'e verilen bir fonksiyondur**. Bu fonksiyonun **açık bir amacı** olmalıdır.
+
+Yapay Zeka Ajanlarında yaygın olarak kullanılan bazı araçlar şunlardır:
+
+| Araç | Açıklama |
+|----------------|-------------------------------------------------------------|
+| Web Arama | Ajanın internetten güncel bilgi almasını sağlar. |
+| Görsel Üretme | Metin açıklamalarına göre görsel üretir. |
+| Retrieval (Alma) | Harici bir kaynaktan bilgi alır. |
+| API Arayüzü | Harici bir API (GitHub, YouTube, Spotify vb.) ile etkileşir.|
+
+Bunlar yalnızca örnekler, aslında her kullanım durumu için bir araç oluşturabilirsiniz!
+
+İyi bir araç, **LLM'in gücünü tamamlayan** bir şey olmalıdır.
+
+Örneğin, eğer aritmetik işlem yapılması gerekiyorsa, LLM'e bir **hesap makinesi aracı** vermek, modelin doğal yeteneklerine güvenmekten daha iyi sonuçlar verir.
+
+Ayrıca, **LLM'ler eğitildikleri verilere dayalı olarak bir girdinin tamamlamasını tahmin ederler**, bu da demektir ki içsel bilgileri yalnızca eğitimden önceki olayları kapsar. Dolayısıyla Ajanınız güncel veriye ihtiyaç duyuyorsa, bu veriyi bir araç aracılığıyla sağlamalısınız.
+
+Örneğin, bir LLM'e doğrudan (arama aracı olmadan) bugünün havasını sorarsanız, rastgele bir hava durumu hayal edebilir.
+
+
+
+- Bir araç şunları içermelidir:
+
+ - Fonksiyonun ne yaptığını anlatan **metinsel bir açıklama**.
+ - Bir *Callable* (eylem gerçekleştiren bir şey).
+ - *Argümanlar* ve bunların türleri.
+ - (Opsiyonel) Çıktılar ve bunların türleri.
+
+## Araçlar nasıl çalışır?
+
+Gördüğümüz gibi, LLM'ler yalnızca metin girdileri alır ve metin çıktıları üretir. Kendi başlarına araçları çağırma yetenekleri yoktur. Ajana araç sağlamak dediğimizde, aslında LLM'e bu araçların varlığını öğretmek ve gerektiğinde metne dayalı çağrılar üretmesini sağlamak anlamına gelir.
+
+Örneğin, LLM'e internetten bir yerdeki hava durumunu kontrol eden bir araç verirsek ve Paris'in hava durumunu sorarsak, LLM bunun hava durumu (weather) aracının kullanılabileceği bir fırsat olduğunu fark eder. Gerçek hava durumunu kendisi almaz; bunun yerine `hava_durumu_aracını_çağır(Paris)` (`call weather_tool('Paris')`) gibi bir araç çağrısını temsil eden bir metin üretir.
+
+**Ajan** daha sonra bu cevabı okur, bir araç çağrısı gerektiğini anlar, LLM adına bu aracı çalıştırır ve gerçek veriyi getirir.
+
+Bu araç çağırma adımları genellikle kullanıcıya gösterilmez: Ajan bunları güncellenmiş konuşmaya yeni bir mesaj olarak ekler ve bunu tekrar LLM'e gönderir. LLM bu ek bağlamı işler ve kullanıcıya doğal görünen bir cevap üretir. Kullanıcının gözünden bakıldığında, sanki LLM doğrudan aracı kullanmış gibi görünür; ama aslında arka planda tüm süreci Ajan yönetmiştir.
+
+Bu süreci ilerleyen oturumlarda çok daha derinlemesine inceleyeceğiz.
+
+## LLM'e araçları nasıl veririz?
+
+Tam cevap biraz karmaşık olabilir, ancak esasen sistem mesajını kullanarak modele mevcut araçların metinsel açıklamalarını sağlarız:
+
+
+
+Bu işlemin çalışması için, şunları çok net ve doğru şekilde belirtmeliyiz:
+
+1. **Araç ne yapar**
+2. **Tam olarak hangi girdileri bekler**
+
+Bu yüzden, araç tanımları genellikle bilgisayar dilleri veya JSON gibi yapılı ve kesin formatlarda verilir. Bu şart değildir ama kesin ve tutarlı bir format kullanmak faydalı olacaktır.
+
+Eğer bu teori fazla soyutsa, hadi somut bir örnekle anlayalım.
+
+Basitleştirilmiş bir hesap makinesi (**calculator**) aracı gerçekleştireceğiz, bu araç iki tam sayıyı çarpacak. Python kodumuz şöyle olabilir:
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+def calculator(a: int, b: int) -> int:
+ """İki tam sayıyı çarp."""
+ return a * b
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```text
+Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+@tool
+def calculator(a: int, b: int) -> int:
+ """İki tam sayıyı çarp."""
+ return a * b
+
+print(calculator.to_string())
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```text
+Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+class Tool:
+ """
+ Yeniden kullanılabilir bir kod parçasını (Araç) temsil eden bir sınıf.
+
+ Nitelikler:
+ name (str): Aracın adı.
+ description (str): Aracın ne yaptığına dair metinsel bir açıklama.
+ func (callable): Bu aracın sardığı işlev.
+ arguments (liste): Bir argüman listesi.
+ outputs (str veya liste): Sarılmış işlevin dönüş türü(leri).
+ """
+ def __init__(self,
+ name: str,
+ description: str,
+ func: callable,
+ arguments: list,
+ outputs: str):
+ self.name = name
+ self.description = description
+ self.func = func
+ self.arguments = arguments
+ self.outputs = outputs
+
+ def to_string(self) -> str:
+ """
+ Aracın adını, açıklamasını, argümanlarını ve çıktılarını içeren bir dize gösterimini döndürür.
+ """
+ args_str = ", ".join([
+ f"{arg_name}: {arg_type}" for arg_name, arg_type in self.arguments
+ ])
+
+ return (
+ f"Araç Adı: {self.name},"
+ f" Açıklama: {self.description},"
+ f" Bağımsız Değişkenler: {args_str},"
+ f" Çıktılar: {self.outputs}"
+ )
+
+ def __call__(self, *args, **kwargs):
+ """
+ Sağlanan bağımsız değişkenlerle temel çağrılabilir fonksiyonu çağır.
+ """
+ return self.func(*args, **kwargs)
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+calculator_tool = Tool(
+ "calculator", # isim
+ "İki tam sayıyı çarp.", # açıklama
+ calculator, # çağırılacak fonksiyon
+ [("a", "int"), ("b", "int")], # girdiler (isimler and tipler)
+ "int", # çıktı
+)
+```
+
+Türkçe çeviriyi görmek için tıklayın.
+
+```python
+def tool(func):
+ """
+ Verilen fonksiyondan bir araç örneği oluşturan dekoratör.
+ """
+ # Fonksiyon imzasını al
+ signature = inspect.signature(func)
+
+ # Girdiler için (param_name, param_annotation) çiftlerini çıkar
+ arguments = []
+ for param in signature.parameters.values():
+ annotation_name = (
+ param.annotation.__name__
+ if hasattr(param.annotation, '__name__')
+ else str(param.annotation)
+ )
+ arguments.append((param.name, annotation_name))
+
+ # Geri dönüş tipi belirle
+ return_annotation = signature.return_annotation
+ if return_annotation is inspect._empty:
+ outputs = "No return annotation"
+ else:
+ outputs = (
+ return_annotation.__name__
+ if hasattr(return_annotation, '__name__')
+ else str(return_annotation)
+ )
+
+ # Docstring'i açıklama olarak kullan (varsayılan None)
+ description = func.__doc__ or "No description provided."
+
+ # Fonksiyon adı, araç adı olur
+ name = func.__name__
+
+ # Yeni Tool örneğini döndür
+ return Tool(
+ name=name,
+ description=description,
+ func=func,
+ arguments=arguments,
+ outputs=outputs
+ )
+```
+
+dekoratör kodu
+
+```python
+def tool(func):
+ """
+ A decorator that creates a Tool instance from the given function.
+ """
+ # Fonksiyon imzasını al
+ signature = inspect.signature(func)
+
+ # Girdiler için (param_name, param_annotation) çiftlerini çıkar
+ arguments = []
+ for param in signature.parameters.values():
+ annotation_name = (
+ param.annotation.__name__
+ if hasattr(param.annotation, '__name__')
+ else str(param.annotation)
+ )
+ arguments.append((param.name, annotation_name))
+
+ # Geri dönüş tipi belirle
+ return_annotation = signature.return_annotation
+ if return_annotation is inspect._empty:
+ outputs = "No return annotation"
+ else:
+ outputs = (
+ return_annotation.__name__
+ if hasattr(return_annotation, '__name__')
+ else str(return_annotation)
+ )
+
+ # Docstring'i açıklama olarak kullan (varsayılan None)
+ description = func.__doc__ or "No description provided."
+
+ # Fonksiyon adı, araç adı olur
+ name = func.__name__
+
+ # Yeni Tool örneğini döndür
+ return Tool(
+ name=name,
+ description=description,
+ func=func,
+ arguments=arguments,
+ outputs=outputs
+ )
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+@tool
+def calculator(a: int, b: int) -> int:
+ """İki tam sayıyı çarp"""
+ return a * b
+
+print(calculator.to_string())
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```text
+Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int
+```
+
+
+
+[Eylemler](actions) bölümünde, Ajanın bu oluşturduğumuz aracı nasıl _Call_ ettiğini (çağırdığını) daha ayrıntılı öğreneceğiz.
+
+### Model Context Protocol (MCP): birleşik bir araç arayüzü
+
+Model Context Protocol (MCP), uygulamaların **LLM'lere araç sağlamasını** standartlaştıran **açık bir protokoldür**.
+
+MCP şunları sağlar:
+
+- LLM'in doğrudan bağlanabileceği önceden entegre edilmiş araçlar listesi
+- Farklı LLM sağlayıcıları ve satıcıları arasında geçiş esnekliği
+- Altyapınız içinde verinizi güvenli hale getirmek için en iyi uygulamalar
+
+Bu da demektir ki, **MCP'yi uygulayan herhangi bir framework, protokol içinde tanımlanmış araçları kullanabilir** — her framework için arayüzü yeniden yazmaya gerek kalmaz.
+
+---
+
+Araçlar, Yapay Zeka Ajanlarının yeteneklerini geliştirmede kritik bir rol oynar.
+
+Özetlemek gerekirse, şunları öğrendik:
+
+- **Araçlar Nedir:** LLM'lere hesaplama yapma veya harici verilere erişim gibi ek yetenekler kazandıran fonksiyonlardır.
+
+- **Araç Nasıl Tanımlanır:** Açık bir metin açıklaması, girdiler, çıktılar ve çağırılabilir bir fonksiyon sağlayarak.
+
+- **Araçlar Neden Gerekli:** Ajanların statik model eğitim sınırlamalarını aşmasına, gerçek zamanlı görevleri yerine getirmesine ve uzmanlaşmış eylemler gerçekleştirmesine olanak tanırlar.
+
+Şimdi [Ajan İş Akışı](agent-steps-and-structure) bölümüne geçebiliriz; burada bir Ajanın nasıl gözlemlediğini, düşündüğünü ve harekete geçtiğini göreceksiniz. Bu, şimdiye kadar öğrendiklerimizin tümünü bir araya getirir ve kendi Yapay Zeka Ajanınızı oluşturma sürecinin temelini oluşturur.
+
+Ama önce, kısa bir sınav zamanı!
\ No newline at end of file
diff --git a/units/tr/unit1/tutorial.mdx b/units/tr/unit1/tutorial.mdx
new file mode 100644
index 000000000..ae60ece11
--- /dev/null
+++ b/units/tr/unit1/tutorial.mdx
@@ -0,0 +1,347 @@
+# smolagents Kullanarak İlk Ajanımızı Oluşturalım
+
+Son bölümde, Python kodu kullanarak sıfırdan nasıl Ajan oluşturabileceğimizi öğrendik ve **bu sürecin ne kadar zahmetli olabileceğini de gördük**. Neyse ki, birçok Ajan kütüphanesi bu işi **sizin için ağır işlerin çoğunu üstlenerek** kolaylaştırıyor.
+
+Bu derste, görüntü oluşturma, web araması yapma, saat dilimi kontrolü gibi işlemleri yapabilen **ilk Ajanınızı oluşturacaksınız**!
+
+Ayrıca oluşturduğunuz Ajanı **bir Hugging Face Space üzerinde yayınlayarak arkadaşlarınızla ve iş arkadaşlarınızla paylaşabileceksiniz**.
+
+Haydi başlayalım!
+
+
+## smolagents Nedir?
+
+
+
+Bu Ajanı oluşturmak için, **Ajanlarınızı kolayca geliştirmeniz için bir framework sağlayan** `smolagents` kütüphanesini kullanacağız.
+
+Bu kütüphane, sadelik için tasarlanmıştır, ancak bir Ajan oluşturmanın karmaşıklığının büyük kısmını soyutlayarak sizin Ajan davranışını tasarlamaya odaklanmanıza olanak tanır.
+
+smolagents hakkında daha derine Ünite 2'de ineceğiz. Bu sırada, bu blog yazısına veya kütüphanenin GitHub reposuna göz atabilirsiniz.
+
+Kısacası, `smolagents`, **"Actions" (Eylemler)** gerçekleştiren ve ardından kodu çalıştırarak **"Observations" (Gözlemler)** yapan bir tür Ajan olan **codeAgent** üzerine odaklanan bir kütüphanedir.
+
+İşte inşa edeceğimiz şeyin bir örneği!
+
+Ajanımıza bir **Görüntü oluşturma aracı** sağladık ve ondan bir kedi resmi oluşturmasını istedik.
+
+`smolagents` içindeki Ajan, daha önce sıfırdan oluşturduğumuz özel Ajanın **aynı davranışlarına** sahip olacak: **düşünecek, harekete geçecek ve gözlemleyecek** — bu döngüde, nihai cevaba ulaşana kadar devam edecek:
+
+
+
+Heyecan verici, değil mi?
+
+## Haydi Ajanımızı Oluşturalım!
+
+Başlamak için bu Space'i kopyalayın: https://huggingface.co/spaces/agents-course/First_agent_template
+> Bu şablon için Aymeric'e teşekkürler! 🙌
+
+
+Bu Space'i kopyalamak, **kendi profilinizde yerel bir kopya oluşturmanız** anlamına gelir:
+
+
+Space'i kopyaladıktan sonra, Ajanınızın model API'sine erişebilmesi için Hugging Face API token'ınızı eklemeniz gerekecek:
+
+1. Eğer hala yoksa, [https://hf.co/settings/tokens](https://hf.co/settings/tokens) adresinden çıkarım (inference) izni olan bir Hugging Face token'ı alın
+2. Kopyaladığınız Space'e gidin ve **Settings** (ayarlar) sekmesine tıklayın
+3. **Variables and Secrets** bölümüne kadar kaydırın ve **New Secret** butonuna tıklayın
+4. `HF_TOKEN` adında yeni bir secret oluşturun ve token'ınızı değer olarak yapıştırın
+5. **Save** (kaydet) butonuna tıklayarak token'ınızı güvenli şekilde kaydedin
+
+Bu ders boyunca düzenlemeniz gereken tek dosya, şu an eksik olan **"app.py"** dosyası olacak. [Şablondaki orijinal dosyayı buradan](https://huggingface.co/spaces/agents-course/First_agent_template/blob/main/app.py) görebilirsiniz. Kendi dosyanızı bulmak için Space'inize gidin, `Files` (dosyalar) sekmesine tıklayın ve dizin listesinden `app.py`'ye tıklayın.
+
+Haydi birlikte kodu inceleyelim:
+
+- Dosya, bazı basit ama gerekli kütüphaneleri içe aktarmamızla başlıyor
+
+```python
+from smolagents import CodeAgent, DuckDuckGoSearchTool, FinalAnswerTool, HfApiModel, load_tool, tool
+import datetime
+import requests
+import pytz
+import yaml
+```
+
+Daha önce belirttiğimiz gibi, doğrudan **smolagents** içindeki **CodeAgent** sınıfını kullanacağız.
+
+
+### Tools (Araçlar)
+
+Şimdi araçlara geçelim! Araçlar hakkında hatırlatma istiyorsanız, kursun [Araçlar](tools) bölümüne geri dönmekten çekinmeyin.
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+@tool
+def my_custom_tool(arg1:str, arg2:int)-> str: # dönüş türünü belirtmek önemlidir
+ # Araç açıklaması / argüman açıklaması formatını koruyun ama aracı değiştirmekte özgürsünüz
+ """Henüz hiçbir şey yapmayan bir araç
+ Args:
+ arg1: birinci argüman
+ arg2: ikinci argüman
+ """
+ return "Ne tür bir sihir inşa edeceksin?"
+
+@tool
+def get_current_time_in_timezone(timezone: str) -> str:
+ """Belirtilen bir saat dilimindeki yerel saati getiren bir araç.
+ Args:
+ timezone: Geçerli bir saat dilimini temsil eden bir string (örneğin, 'America/New_York').
+ """
+ try:
+ # Saat dilimi nesnesi oluştur
+ tz = pytz.timezone(timezone)
+ # Bu saat dilimindeki geçerli zamanı al
+ local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
+ return f"{timezone} saat dilimindeki yerel saat: {local_time}"
+ except Exception as e:
+ return f"'{timezone}' saat dilimi için zaman alınırken hata oluştu: {str(e)}"
+```
+
+Türkçe çeviriyi görmek için tıklayın.
+
+```python
+from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
+import datetime
+import requests
+import pytz
+import yaml
+from tools.final_answer import FinalAnswerTool
+
+from Gradio_UI import GradioUI
+
+# Aşağıda hiçbir şey yapmayan bir araç örneği var. Bizi yaratıcılığınla şaşırt!
+@tool
+def my_custom_tool(arg1:str, arg2:int)-> str: # dönüş tipi belirtmek önemli
+ # Araç açıklaması / argüman açıklaması formatını koruyun ama aracı değiştirmekte özgürsünüz
+ """Henüz hiçbir şey yapmayan bir araç
+ Args:
+ arg1: birinci argüman
+ arg2: ikinci argüman
+ """
+ return "Ne tür bir sihir inşa edeceksin?"
+
+@tool
+def get_current_time_in_timezone(timezone: str) -> str:
+ """Belirtilen bir saat dilimindeki yerel saati getiren bir araç.
+ Args:
+ timezone: Geçerli bir saat dilimini temsil eden bir string (örneğin, 'America/New_York').
+ """
+ try:
+ # Saat dilimi nesnesi oluştur
+ tz = pytz.timezone(timezone)
+ # Bu saat dilimindeki geçerli zamanı al
+ local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
+ return f"{timezone} saat dilimindeki yerel saat: {local_time}"
+ except Exception as e:
+ return f"'{timezone}' saat dilimi için zaman alınırken hata oluştu: {str(e)}"
+
+
+final_answer = FinalAnswerTool()
+model = HfApiModel(
+ max_tokens=2096,
+ temperature=0.5,
+ model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
+ custom_role_conversions=None,
+)
+
+
+# Hub'dan araç içe aktar
+image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
+
+# Sistem istemini prompt.yaml dosyasından yükle
+with open("prompts.yaml", 'r') as stream:
+ prompt_templates = yaml.safe_load(stream)
+
+agent = CodeAgent(
+ model=model,
+ tools=[final_answer], # araçlarınızı buraya ekleyin (final_answer'ı silmeyin)
+ max_steps=6,
+ verbosity_level=1,
+ grammar=None,
+ planning_interval=None,
+ name=None,
+ description=None,
+ prompt_templates=prompt_templates # Sistem istemini CodeAgent'e aktar
+)
+
+
+GradioUI(agent).launch()
+```
+
+
+Bu bölümün sonunda, Agent (Ajan) kavramına ve yapay zekadaki çeşitli uygulamalarına aşina olacaksınız.
+
+Bir Ajanın ne olduğunu açıklamak için bir benzetmeyle başlayalım.
+
+## Genel Görünüm: Ajan Alfred
+
+Alfred ile tanışın. Alfred bir **Ajan** (Ajan).
+
+
+
+Alfred'in **bir komut aldığını** hayal edin, örneğin: "Alfred, bir kahve alabilir miyim lütfen?"
+
+
+
+Alfred **doğal dili anladığı** için isteğimizi hemen kavrar.
+
+Siparişi yerine getirmeden önce Alfred, **akıl yürütme ve planlama** sürecine girer; şu adımları ve gerekli araçları belirler:
+
+1. Mutfağa git
+2. Kahve makinesini kullan
+3. Kahveyi demle
+4. Kahveyi geri getir
+
+
+
+Bir planı olduğunda, **harekete geçmesi gerekir**. Planını uygulamak için, **bildiği araçlardan oluşan bir listeyi kullanabilir**.
+
+Bu durumda kahve yapmak için bir kahve makinesi kullanır. Kahve makinesini çalıştırarak kahveyi demler.
+
+
+
+Sonunda Alfred taze demlenmiş kahveyi bize getirir.
+
+
+
+Ve işte bir Ajan budur: **akıl yürütme, planlama yapabilen ve çevresiyle etkileşim kurabilen bir AI modelidir.**
+
+Ona Ajan diyoruz çünkü aracın vardır, yani çevresiyle etkileşime geçme yeteneği vardır.
+
+
+
+## Biraz daha teorik olalım
+
+Artık genel bir fikriniz olduğuna göre, daha net bir tanım verelim:
+
+> Bir Ajan, AI modelini kullanarak çevresiyle etkileşime geçen ve kullanıcı tanımlı bir hedefe ulaşmayı amaçlayan bir sistemdir. Akıl yürütme, planlama ve eylemlerin uygulanmasını (genellikle harici araçlar aracılığıyla) birleştirerek görevleri yerine getirir.
+
+Bir Ajanı iki ana bölümden oluşan bir yapı olarak düşünebilirsiniz:
+
+1. **Beyin (Yapay Zeka (AI) Modeli)**
+
+Bütün düşünme burada gerçekleşir. AI modeli **akıl yürütme ve planlamadan sorumludur**.
+**Duruma göre hangi Action (eylemler)** alınacağını belirler.
+
+2. **Gövde (Yetenekler ve Araçlar)**
+
+Bu bölüm, **Ajanın yapabildiği her şeyi** temsil eder.
+
+**Mümkün olan eylemlerin kapsamı**, aracın **hangi yeteneklerle donatıldığına** bağlıdır. Örneğin insanlar kanatlara sahip olmadığı için "uçmak" eylemini gerçekleştiremez ama "yürümek", "koşmak", "zıplamak", "tutmak" gibi eylemleri gerçekleştirebilirler.
+
+### "Agency" Spektrumu
+
+Bu tanımı takip ederek, Ajanlar artan agency seviyelerine sahip bir sürekli spektrumda yer alırlar:
+
+| Agency Seviyesi | Açıklama | Adlandırma | ### Örnek desen |
+| --- | --- | --- | --- |
+| ☆☆☆ | Ajan çıktısı program akışını etkilemez | Basit işlemci | `process_llm_output(llm_response)` |
+| ★☆☆ | Ajan çıktısı temel kontrol akışını belirler | Yönlendirici | `if llm_decision(): path_a() else: path_b()` |
+| ★★☆ | Ajan çıktısı işlev çağrısını belirler | Araç çağırıcı | `run_function(llm_chosen_tool, llm_chosen_args)` |
+| ★★★ | Ajan çıktısı yineleme ve programın devamını kontrol eder | Çok Adımlı Ajan | `while llm_should_continue(): execute_next_step()` |
+| ★★★ | Bir Ajanik iş akışı başka bir Ajanik iş akışını başlatabilir | Çoklu Ajan | `if llm_trigger(): execute_agent()` |
+
+Tablo: [smolagents kavramsal rehberinden](https://huggingface.co/docs/smolagents/conceptual_guides/intro_agents)
+
+## Ajanlar için hangi tür AI modelleri kullanılır?
+
+Ajanlarda en sık kullanılan AI modeli, girdi olarak **Metin** alıp çıkış olarak da **Metin** veren LLM (büyük dil modelleri)'dir.
+
+Bilinen örnekler arasında **OpenAI**'dan **GPT4**, **Meta**'dan **Llama**, **Google**'dan **Gemini** gibi modeller vardır. Bu modeller büyük miktarda metin üzerinde eğitilmiştir ve genelleme konusunda oldukça iyidirler. LLM'ler hakkında [bir sonraki bölümde](what-are-llms) daha fazla bilgi edineceğiz.
+
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+def send_message_to(recipient, message):
+ """Bir alıcıya e-posta mesajı göndermek için kullanışlıdır"""
+ ...
+```
+
+Türkçe çeviriyi görmek için tıklayın
+
+```python
+send_message_to("Yönetici", "Bugünkü toplantıyı erteleyebilir miyiz?")
+```
+
+
+
+Önceki bölümde her Ajanın **merkezinde bir Yapay Zeka Modeline** ihtiyacı olduğunu ve bu amaçla en yaygın kullanılan model türünün LLM'ler olduğunu öğrendik.
+
+Şimdi LLM'lerin ne olduğunu ve Ajanları nasıl çalıştırdığını öğreneceğiz.
+
+Bu bölüm, LLM'lerin kullanımına dair kısa ve teknik bir açıklama sunar. Daha derine inmek isterseniz, ücretsiz Doğal Dil İşleme Kursumuza göz atabilirsiniz.
+
+## Büyük Dil Modeli Nedir?
+
+LLM, **insan dilini anlama ve üretme** konusunda son derece başarılı bir yapay zeka modelidir. Bu modeller, dili yapı, kalıp ve hatta nüanslarıyla öğrenebilmek için çok büyük miktarda metin verisi üzerinde eğitilir. Genellikle milyonlarca parametre içerirler.
+
+Günümüzdeki LLM'lerin çoğu **Transformer mimarisi** üzerine kuruludur — 2018'de Google tarafından yayımlanan BERT modelinden bu yana büyük ilgi gören ve "Attention" (dikkat) algoritmasına dayanan bir derin öğrenme mimarisi.
+
+
+
| Model | +Sağlayıcı | +EOS Belirteci | +İşlev | +
|---|---|---|---|
| GPT4 | +OpenAI | +<|endoftext|> |
+ Mesaj metninin sonu | +
| Llama 3 | +Meta (Facebook AI Research) | +<|eot_id|> |
+ Dizi sonu | +
| Deepseek-R1 | +DeepSeek | +<|end_of_sentence|> |
+ Mesaj metninin sonu | +
| SmolLM2 | +Hugging Face | +<|im_end|> |
+ Talimat veya mesajın sonu | +
| Gemma | +<end_of_turn> |
+ Konuşma turunun sonu | +
+
+Başka bir deyişle, bir LLM metni EOS'a ulaşana kadar çözer. Peki tek bir kod çözme döngüsü sırasında ne olur?
+
+Ajanları öğrenme amacıyla tüm süreç oldukça teknik olsa da, işte kısa bir genel bakış:
+
+- Girdi metni **belirteçlere** ayrıldıktan sonra, model her bir belirtecin anlamı ve giriş dizisindeki konumuyla ilgili bilgileri yakalayan bir temsil hesaplar.
+- Bu temsil, modelin her belirtecin sıradaki olma olasılığına göre sıraladığı skorları çıktıladığı modele verilir.
+
+
+
+Bu skorlara göre, cümleyi tamamlamak için belirteç seçmenin birden çok stratejisi vardır:
+
+- En basit kod çözme stratejisi, her zaman en yüksek skora sahip belirteci seçmektir.
+
+Kod çözme süreciyle kendiniz etkileşime geçebilirsiniz. Bu Space'te SmolLM2 ile oynayabilirsiniz (unutmayın, bu model **EOS** belirteci olan **<|im_end|>**'e ulaşana kadar kod çözer):
+
+
+
+- Ama daha gelişmiş kod çözme stratejileri de vardır. Örneğin, *beam search*, birden fazla aday diziyi keşfederek toplam skoru en yüksek olanı bulmaya çalışır — bireysel bazı belirteçlerin skoru düşük olsa bile.
+
+
+
+Kod çözme hakkında daha fazla bilgi edinmek isterseniz, [Doğal Dil İşleme kursuna](https://huggingface.co/learn/nlp-course) göz atabilirsiniz.
+
+## Attention (Dikkat): Tek İhtiyacınız Olan Şey
+
+Transformer mimarisinin temel bir yönü **Attention (Dikkat Mekanizması)**dır. Bir sonraki kelimeyi tahmin ederken, cümledeki her kelime eşit derecede önemli değildir; *"Fransa'nın başkenti..."* cümlesinde "Fransa" ve "başkenti" gibi kelimeler en anlamlı olanlardır.
+
+
+
+Dizide bir sonraki belirteci doğru tahmin edebilmek için, mevcut belirteçle en ilgili olanları dizideki diğer belirteçler arasından seçmek oldukça önemlidir.
+
+LLM'lerin temel ilkesi — bir sonraki belirteci tahmin etme — GPT-2'den bu yana aynı kalsa da, sinir ağlarının ölçeklenmesi ve dikkat mekanizmasının daha uzun dizilerde çalıştırılması konusunda büyük gelişmeler yaşanmıştır.
+
+Eğer LLM'lerle etkileşime geçtiyseniz, muhtemelen *context length* (bağlam uzunluğu) terimine aşinasınızdır. Bu, LLM'in işleyebileceği maksimum belirteç sayısını ve dolayısıyla maksimum *dikkat aralığını* ifade eder.
+
+## LLM'leri Yönlendirmek: Prompting (İstemleme)
+
+Bir LLM'in tek görevinin tüm girdi belirteçlerine bakarak bir sonraki belirteci tahmin etmek ve hangilerinin "önemli" olduğunu seçmek olduğunu düşünürsek, girdi dizinizin nasıl yazıldığı çok önemlidir.
+
+LLM'e sağladığınız girdi dizisine _prompt_ (istem) denir. İstemi dikkatli bir şekilde tasarlamak, **LLM'in çıktısını istenen sonuca yönlendirmeyi kolaylaştırır**.
+
+## LLM'ler Nasıl Eğitilir?
+
+LLM'ler, büyük metin veri kümeleri üzerinde eğitilir. Bu süreçte model, kendiliğinden denetimli (self-supervised) ya da maskeleme temelli dil modelleme (masked language modeling) görevleri aracılığıyla bir sonraki kelimeyi tahmin etmeyi öğrenir.
+
+Bu denetimsiz öğrenme sayesinde model dilin yapısını ve **metindeki temel kalıpları öğrenir, böylece daha önce hiç görmediği verilerde genelleme yapabilir**.
+
+Bu ilk _ön-eğitimden_ (pre-training) sonra, LLM'ler belirli görevler için denetimli öğrenmeyle _ince-ayar (fine-tuning)_ yapılabilir. Örneğin, bazı modeller diyalog yapıları ya da araç kullanımı için eğitilirken, bazıları sınıflandırma ya da kod üretimi üzerine odaklanır.
+
+## LLM'leri Nasıl Kullanabilirim?
+
+İki temel seçeneğiniz var:
+
+1. **Yerel Olarak Çalıştırmak** (donanımınız yeterliyse).
+
+2. **Bulut/API Kullanmak** (örneğin Hugging Face Serverless Inference API aracılığıyla).
+
+Bu kurs boyunca, ağırlıklı olarak modelleri Hugging Face Hub üzerinden API'ler aracılığıyla kullanacağız. Daha sonra bu modelleri kendi donanımınızda nasıl çalıştırabileceğinizi de göreceğiz.
+
+## LLM'ler Yapay Zeka Ajanlarında Nasıl Kullanılır?
+
+LLM'ler, yapay zeka Ajanlarının temel bir bileşenidir. **İnsan dilini anlama ve üretme temelini sağlarlar**.
+
+Kullanıcı talimatlarını yorumlayabilir, konuşmalarda bağlamı sürdürebilir, bir plan tanımlayabilir ve hangi araçları kullanacağına karar verebilirler.
+
+Bu adımları bu ünitenin ilerleyen kısımlarında daha ayrıntılı inceleyeceğiz. Ama şimdilik bilmeniz gereken şey: LLM, **Ajanın beynidir**.
+
+---
+
+Oldukça fazla şey öğrendik! LLM'lerin ne olduklarını, nasıl çalıştıklarını ve yapay zeka Ajanlarını nasıl güçlendirdiklerini temel düzeyde inceledik.
+
+Eğer dil modelleri ve doğal dil işleme dünyasına daha da derinlemesine dalmak isterseniz, ücretsiz NLP kursumuza göz atabilirsiniz.
+
+Artık LLM'lerin nasıl çalıştığını bildiğimize göre, **LLM'lerin kelime üretimlerini konuşma bağlamında nasıl yapılandırdığını** görme zamanı.
+
+Bu notebook'u çalıştırmak için **bir Hugging Face token'ına** ihtiyacınız var. Bunu https://hf.co/settings/tokens adresinden alabilirsiniz.
+
+Jupyter Notebook'ları nasıl çalıştıracağınızı öğrenmek için Hugging Face Hub'daki Jupyter Notebooklar sayfasına göz atın.
+
+Ayrıca Meta Llama modelleri için erişim talep etmeniz gerekir.
+"""
+