Завдання
Власник незалежного магазину закуповує за своїми продажами. Але продажі показують лише те, що вже стоїть на полиці. Якщо людина прийшла по платівку, якої нема, вона мовчки йде, і в звітах цього не видно ніколи. Ми назвали це «попитом, якого не видно в касі». Покупцеві тим часом важко вибрати подарунок: він знає, що любить людина, але не знає, що з цього схоже на те, що є в магазині.
Qloo, компанія з базою смаків (хто любить X, той любить Y: музика, кіно, книги, ігри), відкрила бриф на AI-агентів поверх свого API. Відео і пітч не обовʼязкові, Україна допущена. Ми хотіли три речі: перевірити себе на справжньому агенті, де модель сама вирішує, який інструмент викликати і коли зупинитися; чесно заміряти, чи кращий він за звичайний Claude; і отримати в портфоліо роботу з живим сайтом і відкритим кодом.
Навіщо і яка ідея
Ідея: поставити в магазин агента, який читає запит покупця звичайними словами («подарунок брату, любить Joy Division, до $40»), іде в Qloo, оцінює весь каталог під цей смак, перевіряє бюджет і вік і бере три речі з полиці. Під кожною факт від Qloo, чому вона підходить. А все, чого на полиці не знайшлося, вранці йде власнику списком: які платівки дозамовити. Так магазин нарешті бачить, за чим від нього пішли.
Два рішення переглянули по ходу. Спочатку хотіли «AI для будь-якого інтернет-магазину», але Qloo впізнав лише близько 30% випадкових товарів з Amazon. Звузили нішу до магазину культури: платівки, книги, фільми, ігри, серіали. Друге: мій перший план дизайну (назва, три стилі вітрини, генерація картинок) консиліум з пʼяти AI-радників відхилив одноголосно. Головною відмінністю проєкту був екран власника, а його в плані не було. Зробили за вердиктом.
Хід роботи
| Етап | Що відбувалося |
|---|---|
| День 1 | Реєстрація, заявка на ключ Qloo. Каркас на заглушках, поки ключа нема. Перший сюрприз: Qloo оцінює бренд, а не товар |
| День 3, ранок | Прийшов ключ. Живі запити до Qloo, перший замір, відмова від «AI для будь-якого магазину». Обрано нішу: магазин культури |
| День 3 | Два консиліуми по дизайну. Весь сайт переробили в стилі «нічний рекорд-шоп», обкладинки як головний матеріал. 72 коміти за день |
| День 4, 00:11 | Заявку подано |
| День 4 | Фінальний консиліум: пʼять незалежних AI-радників оцінили роботу як журі, виконано весь їхній план. Код-ревʼю знайшло 5 помилок агента, виправлені, все переміряно. Нове відео, нова галерея |
| Через три тижні | Увімкнення живого агента, перевірка посилання для журі |
Усього 94 коміти, 4 робочі дні до подачі.
Чим робили
Агент: Claude Haiku 4.5 з tool use. 6 інструментів, 4 з них ходять у Qloo: пошук сутностей, insights з фільтром по каталогу магазину і поясненням, який смак дав збіг, теги смаку, демографія для подарунків за віком, смак міста через signal.location. Модель сама вирішує порядок викликів, але не більше 6 ходів і 25 живих запитів до Qloo на один запит покупця.
Код: Next.js 16, TypeScript, Vercel, близько 2 500 рядків у ядрі агента і сторінках. Каталог: 384 товари, обкладинки і дані з iTunes Search API та Open Library, вікові рейтинги з офіційних джерел, арт обкладинки згенеровано в Higgsfield. Захист від витрат: поки живий агент закритий, публічний сайт показує записані прогони, у журі окремий пропуск. Стеля на Claude $3 на добу для всіх і $10 для журі, окремий запас квоти Qloo. Якщо ліміт вичерпано, сайт не падає, а показує найближчий записаний приклад. Один запит покупця коштує близько $0,015 на Claude.
Заміри робили сліпими. Окремий агент, який бачив тільки каталог, написав і розмітив 40 запитів покупців ще до налаштування. Налаштовували тільки на непарних, парні не чіпали. Після всього налаштування інший сліпий агент написав ще 30 нових. Порівнювали з тим самим Claude, якому дали весь каталог текстом, але без Qloo. Другий сліпий суддя оцінював усі спірні підбірки обох сторін, не знаючи, чия де. Статистика на Python: бутстреп і тест знаків.
Результат
Живий сайт з трьома сторінками. Покупець (/live): пишеш запит, справа видно, як агент працює по кроках, нижче для порівняння відповідь Claude без Qloo на той самий запит. Власник (/owner): ранкова записка «три платівки, які варто замовити» з обкладинкою, виконавцем і кількістю покупців, що їх хотіли, нижче прогалини на полиці. Справжні магазини (/real): публічні каталоги Waterloo Records (Остін) і Josey Records (Даллас), прогнані через Qloo: скільки з 50 улюблених артистів міста стоїть на полиці і чого шукають покупці, а в магазині нема.
Цифри на 50 запитах, на яких не налаштовувалися: влучань у топ-3 у нашого агента 0,43, у Claude без Qloo 0,32; перемог і поразок 25 проти 9. З другим суддею 0,57 проти 0,48 і 21 проти 12. Бюджет: на 70 запитах Claude без Qloo 15 разів поставив у топ-3 товар дорожчий за бюджет, наш агент жодного разу.
Слабкі місця опублікували теж: з другим суддею відрив менший і статистично не вирішальний, а один ранній тест взагалі показав зворотне. Публікуємо останній прогін, а не найкращий. Підсумки брифу ще не оголошені, допишемо, коли прийдуть.
Помилки і що винесли








