Agentic RAG
در RAG سنتی، جستوجو یک مرحلهی ثابت و از پیشتعیینشده است. در Agentic RAG، خودِ ایجنت تصمیم میگیرد چه زمانی، چند بار و چطور جستوجو کند.
Agentic RAG چیست؟
Agentic RAG ترکیبی از RAG و رفتار ایجنتی است: بازیابی دیگر یک مرحلهی ثابت در یک پایپلاین خطی نیست، بلکه خودش یک ابزار در اختیار ایجنت است که ایجنت میتواند بر اساس نیاز، صفر بار، یک بار یا چندین بار (با پرسشهای متفاوت) از آن استفاده کند.
تفاوت با RAG ساده
| RAG ساده | Agentic RAG | |
|---|---|---|
| تعداد جستوجو | همیشه دقیقاً یک بار | صفر تا چند بار، به تشخیص ایجنت |
| پرسش جستوجو | همان پرسش اصلی کاربر | میتواند بازنویسی یا تجزیه شود |
| ارزیابی نتیجه | ندارد؛ هرچه برگردد استفاده میشود | ایجنت کیفیت نتیجه را میسنجد و در صورت ناکافیبودن دوباره جستوجو میکند |
| مسیر | خطی و ثابت | پویا و وابسته به نتیجه هر مرحله |
الگوهای کلیدی
- Query Rewriting — بازنویسی پرسش مبهم کاربر به یک عبارت جستوجوی دقیقتر پیش از بازیابی
- Multi-hop Retrieval — پاسخ به یک سوال پیچیده نیازمند چند جستوجوی متوالی است (نتیجهی جستوجوی اول، ورودی جستوجوی دوم را میسازد)
- Self-correction / Critique — ایجنت نتایج بازیابیشده را نقد میکند؛ اگر مرتبط یا کافی نبودند، با پرسش دیگری دوباره تلاش میکند
جریان یک نمونه واقعی
فرض کنید کاربر میپرسد: «ارزانترین هدفونی که هم نویزکنسلینگ دارد و هم موجود است چیست؟»
- ایجنت پرسش را به دو زیرپرسش تجزیه میکند: «هدفونهای نویزکنسلینگ» و «بررسی موجودی هرکدام»
- جستوجوی اول (RAG روی کاتالوگ) نتایج کاندید را برمیگرداند
- ایجنت برای هرکدام، ابزار
check_inventoryرا فراخوانی میکند (اینجا RAG و MCP کنار هم کار میکنند) - در صورت خالی بودن نتایج اولیه، ایجنت پرسش را بازنویسی و دوباره جستوجو میکند
- پاسخ نهایی، ارزانترین گزینهی موجود، به کاربر داده میشود
چه زمانی به آن نیاز دارید؟
اگر پرسشهای کاربران شما معمولاً ساده و تکبعدی هستند، RAG سنتی کافی و ارزانتر است. اگر پرسشها چندمرحلهای، مبهم یا نیازمند ترکیب چند منبع داده هستند (مثل مثال بالا)، Agentic RAG دقت را بهشکل محسوسی بالا میبرد — به قیمت تاخیر و هزینهی محاسباتی بیشتر.
مهار حلقهی جستوجوی بیپایان
چون در Agentic RAG خودِ ایجنت تصمیم میگیرد دوباره جستوجو کند یا نه، ریسک اصلی این است که برای پرسشهایی که اصلاً پاسخی در پایگاهدانش ندارند، ایجنت پیدرپی پرسش را بازنویسی و دوباره جستوجو کند، بدون رسیدن به نتیجه — دقیقاً همان ریسک «حلقه بیپایان»ای که در ایجنت هوش مصنوعی هم مطرح شد. راههای رایج مهار آن:
- سقف تعداد تلاش — محدود کردن جستوجوی مجدد به عددی مشخص (مثلاً حداکثر ۳ بار) پیش از برگرداندن پاسخ «اطلاعات کافی پیدا نشد»
- آستانهی کیفیت — اگر امتیاز ارتباط (Relevance Score) نتایج بازیابیشده بعد از N تلاش هنوز پایینتر از یک آستانه باشد، ایجنت متوقف شود بهجای ادامهی بیهدف
- شفافیت با کاربر — بهجای پاسخ حدسی، صریحاً اعلام شود که پاسخ قطعی در منابع موجود پیدا نشد
سوالات متداول
آیا Agentic RAG همیشه بهتر از RAG ساده است؟
نه لزوماً؛ برای سوالات ساده، پیچیدگی و تاخیر اضافهی آن توجیهی ندارد. باید متناسب با پیچیدگی واقعی پرسشها انتخاب شود.
Agentic RAG با فریمورک خاصی پیاده میشود؟
میتوان آن را با هر فریمورک ایجنتی مثل LangGraph پیاده کرد، چون اساساً یک چرخهی تصمیم-اقدام با ابزار جستوجو است.