Context Engineering روشی برای طراحی و مدیریت همه اطلاعاتی است که مدل هوش مصنوعی هنگام پاسخ دادن در اختیار دارد. پیام سیستمی، تاریخچه گفتگو، اسناد بازیابی شده، حافظه، ابزارها و قالب خروجی همگی بخشی از این ورودی هستند. هدف آن است که مدل در هر مرحله مرتبط‌ترین اطلاعات را دریافت کند و پاسخ دقیق‌تری بسازد. Anthropic این مفهوم را مدیریت مجموعه توکن‌هایی می داند که هنگام اجرا وارد پنجره زمینه می‌شوند.

چرا مدیریت زمینه اهمیت دارد؟

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

تفاوت مهندسی زمینه با مهندسی پرامپت

مهندسی پرامپت روی شیوه نوشتن دستور، هدف، محدودیت و قالب پاسخ تمرکز دارد. راهنمای رسمی OpenAI نیز بر دستور روشن و جدا کردن داده از دستور تاکید می‌کند. این اصول مهم هستند، اما فقط بخشی از ورودی مدل را پوشش می‌دهند.
مهندسی زمینه کل محیط اطلاعاتی مدل را طراحی می‌کند. توسعه دهنده انتخاب می‌کند کدام پیام ها، اسناد، ابزارها و حافظه در هر مرحله وارد شوند. پس اصل کار، ساخت سیستمی است که برای هر درخواست ورودی مناسب را آماده کند.

چه اطلاعاتی وارد زمینه مدل می‌شوند؟

اولین بخش، پیام سیستمی است که نقش، مرزها و هدف مدل را مشخص می‌کند. این پیام باید روشن باشد، چون دستورهای مبهم راهنمای عملی نمی‌دهند و قوانین بیش از حد نیز تعارض می‌سازند.
بخش دوم، پیام کاربر و تاریخچه گفتگو است. همه پیام‌های گذشته ارزش یکسان ندارند. سیستم می‌تواند بخش‌های کم اهمیت را حذف کند و تصمیم‌های اصلی را در یک خلاصه دقیق نگه دارد.
بخش سوم، اطلاعات بیرونی است که از پایگاه دانش، فایل یا سامانه داخلی می‌آید. روش RAG اسناد مرتبط را پیدا می‌کند. Anthropic توضیح می‌دهد جدا شدن متن از زمینه اصلی می‌تواند بازیابی سند درست را سخت کند؛ پس بخش بندی اسناد اهمیت دارد.
بخش چهارم، ابزارها هستند. توضیح ابزار، ورودی لازم و نتیجه اجرا بر تصمیم مدل اثر می‌گذارند. بهتر است فقط ابزارهای لازم برای همان مرحله معرفی شوند تا احتمال انتخاب اشتباه کاهش پیدا کند.
بخش پنجم، حافظه است. حافظه کوتاه مدت وضعیت اجرای جاری را نگه می‌دارد و حافظه بلندمدت اطلاعات ارزشمند جلسات بعدی را حفظ می‌کند. LangChain نیز زمینه را بر اساس میزان تغییر و زمان ماندگاری دسته بندی می‌کند.

Context Engineering در یک ایجنت چگونه اجرا می‌شود؟

یک ایجنت معمولا میان دو مرحله حرکت می‌کند. ابتدا مدل تصمیم می‌گیرد چه کاری انجام دهد. سپس ابزار انتخاب شده اجرا می‌شود و نتیجه دوباره به مدل برمی‌گردد. این چرخه تا رسیدن به پاسخ نهایی ادامه دارد. در هر دور باید مشخص شود کدام اطلاعات وارد تماس بعدی با مدل شوند. LangChain این مدیریت را در سطح زمینه مدل، زمینه ابزار و رویدادهای میان مراحل توضیح می‌دهد.
فرض کن یک ایجنت پشتیبانی باید مشکل پرداخت مشتری را بررسی کند. سیستم ابتدا قوانین پاسخگویی و شناسه مشتری را می‌فرستد. سپس فقط سفارش مرتبط و آخرین وضعیت پرداخت را بازیابی می‌کند. در مرحله بعد، ابزار بررسی تراکنش اجرا می‌شود. نتیجه ابزار همراه با خلاصه مکالمه به مدل می‌رسد و مدل پاسخی می‌سازد که هم با سیاست شرکت هماهنگ است و هم بر اساس اطلاعات واقعی همان مشتری نوشته شده است.

روش‌های اصلی بهینه سازی زمینه

انتخاب محتوا اولین روش است. سیستم باید اطلاعات مرتبط را با توجه به زمان، سطح دسترسی و نوع وظیفه پیدا کند و موارد اضافی را کنار بگذارد. برای یک سوال فنی، نیازی نیست تمام پرونده مشتری وارد مدل شود.
فشرده سازی روش دوم است. وقتی تاریخچه طولانی می‌شود، سیستم آن را خلاصه می‌کند. خلاصه باید تصمیم‌ها، تعهدها و اطلاعات لازم برای ادامه کار را حفظ کند، بدون اینکه دوباره به متنی طولانی تبدیل شود.
ساختاردهی روش سوم است. جدا کردن دستورها، داده‌ها، محدودیت‌ها و قالب خروجی کمک می‌کند مدل نقش هر بخش را تشخیص دهد. جدول، JSON یا بخش بندی روشن می‌توانند مفید باشند.
روش چهارم، تازه نگه داشتن داده‌هاست. قیمت، موجودی، وضعیت سفارش و سیاست‌های سازمان ممکن است تغییر کنند و باید در زمان مناسب دوباره از منبع اصلی خوانده شوند.

خطاهای رایج در طراحی زمینه

خطای اول، پر کردن پنجره مدل با هر اطلاعاتی است که شاید مفید باشد. این کار هزینه و زمان پاسخ را بالا می‌برد و پیدا کردن نکته اصلی را سخت می‌کند. تجربه OpenAI در ساخت ایجنت داده داخلی نیز نشان می‌دهد پاسخ خوب به زمینه دقیق وابسته است و اصل «کمتر، بهتر است» در طراحی لایه‌های اطلاعاتی اهمیت دارد.
خطای دوم، ترکیب دستور معتبر با محتوای غیر قابل اعتماد است. یک سند بازیابی شده یا صفحه وب ممکن است متنی داشته باشد که تلاش کند رفتار مدل را تغییر دهد. سیستم باید میان دستورهای اصلی و داده‌های مرجع مرز روشن بگذارد. دسترسی ابزارها نیز باید محدود باشد تا محتوای آلوده نتواند ایجنت را به انجام اقدام حساس وادار کند.
خطای سوم، نگهداری حافظه بدون سیاست مشخص است. سیستم باید بداند چه چیزی ارزش ذخیره دارد، چه مدت نگه داشته می‌شود و چه زمانی باید حذف یا به روز شود.
خطای چهارم، نادیده گرفتن تعارض منابع است. معماری باید اولویت پیام سیستمی، اسناد داخلی و درخواست کاربر را مشخص کند تا تصمیم‌ها قابل بررسی باشند.

تاثیر زمینه بهتر بر کیفیت و هزینه

زمینه بهتر کیفیت پاسخ را بالا می‌برد، چون مدل به جای حدس زدن به اطلاعات مرتبط تکیه می‌کند. حذف داده‌های اضافی نیز تعداد توکن‌ها را کاهش می‌دهد و می‌تواند هزینه و زمان پردازش را کمتر کند. البته فشرده سازی بیش از حد یا بازیابی ناقص نتیجه معکوس دارد. هدف، کم کردن کورکورانه ورودی نیست؛ هدف، رساندن اطلاعات کافی و دقیق در زمان درست است.
این رویکرد ارزیابی را نیز ساده‌تر می‌کند. تیم می‌تواند ببیند کدام سند بازیابی شد، چه ابزاری انتخاب شد و پاسخ بر اساس کدام داده شکل گرفت. ثبت این مسیر پیدا کردن علت خطا را آسان‌تر می‌کند.

مهندسی زمینه در هوش مصنوعی کجا کاربرد دارد؟

این روش در چت بات‌های سازمانی، دستیارهای برنامه نویسی، سیستم‌های تحقیقاتی، ایجنت‌های فروش و ابزارهای تحلیل داده اهمیت زیادی دارد. هر پروژه‌ای که از اطلاعات اختصاصی، چند ابزار، حافظه یا اجرای چند مرحله‌ای استفاده کند، به مدیریت دقیق زمینه نیاز دارد. هرچه طول کار بیشتر و تعداد منابع بالاتر باشد، اهمیت این طراحی نیز بیشتر می‌شود.
پروتکل MCP نیز برای اتصال استاندارد دستیارهای هوش مصنوعی به منابع داده و ابزارها شکل گرفته است. Anthropic آن را راهی عمومی برای متصل کردن مدل‌ها به مخزن محتوا، ابزارهای تجاری و محیط‌های توسعه معرفی می‌کند. چنین اتصال‌هایی دامنه اطلاعات مدل را گسترش می‌دهند، اما سیستم همچنان باید تصمیم بگیرد چه داده‌ای و با چه سطح دسترسی وارد زمینه شود.

جمع بندی

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