در چشمانداز سریعاً در حال تحول توسعه برنامههای مدل زبانی بزرگ (LLM)، انتخاب چارچوب مناسب حیاتی است. در حالی که کتابخانههایی مانند LangChain و LlamaIndex روزهای اولیه هوش مصنوعی را در اختیار داشتند، آنها اغلب انتزاع را بر عملکرد ترجیح میدهند که منجر به کدهای حجیم و اجرای کندتر میشود. آگنو (Agno) وارد میشود؛ یک چارچوب پایتون متنباز که به طور خاص برای ساخت عاملهای هوش مصنوعی با عملکرد بالا، مقیاسپذیر و قابل مشاهده طراحی شده است. برخلاف زنجیرههای با هدف عمومی، آگنو بر اصول اولیه طراحی عامل متمرکز است: ابزارها، حافظه و ساختار.
چرا آگنو را انتخاب کنیم؟
آگنو خود را از طریق فلسفه سادگی و سرعت متمایز میکند. این چارچوب سبکوزن ساخته شده است تا به توسعهدهندگان اجازه دهد بدون بار اضافی درختهای وابستگی پیچیده، عاملها را بسازند. ویژگیهای کلیدی عبارتند از:
- فراخوانی ابزار بومی: آگنو راهی اعلانی برای تعریف ابزارهایی فراهم میکند که مدلهای زبانی بزرگ (LLM) میتوانند از آنها فراخوانی کنند و تجزیه آرگومان و اعتبارسنجی نوع را به طور خودکار مدیریت میکند.
- حافظه داخلی: این چارچوب مدیریت حافظه قوی را ارائه میدهد، شامل پنجرههای زمینه کوتاهمدت و ذخیرهسازی برداری بلندمدت که به طور یکپارچه در چرخه حیات عامل ادغام شدهاند.
- قابلیت مشاهده (Observability): ادغام بومی با پلتفرمهای قابلیت مشاهده امکان ردیابی و اشکالزدایی آسان تعاملات عامل را فراهم میکند که برای محیطهای تولیدی یک جزء حیاتی است.
معماری اصلی
در قلب آن، یک عامل آگنو شامل یک مدل (مانند GPT-4 شرکت OpenAI یا Claude شرکت Anthropic)، مجموعهای از ابزارها و اجزای حافظه اختیاری است. این چارچوب از رویکردی ساختاریافته برای تعریف این عناصر استفاده میکند که ایمنی نوع و پشتیبانی بهتر IDE را تضمین میکند. این تعریف ساختاریافته به LLM اجازه میدهد تا طرح ابزارهای موجود را دقیقتر درک کند و توهم (Hallucination) را در طول اجرای ابزار کاهش میدهد.
ساخت اولین عامل شما
بیایید به یک مثال عملی نگاه کنیم. فرض کنید میخواهیم یک عامل محقق بسازیم که بتواند در وب جستجو کند و یافتهها را ذخیره نماید. با استفاده از آگنو، این فرآیند به طور قابل توجهی مختصر است.
ابتدا مطمئن شوید که بسته نصب شده است:
pip install agno
سپس، ابزارهای خود را تعریف میکنیم. آگنو از توابع استاندارد پایتون استفاده میکند که با @agno.tool تزئین شدهاند. این تزئینکننده (decorator) به طور خودکار متن توضیحات (docstring) را به عنوان توضیح ابزار استخراج میکند که برای این که LLM بداند چه زمانی از ابزار استفاده کند، حیاتی است.
import agno
from agno.agent import Agent
from agno.models.openai import OpenAIChat
# Define a simple tool
@agno.tool
def get_weather(city: str) -> str:
"""
Get the current weather for a specific city.
Args:
city: The name of the city.
"""
return f"The weather in {city} is sunny."
# Create the agent
agent = Agent(
name="WeatherBot",
model=OpenAIChat(id="gpt-4o"),
tools=[get_weather],
instructions=["You are a helpful weather assistant."],
show_tool_calls=True,
)
# Run the agent
agent.print_response("What is the weather in London?", stream=True)
در این مثال، show_tool_calls=True یک ویژگی دوستداشتنی برای توسعهدهنده است که پیکسل JSON خام ارسال شده به LLM و پاسخ دریافت شده را چاپ میکند. این امر برای اشکالزدایی جریانهای تعامل ابزار بینظیر است.
کاربرد پیشرفته: خروجی ساختاریافته و حافظه
برای برنامههای پیچیدهتر، آگنو از خروجی ساختاریافته پشتیبانی میکند. شما میتوانید مدلهای Pydantic را برای اعمال طرحهای JSON سختگیرانه بر پاسخ LLM تعریف کنید، که تضمین میکند پایپلاینهای داده پاییندستی انواع دادههای سازگار دریافت میکنند. علاوه بر این، سیستم حافظه آگنو به عاملها اجازه میدهد تا زمینه را در طول جلسات حفظ کنند. با افزودن یک جزء حافظه به عامل خود، به آن امکان میدهید مکالمات قبلی، ترجیحات کاربر و حقایق آموخته شده را به خاطر بسپارد که تعامل را شخصیتر و پیوستهتر میکند.
نتیجهگیری
آگنو نشاندهنده بلوغ در فضای چارچوبهای عامل است. با حذف لایههای انتزاعی غیرضروری و تمرکز بر عملکرد، ایمنی نوع و قابلیت مشاهده، این چارچوب پایهای مستحکم برای برنامههای هوش مصنوعی در سطح تولید فراهم میکند. برای توسعهدهندگانی که LangChain را بیش از حد سنگین میدانند یا انعطافپذیری مورد نیاز خود را ندارند، آگنو جایگزینی جذاب و با عملکرد بالا ارائه میدهد. همانطور که اکوسیستم عاملهای هوش مصنوعی به رشد خود ادامه میدهد، چارچوبهایی مانند آگنو نقش محوری در پر کردن شکاف بین نمونههای اولیه آزمایشی و محصولات قابل اعتماد و مقیاسپذیر ایفا خواهند کرد.