MCP + RAG: چرا از ساخت سیستمهای پیچیده RAG دست کشیدم
من چهار سال را صرف ساخت سیستمهای پیچیده RAG کردم.
من از استراتژیهای تکهبندی (chunking)، مدلهای جاسازی (embedding)، پایگاههای داده برداری (vector databases) و بازرتبهبندها (rerankers) استفاده میکردم. سیستمی برای پایگاه دانش ۱۸۰۰ ساعته خود ساختم. هر بار فکر میکردم که دارم آن را بینقص میکنم.
اما هرگز خوب کار نکرد.
سپس پشتیبانی از Model Context Protocol (MCP) را اضافه کردم. این کار همه چیز را تغییر داد. MCP باعث میشود RAG پیچیده و سنتی برای اکثر افراد منسوخ شود.
من قبلاً با این مشکلات دست و پنجه نرم میکردم:
- انتخاب بین تکهبندی معنایی (semantic) یا بازگشتی (recursive).
- انتخاب بین مدلهای جاسازی (embeddings) OpenAI، Cohere یا Nomic.
- تصمیمگیری بین Pinecone، Weaviate یا Chroma.
- مدیریت بازیابی top-k و بازرتبهبندی.
سیستم RAG من به ۲۰۰۰ خط کد رسید. چشمگیر بود اما شکست خورد. من سعی داشتم دادههایم را هوشمند کنم، در حالی که خودِ هوش مصنوعی از قبل هوشمند بود.
من به رویکرد MCP تغییر مسیر دادم. سروری ساختم که تنها ۱۵۰ خط کد داشت.
من فقط دو ابزار به هوش مصنوعی دادم:
search_notes: از تطبیق متنی ساده برای یافتن یادداشتها استفاده میکند.get_note_content: متن کامل یک یادداشت را برمیگرداند.
بدون تکهبندی. بدون جاسازیهای پیچیده. بدون پایگاههای داده برداری.
این رویکرد ساده در ۹ مورد از ۱۰ مورد، سیستم RAG پرزرقوبرق من را شکست میدهد. دلیل آن اینجاست:
- هوش مصنوعی منطق را مدیریت میکند. هوش مصنوعی در تصمیمگیری درباره اینکه چه چیزی مرتبط است، بهتر از یک تکهبند (chunker) از پیش تعیینشده عمل میکند.
- بافت کامل (Full context). RAG سنتی یادداشتها را به قطعات کوچک تقسیم میکند. این کار اغلب باعث از دست رفتن پاسخ میشود. با MCP، هوش مصنوعی کل یادداشت را میخواند و ایده کامل را درک میکند.
- پیشبینیپذیری. جستجوی متنی ساده است. اگر کلمه کلیدی وجود داشته باشد، کار میکند. شما از انحراف جاسازی (embedding drift) و خطاهای ابعادی جلوگیری میکنید.
شما همچنان باید از RAG سنتی استفاده کنید اگر:
- بیش از ۱۰۰,۰۰۰ سند بزرگ دارید.
- به تولید در مقیاس بالا با تأخیر (latency) کم نیاز دارید.
اما برای پایگاههای دانش شخصی، پروژههای جانبی یا ابزارهای داخلی، نیازی به آن ندارید.
مزایای MCP:
- نگهداری آسان: ۱۵۰ خط به جای ۲۰۰۰ خط.
- بدون هزینههای جاسازی: وقتی مدلها تغییر میکنند، نیازی به جاسازی مجدد دادهها ندارید.
- دقت بهتر: هوش مصنوعی بافت کامل را دریافت میکند.
- عیبیابی آسان: میتوانید دقیقاً ببینید که چرا یک جستجو با شکست مواجه شده است.
از مهندسی بیش از حد (over-engineering) دست بردارید. اجازه دهید کارهای سنگین را هوش مصنوعی انجام دهد. به آن دسترسی به دادههایتان را بدهید و اجازه دهید آنها را بخواند.
Optional learning community: https://t.me/GyaanSetuAi
