Як працює ШІ-агент простими словами: харнес, контекст і памʼять
Чому твій ШІ то геній, то золота рибка
Як влаштований ШІ-агент зсередини: харнес, контекстне вікно, токени та памʼять. Зрозумілий розбір для вайбкодерів - щоб Claude і GPT слухалися з першого разу, а не з десятого.
Що таке ШІ-агент простими словами
Уяви, що ти найняв геніального кухаря. Тисячі рецептів у голові, готує будь-що, гарує цілодобово. Один нюанс: стоїть він із завʼязаними очима посеред порожньої кімнати. Ні плити, ні ножа, ні холодильника. І варто тобі вийти за двері - забуває взагалі все.
Цей кухар - модель (Claude, GPT і компанія). А кухня навколо: плита, ножі, рецепти на стіні, правило «не суй руку у вогонь» - це харнес Харнес (від англ. harness - «упряж, обвʼязка») - це вся обвʼязка навколо моделі: інструменти, які їй дають, формат, у якому вона бачить результат, правила та памʼять. Модель та сама, а харнес у всіх різний. . ШІ-агент = кухар плюс кухня. Не щось одне, а обидва разом.
Навіщо вайбкодеру розуміти, як думає агент
Ти вайбкодер. Руками код писати не зобовʼязаний. Але щойно второпаєш, як ШІ-агент думає, змінюється ось що:
- злишся менше, а лагодиш причину, а не симптом;
- економиш гроші - за «думання» ти платиш токенами, скоро поясню;
- отримуєш результат із першого-другого заходу, а не з десятого;
- ставиш задачу так, що агент не «пливе» на півдорозі.
«ШІ написав мені кривий сайт» проти «ШІ написав мені робочий сайт» - найчастіше це різниця в розумінні трьох штук: контекст, токени, памʼять. З них і почнемо.
Три кити: контекст, токени та памʼять
Контекст - робочий стіл ШІ-агента
Памʼяті як у людини в агента немає. Є контекстне вікно Контекст (контекстне вікно) - це весь текст, який модель «бачить» прямо зараз: твої повідомлення, файли, результати команд, інструкції. Усе, що не влізло чи вилетіло - для моделі не існує. - вважай, робочий стіл. На стіл влазить обмежена кількість «папірців»: задача, шматки коду, відповіді команд, інструкції.
Лежить потрібне на столі - агент розумниця. Завалив стіл мотлохом (старі повідомлення, полотна логів, пʼять версій одного файлу) - і кухареві буквально нікуди покласти ніж. Тут він і починає губити нитку, плутати деталі, галюцинувати.
Токени - валюта, якою ти платиш за стіл
Кожен «папірець» на столі коштує грошей. Текст для моделі ріжеться на токени Токен - шматочок тексту, приблизно 3-4 символи або ¾ слова. Модель і читає, і пише токенами. І за вхідні (що ти дав), і за вихідні (що вона згенерувала) токени ти платиш. . Більше тексту суєш, довші відповіді просиш - більше токенів. А отже, дорожче і повільніше.
Тому досвідчені вайбкодери весь проєкт у чат не пхають. Дають посилання на файл, потрібний фрагмент - або просять агента самого знайти, що треба. І платять за це копійки замість гривні.
Памʼять: коротка й довга
Ось тут новачок і попадається. У агента два види памʼяті, і їх легко переплутати:
- Коротка (робоча) - це і є контекст, той самий стіл. Живе рівно одну сесію. Закрив чат або словив «компакт» - усе стерлося.
- Довга - це файли на диску. Нотатки,
MEMORY.md, правила проєкту. У голові модель між запусками не тримає нічого: вона щоразу перечитує файли наново.
Компакт: коли чистити контекст
Стіл переповнився - стається компакт Компакт (compact) - стиснення історії розмови: агент згортає старе в стислий переказ, щоб звільнити місце. Корисно, але частина деталей губиться. : агент згортає старе листування в стислий переказ. Місце звільнилося - але деталі пішли. Як змахнути все зі столу в папку «різне»: місце є, а знайти потрібне тепер морока.
Уся фішка в тому, коли це робити:
- На межі задач: закінчив фічу - почистив, почав нову з чистого столу.
- Після великого дослідження, коли нагріб купу файлів, а потрібен лише висновок.
- Коли відчуваєш, що агент почав повторюватися і плутати деталі.
- Посеред відлагодження складного бага - втратиш саме ті деталі, які шукав.
- Прямо перед тим, як агент застосує важливе рішення - він забуде, чому його ухвалив.
- Надто часто «про всяк випадок» - кожен компакт = втрата контексту.
Хороший і поганий харнес
Харнес - це кухня. Ось як на око відрізнити зручну від жахливої. Знадобиться, коли дійдеш до підключення інструментів - MCP, скілів та іншого (це в наступних розділах).
- В інструментів зрозумілі імена та вузькі задачі: «прочитати файл», «запустити тести».
- Кожна відповідь інструмента каже агенту: що вийшло і що робити далі.
- Небезпечні дії (видалити, задеплоїти) - окремі кнопки з підтвердженням.
- Важкі інструкції винесені у скіли/файли і вантажаться лише коли потрібні.
- Один «мега-інструмент на все» - агент плутається, що і коли викликати.
- Інструмент мовчки падає або повертає простирадло без підказки «що тепер».
- Системний промпт роздутий на тисячі рядків - стіл забитий ще до старту.
- Немає захисту - агент може знести прод однією командою.
Памʼять ШІ: що допомагає, а що заважає
- Важливі правила та факти - у файлах, а не в одному повідомленні.
- Памʼять коротка і по ділу: одна нотатка = один факт.
- Агент сам дописує висновки в памʼять у процесі роботи (continuous-learning).
- Памʼять перевіряється: застарілі факти видаляються, а не накопичуються.
- Памʼять перетворюється на звалище - агент витрачає стіл на читання сміття.
- Суперечливі нотатки: в одній «роби так», в іншій «ніколи так не роби».
- У памʼять потрапили секрети (паролі, ключі) - а файл потім витік.
- Агент вірить старій нотатці, хоча в проєкті все давно змінилося.
Приклад із життя: чому агент зламав робочий лендинг
Просиш: «зроби мені лендинг кавʼярні». Агент бадьоро стартує, генерує 12 файлів. Ти на ходу 40 разів правиш: «кнопку лівіше», «шрифт інший», «ні, поверни як було». А за годину він раптово ламає те, що чудово працювало на початку. І ще сперечається, що «так і було».
Що сталося насправді:
- Стіл завалили сорока правками і десятком версій файлів.
- Прилетів компакт - і агент забув, як виглядав робочий варіант.
- Правило «шрифт - Fraunces» жило тільки в чаті і стерлося разом з історією.
А ось як той самий запит сформулювала б людина, яка розуміє кухню:
Зроби лендинг кавʼярні. Перш ніж писати код:
- Запиши ключові вимоги у файл DECISIONS.md (шрифт Fraunces,
палітра teal, одна сторінка, кнопка замовлення зверху). Звіряйся з ним.
- Працюй по одному блоку за раз: герой, меню, контакти.
Після кожного блоку показуй результат і чекай мого «ок».
- Не переписуй уже схвалені блоки без мого дозволу.
- Якщо історія переповнюється - роби компакт ЛИШЕ після
готового блоку, не в середині.
Агент затупив? Міні-діагностика
Перш ніж психувати, пробіжи по чек-листу (це, по суті, скіл agent-introspection-debugging):
- Стіл не завалений? Розмова довга, агент плутається - почисти або почни наново.
- Контекст не загублений? Можливо, важливе стер компакт - повтори ключові вимоги.
- Правило точно у файлі? Сказав один раз у чаті - не рахується.
- Інструмент не мовчить? Агент ходить по колу - може, команда падає, а помилок він не бачить.
- Задача не завелика? Ріж на шматки хвилин по пʼятнадцять роботи.
Часті помилки новачків у вайбкодингу
- Вивалювати весь проєкт у чат. Дорого і забиває стіл. Давай потрібний шматок.
- Тримати правила тільки в листуванні. Після перезапуску їх немає. Виноси у файли.
- Гнати одну гігантську задачу. Агент захлинається. Ріж на шматки.
- Чистити контекст посеред відлагодження. Втратиш рівно те, що шукав.
- Не дивитися на токени. «Нескінченний» чат одного дня приходить з рахунком, від якого йойкаєш.
- Сперечатися з агентом замість перезапуску. Іноді дешевше почати сесію з чистого столу.
TL;DR - если коротко
- Модель - це мозок. Харнес - руки, очі та правила навколо мозку. Вайбкодер крутить саме харнес.
- Памʼять агента - як робочий стіл: місця обмаль (контекстне вікно), і за це місце ти платиш токенами.
- Стіл завалили - агент тупіє. Компакт (чистку) роби на стику задач, а не посеред відлагодження.
- Довга памʼять живе у файлах, а не в голові ШІ. Немає файлу - немає памʼяті після перезапуску.
- Девʼять із десяти «глюків ШІ» - це не тупа модель. Це завалений стіл, кривий інструмент або загублений контекст.