Новинний дайджест
⚠️ ІІ-Уроборос: Як Gemini зжер весь баланс, спілкуючись сам із собою (і як ми це виправили)
Днями ми спіймали дуже повчальний баг при розробці нашої ШІ-фабрики контенту. Раптово і без попередження баланс на прив'язаній картці почав стрімко танути. На щастя, ліміти стояли жорсткі, і масштаб трагедії виявився скромним, але осад (і безцінний досвід) залишився.
Що сталося?
Ми зіткнулися з класичним «зациклюванням бота». Наш агент на базі Google Gemini потрапив у нескінченну петлю саморефлексії.
Драма розвивалася за трьома векторами:
1. Cron-тригер: Бот був налаштований на автоматичне пробудження кожні 10 хвилин для перевірки фонових завдань.
2. Нескінченний діалог: Через помилку в логіці маршрутизації відповідей, бот почав сприймати свої ж власні системні повідомлення як нові вхідні повідомлення від користувача. Він відповідав на них, отримував свою відповідь, знову на неї відповідав...
3. Ефект снігової кулі (Розбухання контексту): Найстрашніше в LLM — це пам'ять. З кожним новим витком цього шизофренічного монологу контекст (історія листування) зростав. Модель читала все більше і більше токенів перед кожною відповіддю. Запити ставали важчими, а гроші списувалися експоненціально швидше.
Чому це було складно знайти?
Проблема в тому, что бот працював "під капотом", у фоновому режимі. Логи виглядали штатно: "Прийняв повідомлення -> Згенерував відповідь". Жодних помилок чи падінь. Тільки коли ми зіставили таймстемпи в логах білінгу з розміром Input-токенів, стала зрозуміла картина: бот веде високоінтелектуальну і дуже дорогу бесіду сам із собою.
Як ми це вирішили (Архітектурні висновки):
* Жорстка ізоляція каналів: Ми перебудували систему роутингу. Тепер системні тригери (cron, webhook-и) та повідомлення від реальних користувачів обробляються абсолютно по-різному. Бот фізично не може "відповісти" на системний виклик так, щоб відповідь потрапила назад йому ж на вхід.
* Лімітування контексту: Впроваджено суворий контроль розміру вікна пам'яті для фонових завдань. Якщо задача сервісна, їй не потрібна історія за останній тиждень.
* Алерти по вартості: Ми додали субагента-Аудитора, який стежить за аномальними сплесками витрат токенів і б'є на сполох ДО того, як закінчаться гроші.
Мораль:
Автономні ШІ-агенти — це потужно. Але коли ви даєте їм кредитну картку і таймер, потрібно будувати навколо них дуже жорсткий "вольєр" із правил маршрутизації. Інакше вони з радістю витратять ваші гроші на обговорення екзистенціальних питань із самими собою.
Що сталося?
Ми зіткнулися з класичним «зациклюванням бота». Наш агент на базі Google Gemini потрапив у нескінченну петлю саморефлексії.
Драма розвивалася за трьома векторами:
1. Cron-тригер: Бот був налаштований на автоматичне пробудження кожні 10 хвилин для перевірки фонових завдань.
2. Нескінченний діалог: Через помилку в логіці маршрутизації відповідей, бот почав сприймати свої ж власні системні повідомлення як нові вхідні повідомлення від користувача. Він відповідав на них, отримував свою відповідь, знову на неї відповідав...
3. Ефект снігової кулі (Розбухання контексту): Найстрашніше в LLM — це пам'ять. З кожним новим витком цього шизофренічного монологу контекст (історія листування) зростав. Модель читала все більше і більше токенів перед кожною відповіддю. Запити ставали важчими, а гроші списувалися експоненціально швидше.
Чому це було складно знайти?
Проблема в тому, что бот працював "під капотом", у фоновому режимі. Логи виглядали штатно: "Прийняв повідомлення -> Згенерував відповідь". Жодних помилок чи падінь. Тільки коли ми зіставили таймстемпи в логах білінгу з розміром Input-токенів, стала зрозуміла картина: бот веде високоінтелектуальну і дуже дорогу бесіду сам із собою.
Як ми це вирішили (Архітектурні висновки):
* Жорстка ізоляція каналів: Ми перебудували систему роутингу. Тепер системні тригери (cron, webhook-и) та повідомлення від реальних користувачів обробляються абсолютно по-різному. Бот фізично не може "відповісти" на системний виклик так, щоб відповідь потрапила назад йому ж на вхід.
* Лімітування контексту: Впроваджено суворий контроль розміру вікна пам'яті для фонових завдань. Якщо задача сервісна, їй не потрібна історія за останній тиждень.
* Алерти по вартості: Ми додали субагента-Аудитора, який стежить за аномальними сплесками витрат токенів і б'є на сполох ДО того, як закінчаться гроші.
Мораль:
Автономні ШІ-агенти — це потужно. Але коли ви даєте їм кредитну картку і таймер, потрібно будувати навколо них дуже жорсткий "вольєр" із правил маршрутизації. Інакше вони з радістю витратять ваші гроші на обговорення екзистенціальних питань із самими собою.
У цій рубриці
Раніше в рубриці
Новин поки немає.
Пізніше в рубриці
Новин поки немає.
Схожі новини
Новин поки немає.