AI Ajanı Oluşturun
Bağımsız olarak düşünebilen, planlayabilen, araç kullanabilen ve karmaşık çok adımlı görevleri tamamlayabilen otonom AI ajanları oluşturun.
Giriş
AI ajanları, chatbot ve asistanların ötesindeki bir sonraki evrim aşamasını temsil eder. Bir asistan tek tek isteklere yanıt verirken, bir ajan minimum insan gözetimi ile çok adımlı görevleri otonom olarak planlayabilir ve yürütebilir.
Bu ileri düzey rehberde, sorunlar hakkında düşünebilen, planlar oluşturabilen, araçları kullanabilen ve karmaşık hedefleri kendi başına tamamlayabilen bir AI ajanı sıfırdan oluşturacaksınız.
AI Ajanı Nedir?
Bir AI ajanı, dört temel yeteneğe sahip bir sistemdir:
- Otonomi — Her adımda talimat almadan bağımsız olarak çalışır ve kararlar verir.
- Algılama — Ortamını gözlemler ve şeylerin mevcut durumunu anlar.
- Muhakeme — Sorunlar üzerinde düşünür, seçenekleri değerlendirir ve planlar oluşturur.
- Eylem — Araçları kullanarak somut eylemler gerçekleştirir — arama, yazma, hesaplama, API çağırma.
💡 Ajan vs. Asistan
Asistan talimatlarınızı bekler ve bir seferde bir görevi yürütür. Ajan bir hedef alır ve hedefe ulaşana kadar gerekli adımları bağımsız olarak belirler.
Ajan Döngüsü
Her AI ajanı, dört aşamadan oluşan sürekli bir döngüde çalışır:
Gözlemleme
Ajan ortamından bilgi toplar — kullanıcının isteği, araç çıktıları, hata mesajları veya yeni veriler.
Düşünme
Ajan, gözlemlediği şeyi değerlendirir. Mevcut hedefi, neyin başarıldığını ve en iyi sonraki adımın ne olacağını düşünür.
Harekete Geçme
Ajan seçtiği eylemi yürütür — bir araç çağırma, dosya yazma, kod çalıştırma veya istek gönderme.
Yansıtma
Ajan sonucu değerlendirir. Eylem işe yaradı mı? Hedefe daha yakın mı? Farklı bir yaklaşım denemeli mi?
Araçlar ve Ortam
Araçlar, ajanlara güçlerini verir. Araçlar olmadan ajan sadece bir dil modelidir. Araçlarla gerçek dünya ile etkileşim kurabilir:
class Tool:
"""Base class for agent tools."""
def __init__(self, name, description):
self.name = name
self.description = description
def execute(self, **kwargs):
raise NotImplementedError
class WebSearchTool(Tool):
def __init__(self):
super().__init__(
"web_search",
"Search the internet for current information"
)
def execute(self, query):
# In production, use a real search API
return f"Search results for: {query}"
class FileWriteTool(Tool):
def __init__(self):
super().__init__(
"write_file",
"Write content to a file on disk"
)
def execute(self, filename, content):
with open(filename, 'w') as f:
f.write(content)
return f"Written to {filename}"
class CodeExecutionTool(Tool):
def __init__(self):
super().__init__(
"run_code",
"Execute Python code and return the output"
)
def execute(self, code):
# WARNING: In production, use sandboxed execution!
import subprocess
result = subprocess.run(
["python", "-c", code],
capture_output=True, text=True, timeout=30
)
return result.stdout or result.stderrAjan Oluşturma
Gözlemleme-düşünme-harekete geçme döngüsüyle eksiksiz bir AI ajanı oluşturalım:
from openai import OpenAI
import json
class AIAgent:
def __init__(self, name, goal, tools):
self.name = name
self.goal = goal
self.tools = {tool.name: tool for tool in tools}
self.client = OpenAI()
self.memory = []
self.max_iterations = 10
def _get_tool_descriptions(self):
return [
{
"type": "function",
"function": {
"name": t.name,
"description": t.description,
"parameters": {"type": "object", "properties": {}}
}
}
for t in self.tools.values()
]
def think(self, observation):
"""The agent's reasoning step."""
self.memory.append({"role": "user", "content": observation})
response = self.client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": f"""You are {self.name},
an autonomous AI agent. Your goal: {self.goal}
Available tools: {list(self.tools.keys())}
Think step by step:
1. What have I learned so far?
2. What should I do next?
3. Which tool should I use?
4. Am I done with my goal?
Respond with JSON:
{{"thought": "your reasoning",
"action": "tool_name or DONE",
"action_input": {{"param": "value"}}}}"""},
*self.memory
],
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
def run(self, initial_task):
"""Main agent loop."""
print(f"Agent '{self.name}' starting: {initial_task}")
observation = initial_task
for i in range(self.max_iterations):
print(f"\n--- Iteration {i+1} ---")
# Think
result = self.think(observation)
print(f"Thought: {result['thought']}")
# Check if done
if result["action"] == "DONE":
print(f"\nAgent completed: {result['thought']}")
return result["thought"]
# Act
tool = self.tools.get(result["action"])
if tool:
try:
output = tool.execute(**result.get("action_input", {}))
observation = f"Tool '{tool.name}' returned: {output}"
print(f"Action: {tool.name} -> {output[:200]}")
except Exception as e:
observation = f"Error: {str(e)}"
else:
observation = f"Unknown tool: {result['action']}"
self.memory.append(
{"role": "assistant", "content": json.dumps(result)}
)
return "Max iterations reached."
# Create and run the agent
agent = AIAgent(
name="Research Assistant",
goal="Research a topic and write a summary report",
tools=[WebSearchTool(), FileWriteTool(), CodeExecutionTool()]
)
agent.run("Research the latest trends in AI agents for 2025")Çok Adımlı Planlama
Karmaşık hedefler için ajanlar, yürütmeden önce açık bir plan oluşturmaktan fayda görür:
class PlanningAgent(AIAgent):
"""Agent that creates a plan before executing."""
def create_plan(self, task):
response = self.client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": f"""Create a step-by-step
plan to accomplish this task. Available tools: {list(self.tools.keys())}
Return JSON: {{"steps": ["step 1", "step 2", ...]}}"""},
{"role": "user", "content": task}
],
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
def run(self, task):
# First, create a plan
plan = self.create_plan(task)
print(f"Plan: {plan['steps']}")
# Then execute each step
results = []
for step in plan["steps"]:
result = super().run(step)
results.append(result)
return results✅ Planlama Stratejisi
Ajanın önce bir plan oluşturmasını sağlayın, ardından adım adım yürütün. Bir adım başarısız olursa, baştan başlamak yerine mevcut durumdan yeniden planlamasını sağlayın. Bu daha verimlidir ve insanların karmaşık görevleri nasıl ele aldığını yansıtır.
Güvenlik ve Koruma Rayları
Otonom ajanların güvenlik önlemlerine ihtiyacı var. İşte kritik koruma rayları:
- Sandbox Ortamı — Ajan kodunu izole ortamlarda çalıştırın. Ajanlara dosya sisteminize veya ağınıza sınırsız erişim asla vermeyin.
- İterasyon Limitleri — Sonsuz döngüleri önlemek için maksimum iterasyon sayıları belirleyin. Çoğu görev 10 adımın altında tamamlanmalıdır.
- İnsan Onay Kapıları — Yüksek riskli eylemler (dosya silme, e-posta gönderme, satın alma yapma) için insan onayı gerekli kılın.
- Kapsamlı Günlükleme — Her düşünceyi, eylemi ve sonucu kaydedin. Bu, ajan davranışının hata ayıklama ve denetimi için esastır.
⚠️ Kritik Güvenlik Uyarısı
Bir AI ajanına insan gözetimi olmadan kod yürütme, dosya yönetme veya finansal işlem yapma konusunda asla sınırsız erişim vermeyin. Salt okunur araçlarla başlayın ve güven oluşturdukça yetenekleri kademeli olarak genişletin.
Özet
Otonom bir AI ajanı oluşturdunuz. Önemli çıkarımlar:
- AI ajanları sürekli bir gözlemleme-düşünme-harekete geçme-yansıtma döngüsünde çalışır.
- Araçlar, ajanlara gerçek dünya ile etkileşim kurma yeteneği verir.
- Yürütmeden önce planlama, karmaşık görevlerde başarı oranlarını artırır.
- Güvenlik koruma rayları (sandbox, limitler, insan onayı) isteğe bağlı değildir — esastır.