Context Engineering
Стратегії управління контекстом AI-агента: пам'ять, стан, оптимізація та best practices
context engineeringконтекстRAGпромптоптимізація
📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ
Context Engineering
Context Engineering -- це мистецтво надання LLM саме тієї інформації, яка необхідна для виконання наступного кроку, у межах обмеженого вікна моделі.
Два елементи
| Елемент | Опис |
|---|---|
| Управління пам'яттю | Збереження контексту між кроками |
| Управління станом | Дозволяє агенту пам'ятати, де він знаходиться у процесі виконання складної задачі |
⚠️Увага
Сміття на вході = Сміття на виході. Завжди точно знайте, що саме зараз знаходиться у контексті.
Що таке контекст
Контекст -- це короткострокова пам'ять агента, аналогічно RAM комп'ютера. Включає:
- System prompt -- системний промпт
- Історія діалогу -- попередні повідомлення
- Визначення інструментів -- Tools, Skills, Subagents, MCP тощо
- Зовнішні знання та файли -- RAG, результати пошуку, вміст файлів, логи помилок
Чому це важливо
- Відсутність пам'яті: LLM за своєю природою є stateless
- Обмеженість вікна та зростання витрат: подвоєння контексту збільшує обсяг обчислень учетверо
- "Гниття контексту" (Context Rot) та ефект "Lost in the middle"
- Запобігання галюцинаціям та плутанині
- Деградація: чим більший обсяг контексту, тим нижча точність відповідей моделі
Передача знань у контекст
| Спосіб | Суть | Обмеження | Сценарії |
|---|---|---|---|
| In-context Learning | Передача інформації безпосередньо у промпт | Обмежений контекстним вікном | Для разових задач |
| RAG | Зберігання документів у векторній базі, динамічне витягування | Потрібна інфраструктура | Для великих баз, що часто оновлюються |
| Fine-tuning / LoRA | Донавчання моделі на приватних даних | Дорого та довго | Специфічна термінологія при стабільних даних |
Автоматичний збір контексту
| Метод | Технологія | Плюси | Мінуси |
|---|---|---|---|
| Синтаксичний | LSP та AST | Низьке споживання ресурсів | Перестає працювати при помилках коду |
| Семантичний | IDE будує повний граф коду | Аналізує код з помилками | Високі витрати на індексацію |
| RAG по коду | Embeddings | Стабільна робота з неповним кодом | Потребує GPU або Cloud |
| Динамічне виявлення | grep, tail, read_range | Швидкий доступ | Обмежене розуміння структури |
| Feedback Loop | Тести, лінтери, логи | Самокорекція | Потребує налаштування |
Стратегії управління контекстом
- Складання чіткого плану роботи -- визначте послідовність дій заздалегідь
- Сумаризація та очищення -- видаляйте старі повідомлення, використовуйте окремі сесії
- Збереження проміжних думок -- у файли, бази даних або довгострокову пам'ять (Memory Bank)
- Підтягування лише релевантних інструкцій -- використовуйте Skills
- Розділення контексту -- між кількома вузькоспеціалізованими агентами
Best Practices
💡Порада
Проєктуйте архітектуру пам'яті ДО написання промптів. Глибоке планування до початку виконання роботи.
- Якщо розмова йде не туди -- починайте нову сесію
- Універсальні промпти та інструкції працюють погано
- Реалізація фіч та виправлення багів -- це різні процеси
- Не додавайте у контекст нічого зайвого
- Ніколи не завантажуйте великі документи цілком
- Для складних та довгих задач примушуйте агента вести
todo.md - Якщо інструмент повернув збій -- залишіть цей лог
- Редагуйте вихідний запит замість виправлень наступним повідомленням
- Комбінуйте пошук зі свіжістю, важливістю та частотою звернень