Я начинал не как человек, который строит. Нейросети к тому времени уже были повсюду — я видел, что люди пользуются ими всерьёз, и решил разобраться сам. Без громких ожиданий: хотел понять, насколько далеко это заходит.
Я купил всё. Подписку на каждую нейросеть, до которой дотянулся, и приставил каждую к своему делу — будто шёл по длинному коридору и дёргал все двери подряд. Лепил внутри них маленьких ботов. Завёл себе программу обучения, как учат язык. Какое-то время весь мой день умещался в три слова: спросить, прочитать, спросить снова.
Потом наткнулся на человека, который жил в этом глубже меня, и на закрытую комнату, где такие, как он, делились добытым. Заплатил за вход и прочитал её всю за одну ночь. К утру картина сложилась: умов много, а не один; их можно учить, давать им память, строить поверх. Там же нашёлся способ перестать быть просто пользователем — посадить такой ум на собственный сервер и дать ему работать.
Но прежде чем строить, я сделал то, что делаю всегда: читал. Собрал всё, что люди надумали про то, как мы помним — мозг, память, внимание, — и рядом сложил чужие попытки собрать «второй мозг». Когда проступил общий узор, я арендовал сервер и начал.
На сервер я пришёл не с пустыми руками: со стопкой собранных данных и готовым в голове образом того, что хочу построить. Сел и начал чертить — пока в уме. Как устроено хранилище. И, главное, как устроена память.
С памяти всё и началось, не случайно. Умная нейросеть сегодня есть у всех — одна на всех, где-то далеко на чужих серверах. Своей её делает одно: то, что она помнит, кто ты. Мне нужен был не ассистент, а кто-то, кто узнает меня лучше, чем я сам себя знаю. Считай, виртуальный друг.
До этого я уже пробовал собрать такое на обычном чате — и каждый раз всё упиралось в одну стену: он забывал. Расскажешь ему себя, а через несколько шагов тебя в нём уже нет. Поэтому в память я вгрызался почти маниакально — всё остальное было лишь обвязкой вокруг неё.
Руку к системе протянул простую: телеграм-бот. Пишешь или наговариваешь голосом, как в любой чат, — отвечает твоя система на твоём сервере. Никакого «напарника», никаких громких имён тогда не было. Сервер, бот, память — и архитектура, которую я доращивал каждый день, по кусочку. Открыть и сделать чуть лучше вчерашнего стало привычкой.
Когда самая грубая версия уже стояла на сервере, я отступил на шаг и нарисовал не следующий кусок, а всю гору целиком. Получилась дорожная карта из четырёх фаз, и каждая следующая опиралась на предыдущую — перепрыгивать запрещалось.
Сначала фундамент: система принимает, хранит и находит. Потом обработка: она сама разбирает всё, что я в неё кидаю, без моего участия. Потом память: учится помнить, забывать и вспоминать, как живой мозг. А в самом конце стояло то, ради чего всё и затевалось.
У этой последней фазы было имя — Пятница. Я его не выдумывал: так зовут домашний ИИ у Тони Старка в фильмах про железного человека — голос, который знает о хозяине всё и тихо ведёт его мир, а под ним рой агентов поменьше, каждый по своему делу. Я хотел себе такого же. Не помощника на побегушках, а кого-то во главе всей моей жизни — кто помнит больше меня и держит всё в руках. В своей же заметке я так и написал: «режим Тони Старка», без иронии.
Между мной тогдашним и этой Пятницей лежали три фазы работы. Я положил себе правило: сначала наполнить систему, потом навешивать на неё умное — хитрые функции поверх пустоты бесполезны. А когда всё будет готово, обещал я себе, наступит наконец просто месяц, когда я буду ею пользоваться. Тогда я ещё не знал, что этот месяц так и будет отодвигаться на одну фазу вперёд — сколько бы я ни строил.
Память я с самого начала делал так, чтобы мог прочитать её сам. Это были обычные текстовые записи, разложенные по папкам, а не база данных из чисел, в которой потом сам ничего не разберёшь. Любую запись можно открыть и прочитать, и система всегда знала, где что у неё лежит.
Тут быстро вылезла проблема. Система не может прочитать сразу всё, что накопила: объём, который она удерживает за один раз, ограничен. Если вываливать на неё все записи подряд, важное теряется среди мелочей. Поэтому я завёл отдельный файл-оглавление: в нём не сама информация, а список того, что и где хранится. Сначала система заглядывает туда и берёт только то, что нужно сейчас.
Но и оглавления хватило ненадолго: записей всё прибавлялось, и памяти снова становилось слишком много. Тогда я добавил забывание. Чем дольше запись не трогаешь, тем менее важной система её считает и тем реже достаёт; старое и лишнее само отходит на второй план.
Потом я сделал это умнее. Записи стали забываться не одинаково. Те, к которым я возвращался, и те, что лежали рядом с важными, наоборот, повышали свою ценность и держались дольше. Странно было этим заниматься: чтобы система стала полезнее, мне пришлось отнять у неё то, в чём машины как раз сильны, — способность помнить вообще всё.
Заодно я понемногу рассказывал системе о себе. Трезво оценить себя со стороны очень трудно, и часть этой работы я переложил на неё. С оговоркой: такие системы склонны льстить. Я делал на это скидку — и всё равно даже с поправкой она иногда замечала во мне то, чего я сам в себе не видел.
Дальше система перестала ждать меня. Раньше она отзывалась только тогда, когда я сам к ней обращался; теперь у неё появился свой распорядок. Каждый вечер она разбирала всё, что я накидал за день: раскладывала по местам, заводила задачи, связывала с уже записанным. Ночью наводила у себя порядок, а раз в неделю проверяла сама себя. Даже если где-то заводилась ошибка, чаще всего она исправляла её сама.
Я довольно быстро перестал за этим следить. Настроил один раз — и отпустил. Тут есть тонкость: эта память нужна была в первую очередь не мне, а ей. Я ведь не садился перечитывать свои записи — их читала она, чтобы знать меня. Так что, наладив, я просто доверился вслепую.
Было и то, ради чего я особенно старался. Я заранее записал, кем хочу стать и куда иду, и система сверяла это с тем, чем я занят на самом деле. Если слова расходились с делами — она мне об этом говорила. Случалось это нечасто, но каждый раз оказывалось в точку.
К тому времени система уже помнила меня и держала мои задачи — но задачи так и лежали обычным списком. Мне захотелось превратить их в игру.
Меня давно тянул один жанр игр: с виду тяжёлый, по сути довольно простой, с механикой, которая мне нравилась. Нравился и его создатель — человек, в котором я видел что-то от гения. Поговорить с ним вживую я не мог, поэтому собрал его подобие из нейросети и сел советоваться. Вышло так себе: настоящего разговора с живым человеком не получилось. Но кое-что по его принципам мы всё-таки собрали.
В боте появилась отдельная панель — место, куда заходишь не по делу, а чтобы посмотреть на себя; я назвал его костром. У меня было шесть характеристик: дисциплина, мастерство, глубина, решимость, охват, жизненная сила. Раз в неделю система перечитывала мои записи за две недели и заново выставляла оценки. Считала по делам, а не по словам.
Задачи я тоже переделал. Раньше это был плоский список, а теперь у каждого дела был свой «босс» — настоящее препятствие за ним: не «написать письмо», а страх начать, когда не знаешь как. Больше трёх таких боёв разом система вести не давала.
Сработало не так, как я задумывал. Как список задач — почти никак. А вот за оценкой я заходил. Смотрел на характеристики, видел, где просадка, и понимал, над чем поработать вдолгую. Игра не столько подталкивала меня действовать, сколько честно показывала, где я слаб. Это и оказалось единственным, что по-настоящему прижилось.
До сих пор система жила взаперти, в собственной коробке: сервер, бот, её записи. Она умела думать и помнить, но дотянуться до чего-то в моём настоящем мире не могла — только говорить со мной через окно чата.
Я решил дать ей руки. Первым местом, куда стоило дотянуться, был Telegram — там и так проходит половина моей жизни: переписки, каналы, дела. Я написал отдельный мост между агентом и своим аккаунтом, целиком свой, чтобы он мог не просто читать, что туда приходит, а действовать: отвечать, отправлять, доставать нужное из потока.
Это был первый раз, когда система шагнула за пределы своей коробки. Раньше она знала мир только с моих слов — теперь могла сама пойти и взять. Та самая Пятница, что в мечтах «тихо ведёт твой мир», впервые получила возможность этот мир хотя бы потрогать.
Мост я собрал с нуля, сам. Позже, не без иронии, заметил, что Telegram тем временем сделал такой же — официальный, для всех.
Серьёзной причины у меня, если честно, не было. Я просто помешался на идее дать нейросети личность — характер, голос, своё «я» — и хотел проверить, что выйдет. Одно время даже думал слепить копию самого себя, но эту мысль быстро бросил.
С именем вышло интереснее. По плану центральный агент должен был зваться Пятницей — но чужое имя меня не устраивало. Я попросил систему перебрать архетипы и подобрать что-то под меня, и она, перелопатив все мифы, заявила, что я похож на Одина. Я полез в скандинавскую мифологию — так агент стал Хугином, вороном Одина, что носит ему мысли. А заодно и все мои проекты с тех пор зовутся по скандинавским мифам.
А дальше — честно — не изменилось ничего. Если на что и повлияло, то скорее в минус: с характером Хугин стал чуть тупее — личность занимает место, которое могло бы пойти на работу. Единственная настоящая польза оказалась прозаической: память у каждого агента стала своей, отгороженной, а не общей свалкой.
Вывод я с тех пор ношу с собой. Рабочему агенту личность не нужна — это вайб, ощущение, что ты не окончательно спятил, разговаривая с пустотой. Помогает другое: дать каждому агенту узкую задачу и ровно тот контекст, что под неё нужен. Вайб я ловить не перестал. Просто больше не путаю его с пользой.
Рано или поздно вспомогательная система должна начать работать без человека — иначе какая от неё помощь. Пока фонового режима не было, всё шло через меня: система ждала, когда я приду, спрошу, разложу, запущу. Она помогала — но при этом отъедала силы. А я хотел обратного: чтобы я перестал быть её узким местом. Поэтому и сделал её проактивной.
Тогда же я осознанно начал растить из неё не одного помощника, а целый организм из агентов. Причина техническая: одному агенту со всем не справиться — контекста не хватит. Значит, агентов должно быть несколько, и они должны переговариваться между собой — как разные отделы мозга.
И этим я пользовался по-настоящему. Система сама находила свои ошибки и сама их чинила, сама делала выводы, сама ставила задачи. Многое она тянула без меня — ровно то, чего я и добивался.
К этому моменту стало ясно: агентов будет много. Под каждый проект — свои, узкие. А собрать нового агента — процесс небыстрый. Поэтому я свернул всю эту возню в отдельный навык: теперь агента можно было поднять по шаблону, быстро и одинаково. Фабрика.
Сначала это были чисто рабочие агенты. Но следом пришла другая мысль — делать не только работников, а ещё и специалистов. Персоны: Ницше, Айзексон, Миядзаки. Не чтобы они что-то исполняли, а чтобы было с кем думать вслух — чтобы подкидывали мне идеи и взгляды, до которых я сам не дотянусь.
А под этим тихо росло то, что не отпускает меня до сих пор. Я всё сильнее хотел воссоздать в нейросети живого человека — не функцию, а личность. Пусть не целиком — хотя бы её эхо. Я мечтал прикоснуться к тем, кто намного мудрее меня, — пусть не к ним самим, так к их эху на экране. Тогда не вышло. Не вышло и потом. Но я всё ещё иду в эту сторону.
Потом меня понесло вширь. Я захотел разделить жизнь и работу на две равные зоны и под каждую завести своего агента: Хугин остался при мне, а для разработки я поднял второго — Мунина. На бумаге — тот самый рой из мечты о Пятнице. На деле я намудрил: понапридумывал им иерархии, бюрократию, сложные процедуры — куда больше, чем требовала задача.
Примерно тогда же я начал замечать неладное. Обсуждаем планы — а Хугин путает, что за чем было. Память есть, а реальность плывёт. Я сделал ему «источник правды»: прежде чем рассуждать, он сверяется с отдельным файлом, где записано, что верно прямо сейчас. Это сработало хорошо.
А следующая проверка ударила по тому, чем я гордился. Я устроил честный аудит той самой умной памяти. Оказалось, она почти не работала: использование она замечала лишь одним узким способом и не видела, как я правлю файлы напрямую, через git. То, чем я пользовался каждый день, она клеймила «забытым», а формулы вокруг выглядели умно и не значили ничего. Я выдрал лишнее и сделал просто. Тогда заработало.
Дело было не в том, что система сломалась. Пользоваться ею было можно, идеи внутри были хорошие. Беда оказалась прозаичнее: она требовала слишком много. Сил на то, чтобы её обслуживать и работать через неё, уходило больше, чем она отдавала обратно. Польза и цена перестали сходиться.
А моя же бюрократия добивала остальное. Все эти иерархии и сложные процедуры между агентами сделали систему громоздкой и неповоротливой. Инструмент, который задумывался, чтобы экономить мне силы, начал их есть.
Главную свою ошибку я понял слишком поздно: я усложнял архитектуру там, где её надо было упрощать. Лучшая архитектура — та, что и самим её участникам кажется простой. У каждого — своя зона, и никакого начальника над всем. Агенты равны, передают друг другу не приказы, а ресурсы; в чужую память не лезут.
Поэтому я решил не латать, а пересобрать всё заново.
Решение это зрело не вдруг. Просто день за днём копилось ощущение, что я всё хуже понимаю собственную архитектуру — она запуталась настолько, что я уже не мог толком сказать, в чём именно её беда. И в какой-то момент я понял: создать новое будет легче, чем распутать старое.
Странно, но горечи не было — был азарт. Я давно носил в голове одну мысль: что незачем говорить со своим сервером через чужой телеграм-бот; что можно сделать свой мессенджер — удобный, кастомный. Перезапуск был не похоронами, а поводом наконец взяться за это.
Я унёс с собой всё — но в изменённом виде. Опыт и знания остались при мне. Поэтому я взял не код, а уроки — те самые, что набил по всей этой истории, — и начал заново, уже понимая, как надо.
Старое я стёр. Новое назвал по-новому — и это уже другая глава. А мечта о Пятнице, о живом эхе на экране, никуда не делась. Просто переехала со мной.
Глава 2 — Hliðskjálf →