رسانه تخصصی هوش مصنوعی سیمرغ

«مهندسی زمینه» Context Engineering چیست

«مهندسی زمینه» Context Engineering چیست

«مهندسی زمینه» Context Engineering چیست؟

مهندسی زمینه در عامل‌های کدنویسی (Coding Agents)

مهندسی زمینه (Context Engineering) شاخه‌ای نسبتاً جدید در توسعه عامل‌های هوشمند مبتنی بر مدل‌های زبان بزرگ است که بر انتخاب و سامان‌دهی محتوایی متمرکز است که مدل در هر مرحله‌ی پردازش می‌بیند. به عبارت دیگر، هدف این است که مدل LLM را صرفاً با پرسش‌ها و پاسخ‌های دقیق (مهندسی پرامپت) راضی نکنیم، بلکه اطلاعات مرتبط بیرونی (مانند مستندات فنی، کدهای مرتبط، حافظه مکالمه و ابزارها) را هم به او بدهیم تا عملکرد بهتری ارائه دهد. در یک تعریف شناخته‌شده، شرکت Anthropic مهندسی زمینه را «مجموعه‌ای از راهبردها برای گزینش و نگهداری مجموعه‌ی بهینه‌ای از توکن‌ها (اطلاعات) در زمان استنتاج مدل» می‌داند. به عبارت دیگر، مهندسی زمینه هنر و دانش این است تا در هر لحظه تنها دقیقاً همان اطلاعات مهم را در پنجره‌ی زمینه‌ی محدود مدل قرار دهیم تا نتیجه‌ی مورد نظر ما حاصل شود.

تفاوت کلی میان مهندسی پرامپت (سمت چپ) و مهندسی زمینه (سمت راست)
تفاوت کلی میان مهندسی پرامپت (سمت چپ) و مهندسی زمینه (سمت راست)

مهندسی پرامپت معمولاً به نوشتن دقیق و ساختاربندی دستورات برای مدل می‌پردازد، در حالی که مهندسی زمینه مربوط به طراحی سامانه‌ای است که اطلاعات مناسب را در زمان مناسب به مدل می‌رساند. به عبارت دیگر، اگر مهندسی پرامپت مشخص می‌کند «چه چیزی را بپرسیم»، مهندسی زمینه تضمین می‌کند که مدل در کدام دنیای اطلاعاتی به پرسش پاسخ می‌دهد. در تصویر بالا می‌بینیم که در شیوه‌ی سنتی تنها پرامپت مطرح می‌شود، اما در رویکرد مهندسی زمینه مدل علاوه بر پرامپت، به «کتاب درسی» تکمیل‌کننده (مثلاً مستندات) و حافظه‌ی مکالمه و ابزارهای کمکی نیز دسترسی دارد. این تفاوت ساختاری باعث می‌شود پاسخ‌های مدل معنادارتر و دقیق‌تر باشد.

شبکه‌های اجتماعی رسانه هوش مصنوعی سیمرغ

نقش و اهمیت مهندسی زمینه

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

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

انواع اطلاعات زمینه‌ای و روش‌های تأمین آن‌ها

اطلاعات زمینه‌ای متنوعی وجود دارد که می‌تواند به عامل کدنویسی داده شود. برخی از مهم‌ترین انواع آن عبارتند از:

مدل در مرکز قرار دارد و اجزای مهم مانند مستندات، حافظه مکالمه و ابزارها با فلش‌های داده به آن متصل هستند. تصویر بالا چشم‌اندازی کلی از فرآیند مهندسی زمینه را نشان می‌دهد. در مرکز، مدل زبان بزرگ قرار گرفته و منابع مختلف (فایل‌های کد، مستندات، پایگاه‌داده حافظه و…) به آن متصل‌اند. فلش‌ها نحوه‌ی جریان داده‌ها به داخل پنجره‌ی زمینه‌ی مدل را نمایش می‌دهند؛ به عنوان مثال فایل‌های پروژه با اسکریپت‌های ابزار به مدل خوانده می‌شوند و از نتایج هر گام نیز در حافظه مکالمه نگهداری می‌شود.

مکانیزم‌های بارگذاری زمینه

از نظر نحوه‌ی بارگذاری اطلاعات زمینه، سه حالت کلی وجود دارد:

چالش‌ها

مهندسی زمینه با چند چالش مهم همراه است. نخست محدودیت اندازه‌ی پنجره زمینه است. هرچه اطلاعات بیشتری وارد این پنجره شود، علاوه بر هزینه‌ی محاسباتی بیشتر، مدل تمرکز خود را از دست می‌دهد. هم‌چنین در عمل مشکلاتی مانند زیر رخ می‌دهد:

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

نکات عملی برای طراحی زمینه‌ی مؤثر

برای طراحی مؤثر زمینه در عامل‌های کدنویسی می‌توان به نکات زیر توجه کرد:

وضعیت فعلی در ابزارهای شاخص

ابزارهای کدنویسی هوش مصنوعی ویژگی‌های متفاوتی برای مهندسی زمینه ارائه می‌دهند. در جدول زیر چند نمونه‌ی شاخص و امکاناتشان خلاصه شده است:

ابزارامکانات مهندسی زمینه
Claude Code (Anthropic)قابلیت تعریف فایل قوانین کلی پروژه (CLAUDE.mdدستورهای اختصاصی (Slash Commands) برای وظایف رایج، مهارت‌ها (Skills) برای بارگذاری تن‌درست منابع و اسکریپت‌ها، زیرعامل‌ها (Subagents) برای اجرای موازی وظایف در پنجره‌های جداگانه، و سرورهای MCP جهت دسترسی مدل به APIها و ابزارهای خارجی.
GitHub Copilotامکان ایجاد Spaces برای متمرکز کردن محتوای مرتبط پروژه و استفاده از پروتکل مدل زمینه (MCP) جهت اتصال به سیستم‌های خارجی. همچنین در حالت گفتگو (Copilot Chat) از حافظه مکالمه بهره می‌برد.
Cursorقابلیت مدیریت پیشرفته قواعد (قبلاً تحت نام Apply intelligently اجرا می‌شد) و اخیراً افزوده شدن زیرعامل‌ها. این ابزار به شیوه‌ای مشابه مهارت‌ها و قوانین را بارگذاری می‌کند.
سایر ابزارها (مثلاً CodeWhisperer، Tabnine و غیره)بیشتر محدود به کدهای پروژه و ورودی کاربر هستند و امکانات پیشرفته‌ی زمینه را مانند موارد فوق ندارند. معمولاً به فایل‌های باز و پرسش‌های کاربر تکیه می‌کنند.

چشم‌انداز آینده

روندهای پژوهشی و صنعتی نشان می‌دهد که مهندسی زمینه همچنان رو به تکامل است. یکی از پیشرفت‌های مهم، ادغام حافظه‌ی بلندمدت در معماری عامل‌ها است؛ به این معنی که اطلاعات مهم پروژه در پایگاه‌های داده‌ی خارجی ذخیره شده و در تعاملات بعدی بازیابی می‌شود (حافظه‌ای شبیه یک دفترچه یادداشت دائمی). همچنین تکنیک‌هایی مانند خلاصه‌سازی گفتگو (note-taking) و فشرده‌سازی زمینه برای نگه داشتن نکات کلیدی در تعاملات طولانی‌مدت مطرح هستند. علاوه بر این، معماری‌های چندعاملی (چندسهمی) محبوبیت یافته‌اند؛ به طوری که یک هدف بزرگ ممکن است توسط چند عامل کوچکتر به‌طور موازی حل شود.

همچنین Anthropic اشاره کرده که با پیشرفت مدل‌ها، نیاز به مهندسی صریح پرامپت کاهش می‌یابد اما زمینه همچنان یک منبع ارزشمند باقی می‌ماند. به تعبیر آن‌ها، «هرچند مدل‌های هوشمند آینده کمتر نیاز به مهندسی صریح دارند، ولی همواره باید زمینه را به عنوان منبعی ارزشمند مدیریت کرد». در کل، انتظار می‌رود عامل‌های کدنویسی آینده از خودکارسازی بیشتر (مانند یادگیری از بازخورد خود) و گسترش پنجره‌های زمینه با الگوریتم‌های هوشمند (مثلاً از طریق RAG و فشرده‌سازی داینامیک) بهره‌مند شوند، و هماهنگی با حافظه و زیرعامل‌ها (Subagents) از عناصر کلیدی معماری‌های نوین باشد.

Exit mobile version