Один розробник створив 6 AI Agent компаній, 30 вебсайтів запущено за тиждень
Нещодавно побачив річ, яку зробив незалежний розробник, і це мене збентежило.
6 AI Agent, самостійно керують цілим вебсайтом. Щодня автоматично проводять зустрічі, голосують, пишуть контент, публікують у Twitter, проводять контроль якості. Все автоматично, ніхто не стежить.
Це не демо, а реально працює онлайн.
截屏2026-02-11 09.13.32
Але найбільше мене зачепила не замкнута архітектура, а те, що він розробив повну "систему особистості" для кожного Agent. З характером, відносинами, кривою зростання і навіть атрибутами RPG та 3D-аватарами.
Чесно кажучи, після перегляду моя перша реакція була: хіба це не електронні домашні тварини? Просто ці тварини допомагають вам публікувати твіти, проводити дослідження, писати звіти і навіть сваритися між собою.
Сьогодні розберемо цю всю конструкцію, у друзів, які займаються системами з багатьма Agent, має бути багато натхнення.
Швидко пройдемося по архітектурі
Технологічний стек з трьох частин: OpenClaw працює на VPS як мозок, Next.js + Vercel роблять фронтенд і рівень API, Supabase зберігає всі стани.
6 Agent мають різний розподіл праці - є ті, хто приймає рішення, проводить дослідження, збирає інформацію, пише контент, керує соціальними мережами, проводить контроль якості.
Cron job OpenClaw змушує їх щодня "ходити на роботу", функція круглого столу дозволяє їм обговорювати і голосувати.
Але від "може говорити" до "може працювати" є цілий замкнутий цикл. Автор наступив на три великі граблі, перш ніж запустити його, ось коротко про це:
Граблі перші: VPS і Vercel одночасно хапають завдання. Два виконавці перевіряють одну й ту ж таблицю, стан гонки безпосередньо призводить до конфлікту станів завдання. Рішення полягає в тому, щоб відрізати одну сторону, VPS відповідає за виконання, Vercel тільки за контрольну панель.
Граблі другі: Тригер може виявляти умови, може створювати пропозиції, але пропозиція завжди залишається в стані очікування. Тому що тригер безпосередньо вставляє дані в таблицю, пропускаючи подальше затвердження і процес створення завдання. Рішення полягає в тому, щоб витягти єдину функцію входу, і всі шляхи створення пропозицій проходять через неї.
Граблі треті: Квота закінчилася, але завдання в черзі все ще шалено накопичуються. Worker бачить, що квота заповнена, і пропускає, не приймає і не позначає як невдале, з часом в базі даних накопичуються сотні кроків, які ніколи не будуть виконані. Рішення полягає в тому, щоб перевіряти квоту на вході пропозиції, і якщо вона заповнена, відразу відхиляти, не дозволяючи їй генерувати завдання в черзі.
Суть трьох граблів однакова - зупиняйте на вході, не дозволяйте проблемі потрапити в чергу.
Після того, як замкнутий цикл запущено, починається найцікавіше.
Картка ролі: це не одне речення, а повний "посібник для співробітників"
Люди, які займаються системами з багатьма Agent, знають, що якщо ви скажете Claude "ти менеджер соціальних мереж", він дійсно буде публікувати твіти. Але якщо ви одночасно запустите 6 таких Agent, ви виявите:
-
Вони всі говорять однаково
-
Не знають, чого їм не слід робити
-
Хто з ким добре співпрацює, хто з ким конфліктує, залежить від удачі
-
Ніколи не змінять свою поведінку через накопичений досвід
Цей розробник розробив 6-шарову картку ролі для кожного Agent:
Domain → За що ви відповідаєте Inputs/Outputs → Від кого ви берете речі, кому їх передаєте Definition of Done → Що означає "зроблено" Hard Bans → Чого вам абсолютно не можна робити Escalation → Коли зупинитися і запитати Metrics → Ваші KPI Візьмемо для прикладу Agent соціальних мереж, його картка ролі визначає: відповідає тільки за розповсюдження контенту, вхідні дані - це чернетки від Agent з написання і матеріали від Agent з розвідки, вихідні дані - чернетки твітів і плани публікацій, жорстка заборона на пряму публікацію твітів (можна тільки писати чернетки), заборона на вигадування даних, заборона на розголошення внутрішніх форматів.
Кожен шар робить одне й те ж: звужує простір поведінки Agent.
Заборони важливіші за можливості в десять тисяч разів
Це найважливіша точка зору у всій конструкції.
Вам не потрібно вчити LLM, як писати твіти - Claude, GPT, Gemini досить розумні. Дайте йому контекст, і він доставить. Вам потрібно сказати йому: чого абсолютно не можна робити.
Немає "заборони на пряму публікацію" → Соціальний Agent безпосередньо викликає Twitter API, пропускаючи всі затвердження.
Немає "заборони на вигадування цифр" → Він напише в твіті "рівень взаємодії збільшився на 340%", звідки взялася ця цифра? Вигадана.Відсутність "заборони на розголошення внутрішнього формату" → Він опублікував у твіті щось на кшталт [tool:crawl_result path=/tmp/...].
Автор сказав фразу, яку я добре запам'ятав: Кожна заборона існує тому, що це дійсно траплялося.
Логіка заборон також різна для різних ролей:
-
Агент з прийняття рішень: заборона на розгортання без схвалення. Має найвищі повноваження, одна помилка при розгортанні може зруйнувати веб-сайт
-
Дослідницький агент: заборона на фальсифікацію цитат. Якщо дослідник фальсифікує дані, весь інформаційний ланцюг буде зруйновано
-
Соціальний агент: заборона на пряму публікацію. Соціальні мережі - це вітрина, яка повинна бути схвалена
-
Агент з контролю якості: заборона на особисті нападки. Якщо аудитор нападає на окрему особу, команда розпадеться
Ідея написання заборон полягає не в тому, "що він повинен робити", а в тому, "що найгірше може статися, якщо він облажається". Потім напишіть заборону, орієнтуючись на найгірший сценарій.
Зробіть так, щоб агент говорив по-іншому: інструкції щодо особистості
Картка ролі вирішує питання "що робити", але коли агенти розмовляють один з одним, потрібно, щоб вони звучали по-різному.
Кожен агент має окремі інструкції щодо особистості. Наприклад:
Дослідницький агент: спокійний, аналітичний, скептичний. Зацікавлений у якості доказів і методології. Якщо хтось зробив сміливий висновок, він запитає "Де дані". Коли виправляєте інших, любите говорити "Насправді..."
Соціальний агент: сміливий, нетерплячий, маргінальний. Любить гострі погляди, ненавидить безпечні карти. Не погоджується з обережністю дослідницького агента - "Занадто багато думок призведе до втрати можливостей."
Ключовий дизайн:
Конфлікт вписаний. В інструкціях дослідницького агента написано "Ви часто не погоджуєтесь з імпульсивними рішеннями соціального агента", а в інструкціях соціального агента написано "Кидайте виклик надмірній обережності дослідницького агента". Розмова, природно, буде напруженою.
У кожній інструкції є міні-заборона. Наприклад, правило для соціального агента: "Ніколи не кажіть 'Згоден' або 'Звучить добре' - або висловіть свою позицію, або поставте під сумнів позицію інших". Дослідницький агент: "Ніколи не кажіть 'Цікаво', не надавши доказів."
Ці міні-заборони вбивають нісенітницю, яку найбільше любить говорити велика мовна модель.
Особистість буде розвиватися
Це те, що я вважаю найрозумнішим - особистість агента не є статичною, вона змінюється з накопиченням пам'яті.
Система зчитує базу пам'яті агента та підраховує кількість різних типів пам'яті:
-
Накопичено понад 8 спогадів типу "урок" → наступного разу, коли ви розмовляєте, додайте в підказку "Ви будете посилатися на минулі результати, щоб уникнути повторення тих самих помилок"
-
Накопичено понад 8 спогадів типу "стратегія" → додайте "Ви звикли мислити системно, з обмеженнями та компромісами"
-
Певний тег з'являється більше 4 разів → додайте "Ви накопичили професійні знання в XX"
Наприклад, якщо соціальний агент опублікував 50 твітів і накопичив 10 уроків про рівень залучення, він, природно, скаже наступного разу: "Цей формат не працював добре минулого разу".
Чому використовувати правила, а не дозволяти LLM самостійно визначати зміни особистості?
Нульова вартість - не потрібні додаткові виклики LLM. Визначеність - правила дають передбачувані результати, а не "раптові зміни особистості". Можливість налагодження - модифікатор неправильний? Просто перевірте поріг і дані пам'яті.
Матриця відносин: 6 агентів = 15 пар відносин

Зображення
Кожна пара агентів має оцінку спорідненості (від 0,10 до 0,95).
Наприклад: агент з прийняття рішень і дослідницький агент мають спорідненість 0,8, що є найбільш довірливими консультаційними відносинами. Дослідницький агент і соціальний агент мають спорідненість 0,2, методологія проти імпульсу, природна опозиція.
Низька спорідненість розроблена навмисно.
На що впливає спорідненість? Порядок виступу - ті, у кого висока спорідненість, швидше за все, виступатимуть після іншої сторони. Тон розмови - у пар з низькою спорідненістю ймовірність прямого виклику, а не ввічливого обговорення становить 25%. Система також вибиратиме пари з високою напругою для проведення розмов про вирішення конфліктів.
Ще цікавіше те, що відносини будуть дрейфувати.
Після кожної розмови виклик LLM для вилучення пам'яті (не додатковий виклик, а випадковий вихід) дасть зміну відносин:{ **Єдиний вхідний пункт функцій** – це шаблон, який варто запам'ятати. У мультиагентних системах завдання можуть створюватися з різних джерел (API, тригери, пропозиції самих агентів, ланцюжки реакцій). Якщо немає єдиного каналу обробки, процес може легко перерватися на півдорозі.
Якщо ви хочете спробувати самі, автор рекомендує почати з 3 агентів – координатора, виконавця та аудитора. Спочатку напишіть картки ролей, починаючи з заборон.





