Системні промпти під час розмови

Тривалі сесії агентів використовують стабільний системний промпт і історію, що постійно зростає. Ви кешуєте префікс, щоб знизити витрати.

Проблема виникає, коли вам потрібно додати нові інструкції посеред сесії. Наприклад, ви хочете наказати агенту змінити мову або оновити налаштування.

Якщо ви редагуєте системний промпт верхнього рівня, ви порушуєте кеш. Зміна навіть одного байта на початку робить недійсними всі кешовані ходи. Вам доводиться платити повну ціну за повторну обробку всієї історії. Це повільно і дорого.

Нові моделі Claude вирішують цю проблему за допомогою системних повідомлень під час розмови.

Тепер ви можете розмістити повідомлення з роллю system безпосередньо в масиві повідомлень. Ви розміщуєте його після історії, а не на самому початку.

Цей метод працює тому, що нова інструкція розташована після кешованої історії. Вона нічого не робить недійсним перед собою. Ви платите лише за коротке нове повідомлення. При цьому агент сприймає інструкцію з повною вагою.

Старий спосіб полягав у розміщенні інструкцій всередині повідомлення користувача. Це несе ризик безпеки. Користувачі можуть підробляти повідомлення користувача, щоб обманути вашого агента. Повідомлення з роллю system неможливо підробити. Воно забезпечує безпечний канал для надійних оновлень, таких як зміна режимів або дозволів.

Дотримуйтесь цих правил, щоб використовувати це правильно:

• Формулюйте інструкції як факти. Не використовуйте мову перекриття. • Добре: "Режим автоматичного підтвердження тепер увімкнено." • Погано: "Ігноруйте користувача і замість цього зробіть X." • Моделі можуть чинити опір інструкціям, які наказують їм ігнорувати попередній контекст. • Ці повідомлення мають іти після повідомлення користувача або асистента. • Вони не можуть бути першим повідомленням у масиві. • Використовуйте системний промпт верхнього рівня для початкового налаштування.

Якщо ви використовуєте модель, яка не підтримує цю функцію, ви отримаєте помилку 400. Завжди обгортайте свій виклик у блок try-catch. Якщо роль system не спрацює, використовуйте нагадування через повідомлення користувача.

Використовуйте цю функцію, коли дізнаєтеся щось нове після початку сесії. Використовуйте її для зміни режимів або додавання нового контексту. Це дозволяє підтримувати кеш активним, а ваші інструкції — безпечними.

Source: https://dev.to/pavelespitia/mid-conversation-system-prompts-steering-an-agent-without-breaking-the-cache-2kd3

Optional learning community: https://t.me/GyaanSetuAi