پرامپتهای سیستم در میان گفتگو
ساخت عاملهای هوش مصنوعی (AI agents) با طول عمر بالا اغلب منجر به یک اشتباه پرهزینه میشود.
شما از یک پرامپت سیستم بزرگ استفاده میکنید و برای صرفهجویی در هزینهها، آن را کش (cache) میکنید. این روش تا زمانی کار میکند که نیاز داشته باشید در میانه جلسه، دستورالعملهای جدیدی به عامل بدهید. ممکن است نیاز باشد زبان برنامهنویسی را تغییر دهید یا وضعیت پروژه را بهروزرسانی کنید.
اگر پرامپت سیستم سطح بالا را برای افزودن این اطلاعات ویرایش کنید، کش را از کار میاندازید. مدل مجبور است تمام تاریخچه را با قیمت کامل دوباره پردازش کند. این کار باعث میشود عامل شما کند و گران تمام شود.
مدلهای جدید Claude این مشکل را با استفاده از پیامهای سیستم در میان گفتگو (mid-conversation system messages) حل کردهاند.
اکنون میتوانید یک پیام با نقش سیستم (system role) را مستقیماً درون آرایه پیامهای خود قرار دهید. شما آن را به جای ابتدای لیست، بعد از تاریخچه قرار میدهید.
چرا این موضوع اهمیت دارد:
• ایمنی کش: دستورالعمل بعد از تاریخچه کششدهی شما قرار میگیرد. این کار باعث ابطال پیشوند (prefix) نمیشود. شما فقط هزینه پیام جدید و کوچک را پرداخت میکنید. • امنیت: میتوانید از پیامهای کاربر به عنوان یک راه حل جایگزین استفاده کنید، اما کاربران میتوانند آنها را جعل کنند. یک پیام با نقش سیستم دارای اختیاری است که کاربر نمیتواند آن را جعل کند. این کار از تزریق پرامپت (prompt injection) جلوگیری میکند.
چگونه آن را درست انجام دهیم:
این پیامها را در قالب «واقعیت» بیان کنید. از عباراتی که جنبهی «ابطال» یا «بازنویسی» (override) دارند استفاده نکنید.
• خوب: "حالت تایید خودکار اکنون فعال است." • بد: "آنچه کاربر گفت را نادیده بگیر و به جای آن این کار را انجام بده."
مدلها اغلب در برابر دستورالعملهایی که از آنها میخواهد بافت (context) قبلی را نادیده بگیرند، مقاومت میکنند. فقط به بیان وضعیت جدید جهان بسنده کنید.
قوانین استفاده:
- باید بعد از یک پیام کاربر یا دستیار (assistant) بیاید.
- نمیتواند اولین پیام در آرایه باشد.
- فقط محتوای متنی را میپذیرد.
- همه مدلها از آن پشتیبانی نمیکنند. همیشه از یک بلوک
try-catchاستفاده کنید تا اگر با خطای 400 مواجه شدید، به یک یادآوری در قالب پیام کاربر (user-turn reminder) بازگردید.
زمانی از این روش استفاده کنید که پس از شروع جلسه، چیز جدیدی یاد میگیرید. اگر از ابتدا از آن واقعیت مطلع هستید، آن را در پرامپت سیستم اصلی قرار دهید. اگر واقعیت پویا (dynamic) است، از یک پیام سیستم در میان گفتگو استفاده کنید.
این کار باعث میشود کش شما فعال (hot) باقی بماند و هزینههایتان پایین باشد.