ایجنت‌ها

ساخت ایجنت — اولین قدم‌ها

ساخت ایجنت — اولین قدم‌ها — راهنمای فارسی از مجموعهٔ «ایجنت‌ها» در وبلاگ آیرا. بازنویسی‌شده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.

نوشتهٔ به‌روزرسانی: ۳ دقیقه مطالعه
تصویر مقالهٔ ساخت ایجنت — اولین قدم‌ها

خیلی‌ها فکر می‌کنن ساخت یه AI agent کار یه تیم بزرگ با GPU مخصوصه. واقعیت اینه که با یه API key و چند خط Python می‌تونی اولین ایجنت کارآمدت رو بسازی. این مقاله یه مسیر عملی ارائه می‌ده — نه تئوری صرف.

ایجنت دقیقاً چیه؟

یه چت‌بات ساده فقط ورودی می‌گیره و خروجی می‌ده. اما یه ایجنت سه تا چیز اضافه داره:

۱. حلقهٔ تصمیم‌گیری (ReAct loop): مدل فکر می‌کنه، عمل می‌کنه، نتیجه می‌بینه، دوباره فکر می‌کنه. ۲. ابزار (Tools): ایجنت می‌تونه به دنیای بیرون دست بزنه — وب، کد، دیتابیس، API. ۳. حافظه: حداقل در سطح مکالمه، و در نسخه‌های پیشرفته‌تر در سطح بلندمدت.

به زبان ساده‌تر: ایجنت یه LLM‌ه که اجازه داره کاری انجام بده، نه فقط حرف بزنه.

پیش‌نیازها

برای ساخت اولین ایجنت فقط به این‌ها نیاز داری:

  • Python 3.10+
  • یه API key از OpenAI، Anthropic یا یه مدل رایگان از Google AI Studio (Gemini)
  • کتابخانهٔ openai یا anthropic

اگه بودجه نداری، با Gemini Flash که tier رایگان خوبی داره شروع کن.

ساده‌ترین ایجنت ممکن

import anthropic
import json

client = anthropic.Anthropic()

tools = [
    {
        "name": "calculator",
        "description": "محاسبات ریاضی انجام می‌ده",
        "input_schema": {
            "type": "object",
            "properties": {
                "expression": {"type": "string", "description": "عبارت ریاضی مثل '2+2'"}
            },
            "required": ["expression"]
        }
    }
]

def run_tool(name, inputs):
    if name == "calculator":
        return str(eval(inputs["expression"]))

messages = [{"role": "user", "content": "۱۲۳ ضربدر ۴۵۶ چقدره؟"}]

while True:
    response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        tools=tools,
        messages=messages
    )
    
    if response.stop_reason == "end_turn":
        print(response.content[0].text)
        break
    
    # ایجنت می‌خواد ابزار استفاده کنه
    tool_use = next(b for b in response.content if b.type == "tool_use")
    result = run_tool(tool_use.name, tool_use.input)
    
    messages.append({"role": "assistant", "content": response.content})
    messages.append({
        "role": "user",
        "content": [{"type": "tool_result", "tool_use_id": tool_use.id, "content": result}]
    })

این حلقه ادامه می‌ده تا مدل بگه کارش تموم شده. این دقیقاً همون ReAct pattern‌ه.

یه ابزار واقعی اضافه کن: جستجوی وب

ایجنت بدون اطلاعات به‌روز، نصفه‌ست. با Tavily API (که tier رایگان داره) می‌تونی ابزار جستجو اضافه کنی:

import requests

def web_search(query):
    resp = requests.post("https://api.tavily.com/search", json={
        "api_key": "tvly-...",
        "query": query,
        "max_results": 3
    })
    results = resp.json()["results"]
    return "\n".join([f"{r['title']}: {r['content'][:200]}" for r in results])

حالا ایجنت می‌تونه از اینترنت بخونه، محاسبه کنه، و جواب بده — همه در یه مکالمه.

فریم‌ورک‌ها یا از صفر؟

وقتی ایجنت‌ها پیچیده‌تر می‌شن، فریم‌ورک‌هایی مثل LangChain یا LangGraph کارت رو راحت‌تر می‌کنن — اما overhead هم دارن. برای یادگیری، ساختن از صفر خیلی مفیدتره چون می‌فهمی دقیقاً چی داره اتفاق می‌افته.

برای سیستم‌های چند-ایجنتی که چندتا ایجنت با هم کار می‌کنن، AutoGen مایکروسافت یا CrewAI گزینه‌های محبوبی هستن.

مهم‌ترین چیزی که اول یاد نمی‌گیری: مدیریت خطا

ایجنت‌ها در دنیای واقعی شکست می‌خورن — API قطع می‌شه، مدل ابزار اشتباه می‌خواد، حلقه بی‌نهایت می‌شه. از همون اول:

  • یه max_iterations بذار (مثلاً ۱۰ دور)
  • خطاهای ابزار رو به مدل برگردون (نه silent fail)
  • لاگ بگیر از هر action

بدون این‌ها، دیباگ ایجنت کابوسه.

سطح بعدی: حافظهٔ بلندمدت

ایجنت‌هایی که در هر مکالمه از صفر شروع می‌کنن، محدودیت بزرگی دارن. یه ایجنت واقعاً مفید باید پروژه‌ات رو بشناسه، تاریخچهٔ تصمیماتت رو بدونه، و با گذر زمان بهتر بشه.

این همون چیزیه که در حوزهٔ کدنویسی، AiraCode ارائه می‌ده — یه ایجنت کدنویسی ترمینال که حافظهٔ پیوسته از پروژه‌ات داره، نه فقط از مکالمه. مفهوم پشتشو در شناخت پیوسته می‌تونی بخونی.

جمع‌بندی

ساخت اولین ایجنت یه حلقهٔ ساده‌ست: مدل فکر می‌کنه، ابزار می‌زنه، نتیجه می‌گیره، دوباره فکر می‌کنه. پیچیدگی واقعی در مدیریت خطا، حافظه، و هماهنگی چند ایجنته — نه در خود حلقه.

بهترین یادگیری؟ یه ابزار ساده (ماشین‌حساب، جستجو، خواندن فایل) بساز و همین حلقه رو با دستت پیاده کن. بعد از یه مرحله debug واقعی، همه چیز جا می‌افته.

همچنین بخوان

#ایجنت‌ها

ادامهٔ مسیر

همهٔ مقاله‌ها ←

بیشتر در «ایجنت‌ها»