Go (Golang) AI Ekosistemi — Detaylı Rehber (2026)
Go ekosisteminde en popüler AI araçları, kütüphaneler, SDK’lar ve framework’ler için uygulayıcı odaklı, çok detaylı bir referans: her biri ne işe yarar, neden var, nasıl kullanılır ve ne zaman tercih edilmeli.
İçindekiler
- Neden AI için Go?
- Agent ve Orkestrasyon Framework’leri
- Resmi ve Topluluk LLM Sağlayıcı SDK’ları
- Go’da Model Context Protocol (MCP)
- Vektör Veritabanları ve Go İstemcileri
- Yerel / Offline Çıkarım (Inference)
- Yapılandırılmış Çıktı, Prompt ve Yardımcı Kütüphaneler
- Tokenizasyon
- Go’da Klasik ML / Sayısal Hesaplama
- AI Sistemleri için Gözlemlenebilirlik (Observability) ve Ops
- Karşılaştırma Tablosu: Agent Framework’leri
- Karar Rehberi — Hangi Aracı Seçmeliyim?
- Uygulamalı Örnek: Go’da Minimal Bir RAG Pipeline’ı
- Ek Kaynaklar
1. Neden AI için Go?
Model eğitimi ve araştırma tarafında Python hâlâ hakim, ama Go, AI sistemlerinin production/altyapı katmanında tercih edilen dil hâline geldi: API gateway’leri, agent runtime’ları, RAG backend’leri ve binlerce eşzamanlı isteği düşük bellek kullanımıyla karşılayabilecek her şey. Go’nun AI stack’lerinde sürekli karşımıza çıkmasının nedenleri:
- Concurrency modeli: goroutine’ler ve channel’lar agent iş yüklerine doğal olarak oturuyor — paralel tool çağrıları, eşzamanlı LLM istekleri, fan-out/fan-in retrieval ve streaming token çıktısı.
- Tek statik binary: container’a koymak son derece kolay (küçük image, hızlı cold start — serverless AI gateway’ler için önemli).
- Bellek verimliliği: Go ile yazılmış agent servisleri, yük altında eşdeğer Python servislerine göre genellikle çok daha az bellek kullanıyor.
- Güçlü tip sistemi + generics (Go 1.18+): SDK yazarlarının, LLM’lerin yapılandırılmış çıktıları etrafında tip-güvenli wrapper’lar inşa etmesini sağlıyor.
- Altyapı ekosisteminin olgunluğu: Kubernetes, Docker, Terraform, Prometheus, gRPC, Temporal — agentic AI sistemlerinin üzerine deploy edildiği tüm cloud-native stack Go ile yazılmış durumda; dolayısıyla AI katmanınızı aynı dille bu ekosisteme bağlamak sürtünmeyi azaltıyor.
Go genellikle model eğitimi veya ağır tensör matematiği için kullanılmıyor (bu hâlâ Python/PyTorch/JAX’in alanı), ama serving, orkestrasyon ve entegrasyon katmanında baskın.
2. Agent ve Orkestrasyon Framework’leri
Bunlar Go dünyasındaki “LangChain muadilleri” — ham LLM API’lerinin üzerine chain/graph, agent, tool çağırma, hafıza (memory) ve çok adımlı akıl yürütme döngüleri ekleyen kütüphaneler.
2.1 LangChainGo
- Nedir: Python LangChain projesinin resmi Go portu — “Go’da LLM tabanlı program yazmanın en kolay yolu.”
- Amaç: Kompozisyona uygun chain’ler, agent’lar, prompt şablonları, hafıza, doküman yükleyici/bölücüler ve 10+ LLM sağlayıcısıyla (OpenAI, Anthropic, AWS Bedrock, Google, Ollama vb.) entegrasyon, artı çok sayıda vektör veritabanı desteği.
- Neden tercih edilir: Go ekosistemindeki en geniş sağlayıcı/tool kapsamı; ekibiniz zaten LangChain’in mental modeliyle (chain, agent, retriever) düşünüyorsa kavramlar doğrudan aktarılır — karma Python/Go ekipleri için değerli.
- Dezavantajları: Büyük framework’ler arasında en ağır bağımlılık ayak izine sahip (bazı denetimlerde 170+ transitive dependency raporlanmış); soyutlama katmanları bazen idiomatic Go’dan çok Python’a benzeyebiliyor.
- Tipik kullanım: RAG chatbot’lar, doküman soru-cevap, LangChain tarzı chain/prompt kalıplarını hızlıca yeniden kullanmak isteyen prototipler.
llm, _ := openai.New()
prompt := "Goroutine'leri bir Python geliştiricisine anlat."
completion, _ := llms.GenerateFromSinglePrompt(context.Background(), llm, prompt)
fmt.Println(completion)
2.2 Eino (CloudWeGo / ByteDance)
- Nedir: ByteDance tarafından CloudWeGo şemsiyesi altında açık kaynak yapılan, “Go’da nihai LLM/AI uygulama geliştirme framework’ü.” Tasarım fikirlerini LangChain ve Google ADK’dan alıyor ama idiomatic Go olacak şekilde inşa edilmiş.
- Amaç: Bileşen tabanlı mimari —
ChatModel,Tool,Retriever,ChatTemplate— bunları graph ve workflow’lara bağlıyorsunuz, ayrıca çoklu-agent koordinasyonu, human-in-the-loop için interrupt/resume ve streaming içeren bir Agent Development Kit (ADK). - Neden tercih edilir: Ölçekte production dayanıklılığı için inşa edilmiş — circuit breaker, backoff ve ByteDance’in gerçek trafiği altında test edilmiş. Graph/workflow kompozisyon modeli, Python tarzı dinamik chain’ler yerine Go idiomlarına (interface’ler, açık tipler) yakın kalarak karmaşık çok adımlı pipeline’lar için güçlü bir seçim.
- Dezavantajları: LangChainGo’ya göre daha küçük topluluk; graph soyutlaması nedeniyle daha dik bir öğrenme eğrisi.
- Tipik kullanım: Güvenilirlik mühendisliğinin (rate limiting, retry, circuit breaking) yerleşik olması gereken yüksek-throughput production agent sistemleri.
2.3 Firebase Genkit (Go)
- Nedir: Google’ın açık kaynak, kod-merkezli AI uygulama geliştirme framework’ü; Node.js/JS SDK’sının yanında Go desteği de birinci sınıf.
- Amaç: Birleşik generation API’si — tek bir config parametresini değiştirerek Gemini, OpenAI ve Anthropic arasında geçiş yapabilirsiniz. Auth, retry, streaming ve hata yönetimini tutarlı biçimde hallediyor. Pinecone, Chroma, Vertex AI Vector Search gibi vektör veritabanlarıyla otomatik embedding üretimi ve hibrit retrieval içeren yerleşik entegrasyonlar sunuyor.
- Neden tercih edilir: Prototipten ölçeklenebilir bir backend’e günler içinde geçmek isteyen ekipler için en iyi seçim — Google’ın geliştirici araçları (flow’ları izlemek/değerlendirmek için yerel bir dev arayüzü, “Genkit flows”) kutudan çıktığı gibi güçlü gözlemlenebilirlik sağlıyor.
- Dezavantajları: Daha büyük bağımlılık ağacı (~129 bağımlılık raporlanmış); Google’ın ekosistemine/kalıplarına daha sıkı bağlılık.
- Tipik kullanım: Zaten Firebase/Google Cloud üzerinde olan ve yerleşik değerlendirme (eval) ve izleme (tracing) araçlarıyla hızlı bir production yolu isteyen ekipler.
2.4 Google Agent Development Kit (ADK) for Go
- Nedir: Google’ın AI agent’ları inşa etmek, değerlendirmek ve deploy etmek için resmi framework’ü — Go, Python ve Java’nın yanında desteklenen dillerden biri.
- Amaç: Çoklu-agent orkestrasyonu, yerel MCP (Model Context Protocol) desteği ve birbirleriyle/servislerle konuşması gereken agent’lar için yerel A2A (Agent-to-Agent) protokol desteği.
- Neden tercih edilir: Gemini ile Google Cloud üzerindeyseniz en eksiksiz seçenek — Cloud Run üzerinde sorunsuz bir deploy hikayesi ve (OpenAI Agents Go ile birlikte) bugün itibarıyla birinci sınıf MCP desteğine sahip yalnızca iki framework’ten biri.
- Dezavantajları: En doğal olarak Google-merkezli bir stack’e uygun; tasarım gereği multi-cloud/multi-provider olmak istiyorsanız daha az faydalı.
- Tipik kullanım: MCP üzerinden agent-agent iletişimi ve tool keşfi gerektiren, GCP üzerindeki kurumsal çoklu-agent sistemleri.
2.5 OpenAI Agents SDK (Go)
- Nedir: OpenAI’nin Agents SDK kalıbının (agent’lar, handoff’lar, guardrail’ler, tool kullanımı) bir Go implementasyonu.
- Amaç: Tool çağıran, başka agent’lara devreden ve guardrail uygulayan agent’lar inşa etmek için hafif primitifler — Python/TS Agents SDK tasarımını yansıtır.
- Neden tercih edilir: Google ADK ile birlikte, yerel MCP desteğine sahip birkaç framework’ten biri; OpenAI modellerine/araçlarına standartlaşmış ama runtime için Go’nun performans/concurrency avantajlarını istiyorsanız iyi bir seçim.
- Tipik kullanım: Go’nun deploy özelliklerine ihtiyaç duyan, OpenAI-öncelikli agent ürünleri.
2.6 Jetify AI SDK
- Nedir: Devbox’ın yaratıcılarından, tam bir agent framework’ünün getirdiği yükü taşımayan, hafif ve idiomatic-Go bir sağlayıcı-soyutlama SDK’sı.
- Amaç: Chain/graph olmadan temiz bir çoklu-sağlayıcı generation API’si — birden fazla LLM backend’i üzerinde ince, tip-güvenli bir katman.
- Neden tercih edilir: Sağlayıcı soyutlaması istiyorsanız (OpenAI ↔ Anthropic ↔ Gemini arasında geçiş) ama chain/agent/memory konusunda tam bir framework’ün görüşlerini benimsemek istemiyorsanız.
- Tipik kullanım: Kendi orkestrasyon mantığını inşa etmek isteyen ama her sağlayıcının HTTP client’ını sıfırdan yazmak istemeyen ekipler.
2.7 Anyi
- Nedir: LLM uygulamaları için workflow/pipeline tanımlarına odaklanan, Go-native bir agent framework’ü.
- Amaç: LLM çağrıları etrafında deklaratif çok adımlı workflow’lar (doğrulama, retry, koşullu dallanma), basit ve bağımlılığı hafif olmayı hedefliyor.
- Tipik kullanım: Eino veya LangChainGo’nun ağırlığı olmadan, yapılandırılmış, adım-tabanlı LLM workflow’larına ihtiyaç duyan küçük servisler.
2.8 GoAI SDK
- Nedir: Vercel AI SDK’nın tasarım felsefesinden ilham alan, daha yeni (2026), güvenlik odaklı ve minimal bağımlılığa sahip bir Go AI SDK’sı.
- Amaç: 22-25+ LLM sağlayıcısı (OpenAI, Anthropic, Gemini, Bedrock, Azure OpenAI, Groq, Mistral, Cohere, DeepSeek, Ollama, vLLM, NVIDIA NIM, Cloudflare Workers AI ve daha fazlası) üzerinde birleşik tek bir API; generics tabanlı tip güvenliği, channel tabanlı streaming, otomatik tool-call döngüleri, MCP client desteği (stdio/HTTP/SSE), prompt caching ve yerleşik Langfuse/OpenTelemetry gözlemlenebilirliği — bunların hepsi bilinçli olarak çok küçük bir bağımlılık ayak iziyle (çekirdekte ~2 bağımlılık; Eino için 37, Genkit Go için 129, LangChainGo için 170+ olarak raporlanmış).
- Neden tercih edilir: Tasarımının temel argümanı tedarik zinciri güvenliği — kullandığınız her sağlayıcının API anahtarını yoğunlaştıran bir SDK için her bağımlılık bir saldırı yüzeyi; popüler JS/Python AI paketlerine yönelik son dönemdeki tedarik zinciri saldırıları (ör. ele geçirilmiş LiteLLM ve Axios sürümleri) minimal-bağımlılık-tasarım-gereği yaklaşımını motive etti.
- Tipik kullanım: Güvenlik açısından hassas production sistemleri veya ağır bir framework olmadan Go’da doğal olarak Vercel-AI-SDK benzeri ergonomi isteyen ekipler.
3. Resmi ve Topluluk LLM Sağlayıcı SDK’ları
“Framework” katmanının altında, bireysel model sağlayıcıları için ham HTTP/gRPC istemci SDK’ları bulunur. Chain/agent’a ihtiyacınız yoksa — sadece temiz, tip’li API erişimi istiyorsanız — bunları doğrudan kullanın.
| SDK | Sağlayıcı | Notlar |
|---|---|---|
go-openai (sashabaranov/go-openai) | OpenAI | En yaygın kullanılan topluluk client’ı; Chat Completions, GPT-4/GPT-3, DALL·E, Whisper, streaming ve function/tool çağırma desteği. |
| openai-go | OpenAI (resmi) | OpenAI’nin kendi resmi Go kütüphanesi — kutudan çıktığı gibi chat completion, streaming ve tool çağırma; OpenAI’nin kendisi tarafından üretiliyor/bakımı yapılıyor. |
| anthropic-sdk-go | Anthropic | Claude için resmi Go SDK’sı — messages API, streaming, tool use, extended thinking, prompt caching. |
| go-genai | Gemini ve diğer Google üretken modelleri için resmi Go SDK’sı. | |
| ollama/api | Ollama (yerel) | Yerel olarak çalışan bir Ollama sunucusuyla programatik olarak konuşmak için Go client paketi. |
Framework yerine neden ham sağlayıcı SDK’sı kullanılır? Minimal soyutlama, request/response şekli üzerinde maksimum kontrol ve dayatılmış bir chain/agent katmanı istemediğinizde — örneğin, sadece “mesaj gönder, completion al, token stream et” gerektiren bir mikroservis içinde.
4. Go’da Model Context Protocol (MCP)
MCP (Anthropic tarafından oluşturuldu, artık geniş bir endüstri standardı), LLM uygulamalarının harici tool/veri kaynaklarını (dosya sistemleri, veritabanları, API’ler, Kubernetes cluster’ları vb.) standartlaştırılmış bir protokol üzerinden keşfetmesine ve çağırmasına olanak tanır. Go ekosisteminde iki ana paket öne çıktı:
- MCP-Go (
mark3labs/mcp-go): MCP’nin orijinal, topluluk-odaklı Go implementasyonu — server ve client’lar; ekosistemin örnek projelerinde yaygın olarak kullanılıyor. - Resmi
modelcontextprotocol/go-sdk: MCP için daha yeni, resmi olarak bakımı yapılan Go SDK’sı (client + server); MCP daha geniş bir standarda dönüştükçe kanonik spesifikasyonla uyumlu hâle geldi.
Amaç: Go tabanlı bir agent’ın (Eino, ADK, LangChainGo, GoAI vb. ile inşa edilmiş) her tool entegrasyonunu koda gömmek yerine, çalışma zamanında bir MCP sunucusundan tool’ları keşfetmesini sağlamak — örneğin “işte bir Postgres MCP sunucusu, işte bir GitHub MCP sunucusu.”
Tipik kullanım: Her biri için özel bir tool wrapper’ı yazmadan birçok iç sisteme (ticketing, veritabanları, CI/CD, cloud API’leri) bağlanması gereken kurumsal agent’lar; ayrıca MCP tool çağrılarının önünde güvenlik/gözlemlenebilirlik gateway’leri inşa etmek için de yaygın (bir agent’ın neye erişebileceğini denetlemek, redakte etmek veya rate-limit uygulamak).
5. Vektör Veritabanları ve Go İstemcileri
RAG pipeline’ları embedding saklama ve benzerlik araması gerektirir. Go geliştiricileri için hem özel vektör veritabanları için uzak istemci SDK’ları hem de gömülü (embedded), süreç-içi seçenekler mevcut.
| Araç | Tür | Notlar |
|---|---|---|
| Qdrant Go client | Uzak (gRPC/REST) | Qdrant için resmi client; yüksek sorgu hacmi ve karmaşık metadata filtreleme için güçlü bir seçim. |
| Weaviate Go client | Uzak | Weaviate için resmi client; yerleşik vektörleştirme modülleri (OpenAI, Cohere, HuggingFace) sayesinde ham metin ekleyip Weaviate’in onu embed etmesine izin verebilirsiniz, ayrıca güçlü hibrit (anahtar kelime + vektör) arama sunar. |
| Milvus Go SDK | Uzak | Milyar-ölçekli vektör benzerlik araması için inşa edilmiş, C++ çekirdekli bir motor olan Milvus için client; devasa ölçekte (100M+ vektör) tercih edilen seçim. |
| Pinecone Go client | Uzak (managed) | Pinecone’un tamamen yönetilen, sıfır-operasyon vektör servisi için client. |
| chromem-go | Gömülü (süreç-içi) | Chroma benzeri bir API’ye sahip, saf Go ile yazılmış, bağımlılığı olmayan, gömülebilir bir vektör veritabanı — in-memory, isteğe bağlı disk kalıcılığı ile. Ayrı bir vektör DB servisi çalıştırmak istemediğinizde harika bir seçenek. |
pgx ile pgvector | Postgres eklentisi | Verileriniz zaten Postgres’te yaşıyorsa, pgvector embedding’leri ilişkisel verinizin yanında saklamanıza ve düz SQL join’leriyle vektör araması yapmanıza olanak tanır — ayrı bir altyapı çalıştırmaya gerek yok. |
Aralarında seçim yapmak (uygulayıcı yazılarından pratik kural): Birkaç milyon vektörün altındaki RAG’lar için, SQL join’leri istiyorsanız pgvector; yüksek sorgu hacmi, karmaşık filtreleme veya 100M+ ölçek için Qdrant/Milvus; hibrit arama için Weaviate; sıfır-operasyon yönetilen ölçeklenme için Pinecone; harici bir servis olmadan gömülü/yerel/küçük ölçekli kullanım için chromem-go.
6. Yerel / Offline Çıkarım (Inference)
- Ollama: Go ile yazılmış açık kaynak bir araç; LLM’leri (Llama 3, Mistral, Gemma, DeepSeek, Qwen, GLM, Kimi ve daha fazlası) tüketici donanımında, llama.cpp tarzı bir backend üzerinden, basit bir REST API ile yerel olarak çalıştırır. En eski ve en etkili Go AI projelerinden biri — diğer birçok araç (LangChainGo, Eino, GoAI, ADK) kutudan çıktığı gibi bir Ollama sağlayıcısı/entegrasyonu sunuyor. Çok küçük modeller GPU’suz bile çalışabilir.
- LocalAI: OpenAI/Anthropic-uyumlu bir API sunan yerel bir çıkarım stack’i; mevcut OpenAI-SDK kodunuzu kod değişikliği yapmadan yerel bir model sunucusuna yönlendirmenizi sağlar.
- llama.go: CGo/C++ bağımlılıklarından tamamen kaçınmak isteyen ekipler için, llama.cpp ruhunda saf Go ile yeniden yazılmış bir implementasyon.
- gpt4all-bindings: GPT4All’ın yerel modelleri için diller-arası bağlar (Go dahil); model yükleme ve çıkarımı basitleştiriyor.
Yerel çıkarımın özellikle Go’da neden önemli olduğu: Go’nun tek-binary deploy modeli, “yerel bir model sunucusunu altyapımın bir parçası olarak gönder” yaklaşımıyla doğal olarak eşleşiyor — Python runtime yok, bağımlılık cehennemi yok, sadece bir binary artı model ağırlıkları.
7. Yapılandırılmış Çıktı, Prompt ve Yardımcı Kütüphaneler
- instructor-go: Popüler “Instructor” kalıbının bir Go portu — LLM çıktılarını doğrulanmış, tip’li Go struct’larına zorlar (JSON şeması + doğrulama başarısız olduğunda retry ile). LLM çağrısından serbest metin yerine garantili şekilde veri almanız gerektiğinde faydalı.
- gollm: Basit, ergonomik prompt yazımı ve sağlayıcı soyutlamasına odaklanan hafif bir Go LLM kütüphanesi — daha az framework, daha doğrudan kontrol isteyen ekipler için LangChainGo’ya göre daha küçük bir alternatif.
- fabric: “AI kullanarak insanları güçlendirmek” için açık kaynak bir framework (Go implementasyonuyla) — komut satırında birbirine bağlanabilen, topluluk kaynaklı prompt kalıplarından (“pattern”) oluşan modüler bir sistem, ör.
pbpaste | fabric --pattern summarize. Kişisel AI destekli CLI workflow’ları inşa etmek için popüler. - lingoose: Minimal bir Go LLM kütüphanesi — LangChainGo’ya göre daha küçük ve daha az dayatmacı, sadece temel şeyleri (prompt oluşturma, basit pipeline’lar) isteyen geliştiricilere yönelik.
8. Tokenizasyon
- tiktoken-go: OpenAI’nin
tiktokentokenizer’ının bir Go portu; OpenAI modelleri için token sayma/kodlama/kod çözme amacıyla kullanılır — maliyet tahmini, context-window bütçeleme ve embedding öncesi dokümanları parçalara ayırmak (chunking) için gerekli.
9. Go’da Klasik ML / Sayısal Hesaplama
Yukarıdaki “AI araçları” LLM-merkezli olsa da, Go’da klasik ML/sayısal hesaplama için daha eski ve daha küçük bir ekosistem de var:
- Gorgonia: Hesaplama grafikleri inşa etmek ve çalıştırmak için bir kütüphane (düşük seviyeli bir TensorFlow’a benzer ruhta) — saf Go’da özel sinir ağı eğitimi/çıkarımı için kullanılır.
- Gonum: Go için standart sayısal hesaplama kütüphanesi — lineer cebir, istatistik, optimizasyon, graf algoritmaları. Diğer birçok Go ML aracının temelini oluşturuyor.
- GoLearn: scikit-learn’in API’sine gevşek şekilde modellenmiş, genel amaçlı bir makine öğrenmesi kütüphanesi — sınıflandırma, regresyon ve temel veri ön işleme yardımcı araçları.
Bunlar bugün yukarıdaki LLM-uygulama framework’lerine göre çok daha az kullanılıyor, çünkü model eğitimi hâlâ büyük ölçüde Python’da yapılıyor — ama gömülü/edge ML, özel benzerlik skorlama veya bir Go servisi içinde çalışan hafif istatistiksel modeller için önemliler.
10. AI Sistemleri için Gözlemlenebilirlik (Observability) ve Ops
- OpenTelemetry (GenAI semantic conventions): LLM çağrılarını (prompt’lar, completion’lar, token kullanımı, gecikme) span olarak izlemek için ortaya çıkan standart — çoğu modern Go AI SDK’sı (GoAI, Genkit, Eino), çekirdek SDK’yı bağımlılık açısından hafif tutmak için genellikle ayrı bir go.mod alt-modülünde OTel entegrasyonları sunuyor.
- Langfuse (Go SDK / entegrasyon): Açık kaynak bir LLM gözlemlenebilirlik platformu — generation’ları, tool çağrılarını ve çok adımlı agent döngülerini izler; birkaç Go SDK’sı (GoAI SDK, Genkit), prompt/response inceleme, maliyet takibi ve değerlendirme veri setleri için doğrudan entegre oluyor.
11. Karşılaştırma Tablosu: Agent Framework’leri
| Framework | Bakımını Yapan | Tasarım Felsefesi | Sağlayıcı Kapsamı | MCP Desteği | Göreceli Ağırlık | En İyi Kullanım |
|---|---|---|---|---|---|---|
| LangChainGo | Topluluk | LangChain portu | En geniş (10+) | Topluluk eklentileri | En ağır (~170+ dep.) | Zaten LangChain kalıplarını kullanan ekipler |
| Eino | ByteDance/CloudWeGo | Go-idiomatic graph’lar | OpenAI, Ollama, büyüyen | Topluluk üzerinden | Orta (~37 dep.) | Yüksek-throughput production sistemleri |
| Genkit (Go) | Kod-merkezli, birleşik API | Gemini, OpenAI, Anthropic | Büyüyen | Ağır (~129 dep.) | Hızlı prototip → production, Google Cloud | |
| Google ADK (Go) | Kurumsal çoklu-agent | Gemini-öncelikli | ✅ Yerel | Orta-ağır | GCP çoklu-agent + A2A sistemleri | |
| OpenAI Agents (Go) | OpenAI (topluluk portu) | Agent/handoff/guardrail | OpenAI-öncelikli | ✅ Yerel | Hafif-orta | OpenAI-öncelikli agent ürünleri |
| Jetify AI SDK | Jetify | İnce sağlayıcı soyutlaması | Çoklu sağlayıcı | — | Hafif | Özel orkestrasyon, framework’e bağlı kalmamak |
| Anyi | Topluluk | Deklaratif workflow’lar | Çoklu sağlayıcı | — | Hafif | Küçük, yapılandırılmış LLM pipeline’ları |
| GoAI SDK | Topluluk (2026) | Vercel-AI-SDK ilhamlı, güvenlik-öncelikli | 22-25+ | ✅ Client | En hafif (~2 dep.) | Güvenlik açısından hassas, minimal-bağımlılık production |
12. Karar Rehberi — Hangi Aracı Seçmeliyim?
- “En geniş ekosistemi istiyorum / zaten LangChain biliyorum” → LangChainGo
- “Yüksek throughput’ta production-grade dayanıklılık gerekiyor” → Eino
- “Google Cloud’dayım, Gemini kullanıyorum, hızlı gönderim istiyorum” → Genkit (Go) veya Google ADK (çoklu-agent + A2A gerekiyorsa ADK)
- “MCP desteği önceliğim” → Google ADK veya OpenAI Agents SDK (Go)
- “Minimal bağımlılık ve güçlü tedarik zinciri hijyeni istiyorum” → GoAI SDK
- “Sadece temiz bir çoklu-sağlayıcı API istiyorum, framework istemiyorum” → Jetify AI SDK veya ham sağlayıcı SDK’ları (
go-openai,anthropic-sdk-go,go-genai) - “LLM’den garantili tip’li/yapılandırılmış çıktı istiyorum” → instructor-go
- “Yerel/offline çıkarım gerekiyor” → Ollama (+
ollama/apiclient’ı) veya OpenAI-uyumlu yerel sunucu için LocalAI - “Vektör araması gerekiyor ama ayrı bir DB çalıştırmak istemiyorum” → chromem-go veya pgvector
- “Devasa ölçekte vektör araması gerekiyor” → Qdrant veya Milvus
13. Uygulamalı Örnek: Go’da Minimal Bir RAG Pipeline’ı
Yukarıdaki araçlardan birkaçını birleştiren bir taslak — gömülü bir vektör deposu (chromem-go), bir LLM sağlayıcı SDK’sı (go-openai) ve tool erişimi için MCP:
package main
import (
"context"
"fmt"
"github.com/philippgille/chromem-go"
openai "github.com/sashabaranov/go-openai"
)
func main() {
ctx := context.Background()
client := openai.NewClient("YOUR_OPENAI_KEY")
// 1. Gömülü vektör DB — harici bir servise gerek yok
db := chromem.NewDB()
collection, _ := db.CreateCollection("docs", nil, nil)
_ = collection.AddDocument(ctx, chromem.Document{
ID: "doc1",
Content: "Go'nun goroutine'leri eşzamanlı LLM tool çağrılarını ucuzlaştırır.",
})
// 2. Kullanıcı sorusu için ilgili bağlamı getir
query := "Go neden eşzamanlı agent iş yükleri için iyi?"
results, _ := collection.Query(ctx, query, 3, nil, nil)
// 3. Bağlama dayalı bir prompt oluştur ve LLM'i çağır
context := ""
for _, r := range results {
context += r.Content + "\n"
}
resp, _ := client.CreateChatCompletion(ctx, openai.ChatCompletionRequest{
Model: openai.GPT4o,
Messages: []openai.ChatCompletionMessage{
{Role: "system", Content: "Sadece verilen bağlamı kullanarak cevap ver."},
{Role: "user", Content: fmt.Sprintf("Bağlam:\n%s\n\nSoru: %s", context, query)},
},
})
fmt.Println(resp.Choices[0].Message.Content)
}
Tam olarak bu kalıp — embed → retrieve → augment → generate — LangChainGo, Eino, Genkit ve GoAI SDK’nın chain/graph/flow’larla sizin için otomatikleştirdiği şeydir; yukarıdaki ham versiyon perde arkasında ne olduğunu gösteriyor.
14. Ek Kaynaklar
awesome-golang-ai(GitHub) — Go AI/ML projelerinin küratörlüğü yapılmış, topluluk tarafından bakımı sürdürülen bir listesi.- Her framework’ün resmi GitHub deposu/dokümantasyonu (isimle arayın:
langchaingo,cloudwego/eino,firebase/genkit,google/adk-go,mark3labs/mcp-go,modelcontextprotocol/go-sdk,philippgille/chromem-go,sashabaranov/go-openai). - GitHub’da
language:gofiltresiyleai-frameworkvevector-databasekonuları — en güncel, en aktif projeler için.
Bu doküman, Go AI ekosisteminin 2026 ortası itibarıyla durumunu yansıtır. Ekosistem hızlı ilerliyor — production’a almadan önce her projenin deposundan en güncel API yüzeyini kontrol edin.