اما این فقط یه buzzword جدید برای رزومه نیست. این یه شیفت پارادایم اساسیه. ما دیگه دنبال نوشتن یه پرامپت ۵ خطی بینقص نیستیم؛ داریم درباره معماری سیستمهای داینامیک صحبت میکنیم که اطلاعات، ابزارها و حافظه رو به شکلی بهینه مدیریت میکنن تا LLM بتونه یک تسک پیچیده رو با موفقیت انجام بده.
البته صدای مخالف هم کم نیست. خیلیا میگن: «این که همون RAG خودمونه که لباس پلوخوری پوشیده» یا «شما مهندسای نرمافزار، اسم معماری سیستم رو عوض کردین و به اسم خودتون زدین». این نقدها تا حدی درسته. مفاهیمی مثل Separation of Concerns یا مدیریت state، سالهاست که در مهندسی نرمافزار وجود داره.
پس تفاوت کجاست؟ تفاوت در قلب سیستم ماست. ما دیگه با یه API یا دیتابیس deterministic سروکار نداریم. ما با یک مدل زبانی طرفیم: یک موجود غیرقطعی (non-deterministic) که تمام حافظه فعالش به یک پنجره کانتکست (Context Window) به شدت محدود خلاصه میشه. این محدودیت، تمام قواعد بازی رو عوض میکنه. مهندسی کانتکست، یعنی طراحی معماری جریان اطلاعات با در نظر گرفتن این تنگنای اساسی.
وقتی کانتکست به درستی مهندسی نشه، با پدیدههایی مثل Context Poisoning (یه داده غلط کل استدلال رو خراب میکنه) یا Context Distraction (مدل بین انبوه اطلاعات بیربط گم میشه) مواجه میشیم که عملکرد ایجنت رو نابود میکنه.
برای مقابله با این چالشها، ۴ استراتژی اصلی در حال شکلگیریه که هرکدوم دنیایی از تکنیکها رو شامل میشن:
۱. نوشتن و تداوم (Write & Persist): اطلاعات نباید بیدلیل در کانتکست باقی بمونن. باید اونها رو به صورت ساختاریافته در یک حافظهی خارجی persist کرد. این کار با استفاده از یک
Scratchpad برای یادداشتهای موقت حین اجرای تسک، یا پیادهسازی Memory بلندمدت (مثل کاری که Reflexion یا Generative Agents کردن) انجام میشه. این حافظه میتونه یه فایل ساده، یه key-value store یا حتی یک دیتابیس وکتوری باشه.۲. انتخاب و بازیابی (Select & Retrieve): اینجا جاییه که RAG وارد میشه، ولی خیلی پیشرفتهتر از یه جستجوی سادهی وکتوری. ما در مورد Agentic RAG صحبت میکنیم. یعنی بازیابی هوشمندانهی ابزارها (Tool Selection RAG)، خاطرات مرتبط (Memory Retrieval) یا قطعه کدهای لازم برای تسک. تکنیکهایی مثل Hybrid Search، Re-ranking و استفاده از Knowledge Graphها برای درک روابط بین دادهها، اینجا نقش کلیدی بازی میکنن تا فقط مرتبطترین اطلاعات به کانتکست تزریق بشه.
۳. فشردهسازی و هرس (Compress & Prune): کانتکست بینهایت نیست. باید دائماً بهینهسازی بشه. Summarization یکی از راههاست؛ از خلاصهسازی بازگشتی (Recursive Summarization) برای مکالمات طولانی گرفته تا استفاده از یک مدل fine-tune شده فقط برای خلاصهسازی خروجی ابزارها (رویکردی که Cognition AI استفاده میکنه). در کنارش، Pruning یا هرس کردن هم وجود داره؛ یعنی حذف هوشمندانه پیامهای قدیمی یا اطلاعاتی که دیگه به درد نمیخورن.
۴. ایزولهسازی و پارتیشنبندی (Isolate & Partition): یکی از بهترین راهها برای مدیریت پیچیدگی، شکستن اون به اجزای کوچکتره. معماری Multi-agent (مثل OpenAI Swarm) همین کار رو میکنه. هر ایجنت، کانتکست، ابزارها و حافظهی ایزولهی خودشو داره و فقط روی یه تخصص متمرکز میشه. یک رویکرد دیگه، استفاده از محیطهای اجرایی ایزوله (Sandboxed Environments) هست. در این مدل (که HuggingFace استفاده میکنه)، LLM به جای فراخوانی مستقیم API، کدی رو تولید میکنه که در یک Sandbox اجرا میشه. اینطوری اشیای سنگین (مثل دیتافریمها یا فایلهای حجیم) هرگز وارد کانتکست مدل نمیشن و فقط نتیجهی نهایی بهش برگردونده میشه.
نتیجهگیری نهایی:
مهندسی کانتکست فقط یک اسم جدید نیست، بلکه نشونهی بلوغ حوزهی ماست. ما از کلنجار رفتن با یک فایل `prompt.txt`، به سمت معماری پایپلاینهای پیچیدهی اطلاعاتی حرکت کردیم. این یعنی ساختن ایجنتهای هوشمند، روزبهروز بیشتر شبیه به مهندسی سیستمهای نرمافزاری پیچیده و کمتر شبیه به هنر و شهود میشه.
برای مطالعه عمیقتر، این دو مقاله فوقالعادهان:
https://rlancemartin.github.io/2025/06/23/context_engineering/
https://blog.langchain.com/the-rise-of-context-engineering/
🛠 Join @LLMEngineers Community