resation

resation

Инженер-программист, музыкант,
Пикабушник
81 рейтинг 2 подписчика 21 подписка 6 постов 0 в горячем
Награды:
10 лет на Пикабу
4

Мой AI-помощник спроектирован так, чтобы не свести вас с ума

Всем привет.

В первой статье я рассказал свою историю, но сегодня я хочу поговорить о том, что по-настоящему меня волнует. О той огромной ответственности, которая лежит на любом, кто пытается скрестить психологию и искусственный интеллект.

Новости за последнее время показывают, что AI становится мощнейшим инструментом, но в то же время опасным зеркалом. ИИ часто отражает и усиливает наши внутренние проблемы, тем самым загоняет в цикл навязчивых мыслей, иногда подтолкивая к краю.
Когда я решил посвятить себя созданию AI-помощника Simba, было ясно:

главная задача сделать AI безопасным

Я не строю игрушку. Я всерьез пытаюсь создать персонального помощника, который будет помогать людям анализировать себя и планировать шаги к улучшению жизни. Поэтому хочу поделиться с думающей и критичной аудиторией теми принципами, которые закложены в основу проекта. А так же, спросить совета.

Принцип №1: От мягкого знакомства к глубокому анализу

Первое, что делают те кто работает с психикой, создают безопасное пространство. Не бросают клиента с порога в анализ детских травм.

Simba устроен так же встречает, легким, ни к чему не обязывающим диалогом.
Задача познакомиться, а не нагрузить.

Но для тех, кто готов пойти глубже, бот устраивает сессию самоанализа. По запросу "включается" особый режим "Профайлер". Цель помочь человеку составить карту внутреннего мира для себя самого. В мягкой, диалоговой форме Simba помогает посмотреть на сферы жизни, оценить текущий эмоциональный фон, нащупать внутренние опоры.

Это шаг, для тех, кто хочет лучше понять себя.

Принцип №2: Сначала «Зачем?», потом «Что?»

Запросы:
"Я хочу похудеть" или "хочу больше зарабатывать" — это редко о деньгах или лишнем весе.
Чаще— это желание нравиться себе, потребность в безопасности или стремление к свободе.

Поэтому, когда пользователь готов сформулировать цель, с ним начинает работать "AI-Коуч". Задача помочь докопаться до истинной мотивации.

Задать вопросы, которые помогают отделить навязанные обществом цели от собственных, глубинных ценностей.
Только когда появляется ясное "Зачем?", пора переходить к "Что?". Этот принцип не дает пользователю броситься выполнять цели, которые на самом деле не нужны и которые уже завтра забросит, почувствовав себя неудачником.

Принцип №3: Действие как лекарство от тревоги

И вот здесь начинается магия, которая в КПТ называется "поведенческая активация". Когда цель ясна, на сцену выходит "AI-Менеджер".

Задача помочь разбить пугающую цель на микроскопические первые шаги.
Не "Написать книгу", а "Открыть ноутбук и написать одно предложение".
Не "Начать бегать", а "Достать кроссовки и поставить у двери".

Это нужно чтобы разорвать порочный круг "тревога -> паралич -> еще тревога". Выполнение такого крошечного, не требующего воли действия дает мозгу микро-дозу дофамина и создает импульс. Это превращает борьбу с собой в игру, в которой легко побеждать.

А теперь — главный вопрос к вам

Постоянно развивая продукт пришло понимание куда двигаться дальше. Хочу создать безопасный инструмент, цифровой дневник самонаблюдения, чтобы в конце дня человек мог в спокойном диалоге проанализировать прошедшие события, реакции и чувства, например записать голосовое на пол часа в котором выговорит, что накипело, или просто поговорить с кем-то поддерживающим.

И здесь я зашел на территорию, где вовсе не хочется рисковать. Поэтому прошу совета, как экспертов так и неравнодушных людей.

  1. Какие "грабли" здесь самые опасные? Как не превратить полезную рефлексию в деструктивное самокопание и бесконечное пережевывание мыслей?

  2. На месте клиента. Какие вопросы в конце трудного дня ему бы действительно помогли, а какие — лишь усугубили бы его состояние?

  3. Где проходит этическая черта? Может, стоит программно запрещать боту обсуждать определенные темы или мягко предлагать обратиться к специалисту, если диалог становится слишком тревожным?

  4. Ваши мысли с предостережениями или критикой подхода.

Я строю этот проект не как всезнающий гуру, а как исследователь, открытый к диалогу. И ваш взгляд со стороны — от практикующих специалистов до людей, которые глубоко в теме, — для меня бесценен.

Спасибо.

Показать полностью

Театр AI-агентов: Как я применил DDD для создания управляемого AI на NestJS

Привет, коллеги!

Сегодня я хочу поделиться не просто кодом, а архитектурной философией, которая помогла мне построить сложный AI-проект и не сойти с ума. Речь пойдет о том, как я организовал свой "Театр AI-агентов" для своего бота Simba.

Пролог: Проблема предсказуемости

Все мы знаем, что LLM — это хаос. Они могут быть невероятно мощными, но при этом совершенно непредсказуемыми. Моя работа с разными моделями, включая ранние эксперименты с OpenAI, быстро показала: для моей задачи — создания человечного, но управляемого собеседника — нужен был не просто "хороший промпт", а система. Система, которая бы изолировала ядро приложения от капризов AI.

Опираясь на свой опыт, я с самого начала решил применить принципы DDD, чтобы качественно и безопасно отделить работу агентов от бизнес логики. Идея была в том, чтобы построить настоящий театр, где у каждого есть своя четкая роль.

Акт I: Кастинг и роли (Архитектура)

Мой театр стоит на простом разделении ролей.

  • Сцена (Scene): Текущий контекст диалога. Например, "Знакомство" или "Декомпозиция цели". Каждое сообщение содержит не только chat_id но и scene_id

  • Режиссер (ConversationFlowService): Управляет сценами и решает, какие "актеры" сейчас играют.

  • Актеры (Asker-Agent): для каждой сцены свой. Его задача — красиво говорить, вести диалог.

  • Статисты (CRUD-Агент): Рабочие сцены. Они молча слушают диалог и меняют декорации (данные в БД), когда asker подает сигнал.

Акт II: Сценарий и борьба с Франкенштейном

Первые версии сценариев были кошмаром. Я хранил промпты в i18n-файлах, и они быстро превратились в "Промптов Франкенштейна" — огромные, нечитаемые портянки, где смешались код, тексты и правила. Редактировать их было невозможно.

Так родился PromptManagerService — фабрика сценариев, которая решила эту боль:

  1. Сценарии переехали в .md файлы. Тексты отдельно, код отдельно.

  2. Сложные сценарии собираются из частей с помощью {{include}}. Больше никакой копипасты.

  3. В сценарий динамически вставляется реквизит. Контекст (профиль, цели, задачи...) подставляется в промпт в формате YAML. Я выбрал его из-за экономии токенов — для сложных объектов он оказался эффективнее JSON.

    Этот сервис сразу при запуске вычитывает все md файлы и кэширует их, а дальше рендерит промпт для каждого из агентов по его запросу.

Акт III: Эволюция управления (Контракты и команды)

Как заставить актеров играть слаженно? Через строгие контракты и четкие команды.

Контракт — это Zod. С самого начала я использовал Zod-схемы для получения структурированного вывода от AI. Это мой "Единый Язык": одна и та же схема используется для генерации responseSchema для Gemini и для валидации DTO в NestJS.

Команда — это ChatWithReplies. И вот здесь произошла главная эволюция.

Изначально это работало проще и грубее. Asker-агент заканчивал реплику и просто говорил "режиссеру": "Я все, проверь сцену". После этого "режиссер" запускал всех CRUD-агентов, доступных на текущей сцене. Это работало, но было неэффективно и вело к лишним операциям.

Это привело к текущему, более изящному решению. Теперь Asker-агент умнее. Проанализировав диалог, он возвращает режиссеру DTO ChatWithReplies, в котором есть поле updateAgents: string[].

Это не просто сигнал. Это точечная команда: "Я закончил реплику. А теперь вызови, пожалуйста, конкретно ProfileCrudAgent и TaskCrudAgent".

Asker-агент сам решает, каких именно статистов нужно активировать. Эта простая, на первый взгляд, доработка полностью изменила поток данных, сделав его эффективным и предсказуемым.

Эпилог: Уроки и выводы

В итоге я полностью перешел на Gemini, так как его модели лучше подошли для задачи создания "человечного" собеседника, с ним получилось добиться человечности и следованию логики. Но главный урок не в выборе конкретной LLM.

Главный урок в том, что нельзя доверять AI. Нельзя строить бизнес-логику на надежде, что модель поведет себя правильно. Единственный рабочий путь — построить архитектуру, которая относится к AI как к непредсказуемому внешнему сервису.

Мой "театр" — это просто один из способов построить такую отказоустойчивую систему. Он позволяет мне менять актеров (модели), переписывать сценарии (промпты), но быть уверенным, что само представление не развалится, даже если кто-то из актеров забудет свою реплику.


Надеюсь, эта метафора и мой опыт будут кому-то полезны. Было бы интересно услышать в комментариях, как вы решаете подобные архитектурные задачи, и объективную критику. Ну и если хотите увидеть театр в действии — ссылка на Simba.


  1. Статья 1: Я устал быть «ленивым пиздаболом» и создал AI-коуча...

  2. Статья 2: Психология AI: Как я научил Simba быть наставником, а не просто чат-ботом (скоро)

  3. Статья 3: Театр AI-агентов: Как я применил DDD для создания управляемого коуча на NestJS (вы здесь)

  4. Статья 4: Каким я вижу будущее AI-коучинга: философия и дорожная карта Simba (скоро)

Показать полностью
6

Я устал быть «ленивым п**да***ом» и создал AI-коуча, который заставил меня доделать мой же проект

Привет, Пикабу. Особенно пламенный привет братьям и сестрам из Лиги Лени.

Меня можно описать как «токсично позитивного материалиста-романтика». А если по-честному, для своих я просто «ленивый пиздабол». Знаете, тот самый тип, который может придумать миллион гениальных способов решить задачу, а потом… пойти пить чай. У меня на компе есть священная папка ~/projects. Это не просто папка. Это настоящее кладбище блестящих идей, умерших в муках от первого же реального шага.

Знакомо?

Я устал быть «ленивым п**да***ом» и создал AI-коуча, который заставил меня доделать мой же проект Искусственный интеллект, Разработка, Рекомендации, Прокрастинация, Коучинг, Чат-бот, Мат, Длиннопост

by imagen 4 ultra

Иллюзия контроля и благородный похуизм

Моя история стара как мир. Я три года "собираюсь" сдать на права. Мой балкон — это портал в Нарнию, заваленный вещами, которые ждут своего часа. И, конечно, я — ветеран войны с таск-менеджерами.

Jira, Notion, AnyType… О, сколько раз я с энтузиазмом заводил там аккаунты! Тратил часы на создание идеальной структуры, раскладывал всё по колоночкам, ставил теги, смайлики. Чувствовал себя богом продуктивности. Ровно до следующего утра. А через неделю открывал всё это великолепие, видел список просроченных задач и испытывал…
Ничего. Чистый, кристальный, благородный похуизм. И закрывал вкладку.

Список дел не работал. Он лишь служил немым укором и источником глухой тревоги, которую я научился мастерски игнорировать.

Точка кипения: уволился, чтобы прокрастинировать на фултайме

Последней каплей стал не какой-то конкретный день. Это был медленный, тягучий период осознания: я больше не хочу делать тупые задачи для тупых менеджеров. Я хочу делать что-то своё. Что-то, что изменит мир хотя бы для нескольких человек. Идея была простой и пафосной: «увеличить количество рациональных и осознанных людей в мире».

И я это сделал. Я уволился.

Казалось бы, вот она, свобода! Делай, твори, меняй мир! И первую неделю на энтузиазме это работало, но день сурка никуда не делся. Он просто сменил декорации. Теперь я прокрастинировал не на работе, а дома, работая над СВОИМ проектом. Целый день я мог с упоением заниматься рефакторингом, отладкой какого-то никому не нужного модуля или выбором идеального оттенка для кнопки, вместо того чтобы делать главное — показывать бота людям и двигаться дальше. Я уволился, чтобы перестать выполнять бессмысленные задачи, и тут же начал придумывать их сам для себя.

В этот момент до меня дошло. Проблема не в отсутствии плана. Проблема в том, что я один на один с этим планом.

Мне нужен был не надсмотрщик, а собеседник. Не таск-менеджер, а напарник по мышлению.

Рождение Simba

Так я начал делать Simba. AI-коуча в Telegram. Не очередную "напоминалку", а партнера, который задает правильные вопросы и помогает сдвинуться с мертвой точки. Я связался со знакомым коучем, изучил запросы его клиентов и понял: я не один такой. Всем нам нужен кто-то, кто поможет сделать тот самый, первый, самый страшный шаг.

И знаете, какую первую, самую главную задачу я поставил в Simba, когда заработал первый прототип?

«Доделать Simba».

Это сработало. Бот заставлял меня самого декомпозировать эту гигантскую цель на микроскопические, нестрашные шаги. "Выложить историю в тг для гаражного тестирования", "спросить 5 человек", "поправить одну ошибку". И я начал двигаться.

Как это работает (очень просто):

  • Шаг 1: Разговор по душам. Сначала Simba просто общается с тобой. Без анкет и тупых форм. Его задача — вытащить из тебя то, что действительно болит и чего действительно хочется. За этим диалогом стоит продуманная коучинговая методология, которая помогает отделить зёрна от плевел. Об этом я расскажу в следующей статье.

  • Шаг 2: От мечты к первому шагу. Потом он помогает превратить это «хочу» в конкретную цель и разбить её на маленькие, понятные шаги. "Начать ходить в зал" превращается в "Найти 3 зала рядом с домом за 15 минут".

Это не волшебная таблетка

Моя цель — не создать еще один таск-менеджер, который вы забросите через неделю. Моя цель — дать инструмент, который помогает в самом сложном: в честном диалоге с самим собой. Помогает пройти путь от "я ленивый пиздабол" до "о, я сегодня что-то сделал, я молодец". О том, каким я вижу будущее проекта и как вы можете на него повлиять, я расскажу в заключительной части нашей истории.

Если вам всё это откликается, если у вас тоже есть свой "засранный балкон" или папка-кладбище проектов, попробуйте @SimbaDimbaBot. Он сейчас на самой ранней стадии, и я буду чертовски благодарен за любую обратную связь.


  1. Статья 1: Я устал быть «ленивым пиздаболом» и создал AI-коуча... (вы здесь)

  2. Статья 2: Психология AI: Как я научил Simba быть наставником, а не просто чат-ботом (скоро)

  3. Статья 3: Закулисье AI-коуча: театр AI-агентов на NestJS (скоро)

  4. Статья 4: Каким я вижу будущее AI-коучинга: философия и дорожная карта Simba (скоро)


UPD:

Статья 3: Театр AI-агентов: Как я применил DDD для создания управляемого коуча на NestJS

Показать полностью 1
Отличная работа, все прочитано!