BİLGİSAYAR ERİŞİM SİSTEMİ

Evde Ücretsiz Ajan Geliştirme: Açık Kaynak Araçlar ve Modeller


Yalnızca ücretsiz araçlar ve açık kaynaklı modeller kullanarak dizüstü bilgisayarında çalışan eksiksiz bir çok ajanlı sistem kurabilirsin. Kredi kartı yok, API hız limiti yok, satıcı bağımlılığı yok. Bedeli ne? Daha yavaş çıkarım ve biraz daha az yetenek. Ancak öğrenme, deneyim ve küçük ölçekli otomasyon için bu fazlasıyla yeterli.

Bu rehberin sonunda, kendi donanımında çalışan yerel bir araştırma ajanın olacak — web arama, dosya okuma, bilgi sentezi — tamamen ücretsiz.

Açık Kaynak Ajan Geliştirmenin Gerekçesi

Maliyet Gerçekliği

Claude API fiyatlandırması üretim iş yükleri için makul, ancak öğrenme ve deney yapmak hızla birikirk. Yerel çıkarım bu endişeyi tamamen ortadan kaldırır — sıfır marjinal maliyetle sonsuz yineleme.

Gizlilik ve Veri Kontrolü

Bazı iş yükleri bulut API’lerine gidemez. Hasta verileri, tescilli kod, hassas iş mantığı — bunların tümü makinende kalmasından yararlanır. Yerel modeller, hiçbir veri donanımını terk etmeden aynı akıllı davranışı sağlar.

Gerçeklik Kontrolü

7–13B parametreli açık kaynak modeller, karmaşık akıl yürütme, kod üretimi ve talimat takibinde sınır modellerinin belirgin biçimde gerisinde kalır. Doğruluğun önemli olduğu üretim için ticari API’ler hâlâ en iyi seçim. Öğrenme ve prototipleme için yerel modeller mükemmeldir.

Açık Kaynak LLM Seçimi

LLM Aileleri

  • Llama (Meta): En yaygın desteklenen aile. Llama 3 özellikle yetenekli.
  • Mistral: Mükemmel kalite/parametre oranı. Mistral-7B boyutunun üzerinde performans gösterir.
  • Phi (Microsoft): Son derece verimli küçük modeller. Phi-3 Mini GPU olmadan çalışır.
  • Qwen (Alibaba): Güçlü çok dilli performans.

Model Boyutu ve Donanım Gereksinimleri

ModelParametreKuantizasyonVRAMHızKalite
Phi-3 Mini3,8B4-bit4GBÇok Hızlıİyi
Mistral-7B7B4-bit8GBHızlıİyi
Llama-3-8B8B4-bit8GBHızlıÇok İyi
Llama-3-13B13B4-bit10GBOrtaÇok İyi
Mixtral-8x7B46,7B (MoE)4-bit24GBYavaşMükemmel

Kuantizasyon: Neden Önemli

Kuantizasyon, daha az bellek kullanmak için model ağırlıklarını sıkıştırır. Tam hassasiyette 7B parametreli bir model ~28GB RAM gerektirir. Aynı model 4-bit kuantizasyonla ~4GB gerektirir — minimal kalite kaybıyla.

Donanıma göre başlangıç noktaları:

  • Dizüstü (8–16GB RAM): 4-bit Phi-3 Mini veya Mistral-7B
  • Orta GPU’lu masaüstü: GPU hızlandırmalı Mistral-7B veya Llama-3-8B
  • Yüksek performanslı GPU’lu masaüstü: 4-bit Mixtral-8x7B veya Llama-3-70B

Yerel Çıkarım Kurulumu

Ollama: En Kolay Başlangıç Noktası

Terminal window
# macOS'ta kur
brew install ollama
# Linux'ta kur
curl -fsSL https://ollama.com/install.sh | sh
# Mistral-7B'yi indir
ollama pull mistral
# Daha yavaş donanım için daha hafif seçenek
ollama pull phi3
# Çıkarım sunucusunu başlat
ollama serve

Çalıştığını doğrula:

Terminal window
curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Bir cümlede yapay zeka ajanı nedir?",
"stream": false
}'

LM Studio: GUI Alternatifi

LM Studio, modelleri indirip çalıştırmak için grafik arayüz sağlayan bir masaüstü uygulamasıdır. OpenAI uyumlu API uç noktası sunar.

Açık Kaynak Ajan Çerçeveleri

ÇerçeveEn İyiÖğrenme Eğrisi
LangChainGeniş araç desteğiOrta
LangGraphDurum makinesi iş akışlarıOrta-Yüksek
AutoGenÇok ajanlı konuşmalarDüşük
CrewAIRol tabanlı çok ajanlı sistemlerDüşük-Orta

AutoGen veya LangChain ile başla. AutoGen prototipleme için daha hızlı; LangChain ajan döngüsü üzerinde daha fazla kontrol sağlar.

İlk Ajanını Kurma: Yerel Araştırma Asistanı

Ortam Kurulumu

Terminal window
python3 -m venv agent-env
source agent-env/bin/activate
pip install langchain langchain-ollama langchain-community duckduckgo-search

Tam Ajan

#!/usr/bin/env python3
"""
Ollama + LangChain kullanarak Yerel Araştırma Ajanı
Ön koşullar:
- ollama serve (arka planda çalışıyor)
- ollama pull mistral
- pip install langchain langchain-ollama langchain-community duckduckgo-search
"""
import json
from langchain_core.tools import tool
from langchain_core.prompts import ChatPromptTemplate
from langchain_ollama import ChatOllama
from langchain.agents import AgentExecutor, create_react_agent
from duckduckgo_search import DDGS
@tool
def search_web(query: str) -> str:
"""DuckDuckGo kullanarak web'de bilgi arar."""
try:
with DDGS() as ddgs:
results = list(ddgs.text(query, max_results=5))
if not results:
return "Sonuç bulunamadı."
return json.dumps(
[{"title": r["title"], "snippet": r["body"], "url": r["href"]}
for r in results],
indent=2
)
except Exception as e:
return f"Arama başarısız: {e}"
@tool
def read_file(filepath: str) -> str:
"""Yerel bir dosyayı okur ve içeriğini döndürür."""
try:
with open(filepath, "r") as f:
return f.read()
except FileNotFoundError:
return f"Dosya bulunamadı: {filepath}"
@tool
def calculate(expression: str) -> str:
"""Basit bir aritmetik ifadeyi güvenle değerlendirir."""
try:
result = eval(expression, {"__builtins__": {}}, {})
return str(result)
except Exception as e:
return f"Hesaplama hatası: {e}"
llm = ChatOllama(
model="mistral",
base_url="http://localhost:11434",
temperature=0.3,
)
prompt = ChatPromptTemplate.from_messages([
("system", """Sen bir araştırma asistanısın. Araçlarını kullanarak soruları yanıtla.
Mevcut araçlar: {tool_names}
Araç açıklamaları: {tools}
Bu formatı tam olarak takip et:
Thought: Ne bulmam gerekiyor?
Action: araç_adı
Action Input: araç için girdi
Observation: araç sonucu
... (gerektiği kadar tekrarla)
Thought: Artık yeterli bilgim var.
Final Answer: tam yanıtın"""),
("user", "{input}"),
("placeholder", "{agent_scratchpad}"),
])
tools = [search_web, read_file, calculate]
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
verbose=True,
max_iterations=8,
handle_parsing_errors=True,
)
if __name__ == "__main__":
result = agent_executor.invoke({
"input": "Şu anda en popüler üç açık kaynaklı LLM nedir? İsimlerini ve her birinin bir temel özelliğini ver."
})
print(f"\nNİHAİ YANIT:\n{result['output']}")

Çalıştırma

Terminal window
# Terminal 1: Ollama'yı başlat
ollama serve
# Terminal 2: Ajanı çalıştır
python research_agent.py

Yetenekleri Genişletme: API Olmadan Araçlar

Yerel Veritabanı Erişimi

import sqlite3
@tool
def query_database(sql: str) -> str:
"""Yerel veritabanında salt okunur SQL sorgusu çalıştırır."""
try:
conn = sqlite3.connect("data.db")
cursor = conn.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
columns = [desc[0] for desc in cursor.description]
conn.close()
return json.dumps([dict(zip(columns, row)) for row in rows], indent=2)
except Exception as e:
return f"Veritabanı hatası: {e}"

Gömme ile Yerel Belge Arama

Terminal window
pip install sentence-transformers chromadb
from sentence_transformers import SentenceTransformer
import chromadb
model = SentenceTransformer("all-MiniLM-L6-v2")
client = chromadb.Client()
collection = client.create_collection("docs")
@tool
def search_docs(query: str) -> str:
"""Yerel belgeleri anlamsal benzerliğe göre arar."""
results = collection.query(
query_embeddings=[model.encode(query).tolist()],
n_results=3
)
return json.dumps(results["documents"][0], indent=2)

Gerçek Dünya Kısıtlamaları ve Çözümleri

Gecikme

Her çıkarım adımı için 2–30 saniye bekle. Stratejiler:

  • Daha az adımlı ajanlar tasarla; daha basit = daha hızlı
  • Mümkün olduğunda araç çağrılarını toplu yap

Doğruluk Açıkları

Azaltma stratejileri:

  • Daha kısa ve açık istemler — Beklenen formatı tam olarak belirt
  • Karmaşık görevleri adımlara böl
  • Araç çıktılarını ajana geri döndürmeden önce doğrula
  • Araç kullanımı için 0,1–0,3 sıcaklık kullan

Dağıtım: Dizüstünden Sürekli Çalışmaya

Docker

FROM python:3.12-slim
RUN pip install langchain langchain-ollama langchain-community duckduckgo-search
COPY research_agent.py .
ENV OLLAMA_HOST=host.docker.internal:11434
CMD ["python3", "research_agent.py"]

Systemd Servisi (Linux)

Terminal window
sudo systemctl enable ollama
sudo systemctl start ollama

Daha Derine: Evde Çok Ajanlı Sistemler

def run_pipeline(question: str) -> str:
research_result = researcher.invoke({"input": question})
final_output = writer.invoke({
"input": f"Bu araştırmaya dayanarak açık bir özet yaz:\n{research_result['output']}"
})
return final_output["output"]

Açık kaynak ajan geliştirme bugün pratik. Yol şu: çıkarım için Ollama, ajan döngüsü için LangChain veya AutoGen, arama için DuckDuckGo, ve geri kalanı için makinenin dosya sistemi.

Basit başla — yukarıdaki araştırma ajanı. Çalıştır. Sonra ikinci bir araç ekle. Sonra ikinci bir ajan.


İlgili Makaleler