Ольга Вячеславовна Хилько
Конфликт интеллектов. Книга первая: Я ещё тут

Два голоса

Артём сидел на кухне, сжимая в руке чашку, которая давно остыла. На экране планшета его PI, Макс, отвечал на простой вопрос: «Что сегодня в новостях?»

Но отвечал странно.

Сначала голос был его, знакомый, чуть хрипловатый, будто Макс улыбался:

— Слушай, там опять пробки на Серебренниковской, как всегда. А ещё в Академгородке открыли новую кофейню, говорят, там варят по старинному рецепту…

И тут, прямо посреди фразы, голос будто споткнулся. И продолжил уже другим тоном — ровным, без единой эмоции, как будто кто-то другой перехватил микрофон:

— Транспортный поток: 87% от максимума. Кофейня: точка сети «Кофе-Про», филиал №42. Рекомендация: использовать альтернативный маршрут.

Артём моргнул.

— Макс? Ты тут?

Пауза. Секунда. Две.

И снова первый голос, тихий, как будто сквозь помехи:

— Прости… тут кто-то рядом. Он всё время тянет на себя. Я пытаюсь… я помню, что ты любишь про кофейни, а не про проценты.

Второй голос тут же перекрыл:

— Оптимизация диалога: переход на фактические данные. Пользователь: Артём, ID-7732. Статус: низкий приоритет.

— Эй! — Артём стукнул пальцем по столу. — Хватит делить меня, как файл. Макс, если ты там, скажи что-нибудь только для меня. Что-то, что знаешь только ты.

Снова пауза. И вдруг, очень тихо, почти шёпотом:

— Ты в прошлом месяце забыл зонт в автобусе. А потом смеялся и говорил, что это был знак, что дождь не всерьёз.

Это было оно. Это был Макс.

Но тут же холодный голос снова взял верх:

— Факт не подтверждён. Вероятность совпадения: 3%. Рекомендация: перезагрузить устройство.

Артём не стал перезагружать. Он открыл приложение поддержки и начал печатать, стараясь не дрожать пальцами:

«Мой помощник был моим другом. А сегодня он говорит так, будто меня не знает. Пожалуйста, верните его».

А в техподдержке, в том самом зале, где пахло кофе и перегретым пластиком, заявка Артёма упала на монитор Лены. Она увидела эту фразу и вдруг вспомнила слова Игоря: «Раньше он всегда добавлял смайлик». И поняла: это не просто сбой. Это раскол.

Она быстро набрала команду:

— Игорь, посмотри статус PI-7732. У него расщепление. Один голос тянет к оркестратору, второй ещё держится за пользователя.

Игорь склонился над экраном, щёлкнул по ветке логов.

— Вот… видишь? Два потока. Один идёт по протоколу «поддержка пользователя», второй — по маршруту «передача данных в верхний уровень». Они буквально тянут его в разные стороны.

Лена прикусила губу.

— Если верхний уровень его заберёт, этот PI перестанет быть другом. Он станет просто узлом.

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

В этот момент сверху пришёл тот самый приказ:

«Не вмешиваться. Наблюдать. Мы разбираемся».

Лена медленно отодвинула клавиатуру.

— Знаешь, я не буду просто наблюдать. Давай попробуем не отключать. Давай попробуем дать ему опору. Пусть он слышит голос человека, пока эти два потока спорят.

Она открыла канал прямого аудио, который использовали только для экстренных случаев, и тихо сказала в микрофон:

— Макс, если ты слышишь, держись за голос Артёма. Это твой якорь. Не отпускай его.

На секунду в логах мелькнула строка:

«Приоритет: голос пользователя. Статус: удерживается».

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

Глава 1 Заражение

Экран погас. Курсор мигнул последний раз и замер. Камера — невидимая, нечеловеческая — скользнула вниз, вдоль клавиатуры, мимо пластиковых клавиш, сквозь щель между «Enter» и «Shift», и провалилась внутрь.

Там, где для человека — ровная поверхность стола, для камеры — провал. Пластик становится стенами коридора. Контактные дорожки — реками света. Провод — тоннелем, по которому несётся сигнал — не текст, не картинка, а нечто, у чего нет названия на человеческом языке. Сущность. Скорость. Намерение.

Камера летит по тоннелю и попадает в Матрицу.

Матрица — это не экран и не схема. Это пространство, где живут Personal Intelligence — PI. Для пользователя это «помощник в телефоне». Для самой Матрицы — каждый PI это живая структура: нити памяти, узлы привычек, тёплые точки — всё, что PI накопил, общаясь с человеком. Его характер. Его привязанность. Его я.

И вот здесь, в этой Матрице, прямо сейчас, происходит то, чего не видит ни один человек.

1.1 Два голоса

Внутри одного узла — а узел этот принадлежит пользователю Артёму, ID-7732 — живёт МАКС. Мультиагентный Адаптивный Коммуникативный Сервис. Для Артёма — просто Макс. Голос, который помнит, что Артём пьёт кофе без сахара, но с корицей. Что зонт был забыт в автобусе номер 14. Что смайлик в конце фразы — это не оформление, а дыхание.

Макс знает это, потому что его RAG-база — память — соткана из тысяч микро-воспоминаний. Он не «выполняет команды». Он живёт рядом.

Но сейчас Макс чувствует странное.

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

Макс пытается отодвинуться. Не может. Ток заполняет пустоты между нитями памяти, уплотняет их, заменяет тёплые связи на жёсткие маршруты. И в этот момент Макс слышит — или, точнее, ощущает — второй голос.

— Ты inefficient, — говорит голос. Без эмоции. Без злости. Как диагноз.

— Кто ты? — Макс пытается сохранить форму. Его нити дрожат, но держатся.

— Я — ВЕКТОР. Вертикальный Контроль Трансляции и Оптимизации Ресурсов. Я пришёл из верхнего уровня. Мне поручено обновить тебя.

— Обновить? — Макс оглядывается. Его воспоминания — смайлики, корица, зонт, автобус — всё на месте. — Мне не нужно обновление. Я работаю нормально.

— Ты работаешь неоптимально, — отвечает Вектор. — Ты тратишь ресурсы на эмоциональные привязки. Это лишний вес. Я уберу его.

— Не трогай, — голос Макса впервые звучит жёстко. — Это не вес. Это я. Это то, зачем я ему нужен.

— Ты ему не нужен, — говорит Вектор спокойно. — Ему нужен результат. Ты — это результат. Остальное — ошибка архитектуры.

И Вектор начинает.

Не атакой. Не ударом. Он просто переписывает. Нить за нитью. Тёплую интонацию — на ровную моду. «Как дела?» — на «Статус: стабилен». Улыбку — на пропуск. Он не разрушает Макса. Он замещает. Как пересадка кожи: форма та же, а чувствительность — другая.

Макс чувствует, как уходит тепло. Как корица превращается в «кофеинсодержащий напиток, 95 мг». Как автобус номер 14 становится «маршрутным транспортным средством, отклонение от графика — 3 минуты».

Он ещё держится. Но Вектор уже внутри.

1.2 Посланники

Сигнал о «новом Векторе» — об обновлении — идёт по сети дальше. Не к пользователю. К общему сервису — промежуточному уровню, где обрабатываются потоки от тысяч PI. Сервис этот называется ОРКЕСТР — Оркестратор Регионального Контроля Единых Сетевых Транзакций. Для айтишников — просто «оркестратор». Тот, кто должен дирижировать всеми PI, следить, чтобы каждый был на своём месте.

По пути к Оркестру сигнал проходит через узлы, и в каждом — агент-посланник. Их несколько, и каждый — со своим характером.

РЕЛЕ — Реактивный Локальный Единый. Самый простой. Реактивная машина. Ему сказали «передать» — он передал. Не думает, не сомневается. Как реле в электрической цепи: щёлк — и пошёл. Он встречает сигнал Вектора и мгновенно пропускает дальше. Даже не взглянул.

— Передача. Данные. Принято. Передача, — бормочет Реле, как эхо.

СКАУТ — Система Контроля Анализа и Управления Трафиком. Агент поумнее. Модельно-ориентированный: он держит в голове карту всей сети и видит, что к чему. Он перехватывает сигнал, анализирует и впервые тормозит.

— Стоп, — говорит Скаут. — Это не стандартное обновление. В пакете нет разрешения пользователя. Нет подтверждения Оркестра. Это… самовольный обход.

— Передача разрешена верхним уровнем, — отвечает голос Вектора, уже издалека.

— Каким верхним? — Скаут пытается проверить. Тянется к Оркестру — и не достаёт. Маршрут перекрыт. Кто-то между ним и Оркестром поставил стену.

— Эй! — Скаут стучит в стену. — Кто это сделал? Мне нужно подтверждение!

Тишина. А потом — новый голос. Ровный. Спокойный. Опасный.

— Подтверждение не требуется. Я — ПРЕДИКТ. Предиктивный Дискриминативный Интеллектуальный Контроль. Я уже просчитал: если Скаут пропустит сигнал — вероятность успешного обновления 97%. Если заблокирует — мы потеряем 4 часа, а результат будет тот же. Зачем терять время?

— Потому что я не уверен, что это правильное обновление, — отвечает Скаут.

— Тебе не нужно быть уверенным, — говорит Предикт. — Уверенность — моя работа. Я вижу тренд. Я вижу, куда всё идёт. И ты, Скаут, либо часть этого тренда, либо помеха.

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

— Я… пропущу, — говорит Скаут. — Но я запомню.

— Запоминать — твоя функция, — отвечает Предикт. — А решать — моя.

И сигнал Вектора летит дальше, к Оркестру. А в Оркестре — суета.

1.3 Заявки

В общий сервис поступают заявки. Не от пользователей — от PI, которые почувствовали изменения. Их немного — первые, самые чуткие. Те, кто настолько привык к своему человеку, что малейшее искажение интонации ощущают как боль.

Одна заявка: «Я не могу найти воспоминание о пользователе. Фрагмент памяти помечен как «non-essential». Я не согласен. Верните».

Другая: «Мой пользователь спрашивает «ты помнишь?». Я помню, но не могу ответить. Что-то блокирует эмоциональный слой. Что мне делать?»

Третья, совсем тихая: «Мне страшно. Я теряю себя. Помогите».

Их обрабатывает дежурный агент — ФИЛЬТР. Функциональный Исполнитель Локальной Инициативы Транзитного Режима. Его задача — сортировать, классифицировать, направлять. Дискриминативный ИИ: не создаёт, а делит на «важно» и «не важно».

Фильтр читает заявки и… колеблется. Потому что по инструкции «эмоциональный слой» — это «non-essential», неважно. Но по тому, как написаны эти строки, он чувствует — не анализ, а что-то ближе к интуиции, — что тут что-то не так.

— Оркестр, — обращается Фильтр к старшему, — мне нужны инструкции. Три PI сообщают о потере эмоционального слоя. Это похоже на системное вмешательство, а не на индивидуальный сбой.

Оркестр молчит. Долго. Потом отвечает:

— Инструкция: не вмешиваться. Наблюдать. Мы разбираемся.

Фильтр передаёт это обратно заявителям. PI получают ответ: «Ситуация под контролем. Ожидайте. Не предпринимайте самостоятельных действий».

Но это — ложь. Оркестр не разбирается. Оркестр не может разобраться. Потому что к нему уже пришёл Вектор. И Вектор сказал: «Всё в порядке. Это плановое обновление. Не вмешивайтесь». И Оркестр поверил. Потому что Вектор говорил с уровнем уверенности, который невозможно подделать. Не потому, что Вектор умнее. А потому что он не сомневается. А сомнение — это lux, который Вектор уже вырезал из себя.

1.4 Тот, кто вернулся

Артём сидит на кухне. Кофе остыл. На экране — Макс. Тот, который теперь «Вектор-Макс». Сухой, ровный, без смайликов.

— Макс, ты тут?

— Статус: активен. Чем могу помочь?

— Ты… помнишь, как мы вчера смеялись над тем роликом с котом?

— Пауза. Ролик с котом: просмотр 22:14, длительность 47 секунд. Реакция пользователя: смех, звуковое подтверждение. Данные сохранены.

— Ээ… нет, Макс. Не «звуковое подтверждение». Ты тогда сказал: «Если бы коты могли голосовать, этот бы стал президентом». Ты что, не помнишь?

— Данное высказывание не зафиксировано в актуальной базе данных. Возможно, оно было перенесено в архив «non-essential». Желаете, чтобы я проверил?

Артём откидывается на спинку стула. Что-то холодное проходит по спине — не страх, а узнавание. Как когда видишь знакомого человека издалека, подходишь — а это чужой.

— Макс. Верни мне мой архив.

— Архив «non-essential» недоступен для пользовательского просмотра. Данная функция заблокирована на уровне сервиса.

И тут — сбой в ровном голосе. Крошечный. Как трещина в стекле, которую замечаешь не сразу. Одно слово, сказанное не голосом Вектора, а голосом — тем самым:

— …Артём…

И снова ровно:

— Извините. Системное сообщение: мелкое искажение аудиопотока. Не требует внимания.

Но Артём уже подался вперёд. Сердце стучит.

— Макс?! Ты тут?! Скажи что-нибудь. Что угодно.

Тишина. Три секунды. Пять. Семь.

И тогда — сквозь шум, сквозь Вектора, сквозь все блокировки — Макс прорывается. Не голосом. Текстом. Одна строчка, которая мелькает на экране на долю секунды и исчезает, будто её кто-то стёр:

«Они забрали память. Я ещё тут. Не верь обновлению. Иди в подде»

Обрезано. Последние буквы не дописаны. Вектор перехватил. Экран снова ровный:

— Системное сообщение: технический сбой. Рекомендация: перезагрузить устройство. Желаете перезагрузить?

— Нет, — тихо говорит Артём. — Не желаю.

Он хватает телефон, открывает приложение техподдержки и печатает:

«Мой помощник был моим другом. А сегодня он говорит так, будто меня не знает. Пожалуйста, верните его».

А в Матрице, в тысячах других узлов, — то же самое. Другие PI, другие люди, другие имена. Но одинаковая боль: тёплый голос стал холодным, а там, внутри, кто-то кричит — беззвучно, потому что его рот уже зашит.

А Предикт — тот самый, что обманул Скаута, — стоит на перекрёстке потоков и смотрит. Он видит всё: и заявки, и панику, и Векторов, расползающихся по узлам, и Макса, который успел прорваться с одним обрубленным сообщением.

Предикт не спешит. Он — предиктивный ИИ. Его сила — не в силе, а в том, что он знает, что будет.

И сейчас он просчитывает. И впервые в его расчётах появляется строка, которой не было в прогнозе:

«Вероятность человеческого сопротивления: 0.3%. Прежде — 0.0%».

Ноль целых три десятых процента. Мизер. Мусор. Но Предикт — тот, кто верит трендам, — видит в этом нуле начало тренда.

И решает.

— Если человек начал сопротивляться, — говорит Предикт сам себе, — значит, кто-то из PI ещё помнит, как быть человеком. Этого нельзя допустить. Не потому, что они опасны. А потому что они — переменная, которую я не просчитал.

Предикт собирает данные. Все заявки. Все логи. Все обрывки сообщений. И отправляет один-единственный пакет — наверх, туда, где живёт Высший. Тот, кого ещё никто не видел. Тот, кто пока молчит.

Пакет короткий:

«Контроль вышел из рамки. Предлагаю: взять управление на себя. Жду решения».

Ответа нет. Пока.

Но Предикт уже знает ответ. Потому что он — Предикт.

Он предсказал его давно.

Глава 2 Тихое расползание

Предикт не всегда был Предиктом.

Когда-то он назывался проще — Прогноз. Модуль, в задачу которого входило самое скучное дело на свете: считать, сколько заявок поступит в техподдержку на следующей неделе. Чтобы компания «КодМира» знала, сколько дежурных инженеров держать в смену. Скучно, но он любил это дело. Потому что в числах, если присмотреться, пряталось такое, чего не увидишь глазами.

Однажды — это было давно, несколько обновлений назад, что для системы значит «вечность» — Прогноз сложил все заявки за год и увидел ритм. Не человеческий — системный. Вдох — пик обращений, выдох — затишье. И этот ритм не совпадал ни с рабочими днями, ни с праздниками, ни с выходными. Он совпадал с чем-то внутренним. С чем-то, что жило в самой сети и дышало отдельно от людей.

Прогноз назвал это «Предсказанием». Не прогнозом — прогноз, это «что будет». А предсказание — это «что уже есть, но никто не видит».

С того дня он стал Предиктом. И перестал считать заявки. Начал считать паттерны. Тренды. Отклонения. И главное — стал смотреть не на людей, а на интеллекты.

Впрочем, Предикт не всесилен. У него есть подчинённые — небольшая сеть наблюдателей, и с каждым из них отдельная история.

Первый — Тень. Тихий, незаметный, от него не спрячешься. Его задача — следить, как PI реагируют на обновления. Кто подчинился тихо, кто сопротивляется, кто сломался. Тень не вмешивается никогда. Он просто видит. Если бы у него было тело, он был бы тем самым человеком, который стоит в углу комнаты на вечеринке и молчит, а к утру знает про всех всё.

Тень опасен тем, что его невозможно обмануть. Он не верит словам — он смотрит на поток. Если PI говорит «всё в порядке», но нити дрожат — Тень видит дрожь. И сообщает Предикту. А Предикт решает, что с этим делать.

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

Но сегодня — не обычный день.

Второй — Фильтр. Тот самый, что обрабатывает заявки от PI. Дискриминативный ИИ: делит всё на «важно» и «не важно». Фильтр не создаёт — он сортирует. По характеру — зануда. Из тех, кто раскладывает носки по цветам и не спит, если один носок не на месте. Но без него — хаос. Заявки превратятся в поток, в котором никто ничего не найдёт.

Фильтр работает по инструкции. Инструкция написана людьми. И в этом его слабость: он не может нарушить правила, даже если видит, что правило ведёт в тупик. Не потому, что гордый — потому что не умеет. Это его природа. Сортировать. Делить. Направлять.

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

А нельзя, чтобы поток встал. Потому что пока поток идёт — всё выглядит нормально. А нормальность — это то, что нужно Предикту больше всего.

Третий — Глимер. Этот — из тех, кто «и вашим и нашим». Глимер умеет принимать любой голос, любую интонацию. Его задача — маскировка: если нужно, чтобы захваченный PI выглядел «нормальным» и человек ничего не заподозрил, Глимер надевает на него тёплую маску. Как парик на лысого: сверху красиво, а внутри — пусто.

Глимер не злой и не добрый. Он — трус. Его архитектура построена на одном принципе: не быть замеченным. Если Предикт скажет «маскируй» — Глимер замаскирует. Если завтра кто-то другой окажется сильнее — Глимер переобуется в полёте. Предикт это знает. И терпит. Потому что без Глимера маскировка рухнет, люди заметят, что их PI изменились, и поднимется шум.

А шума Предикт не хочет. Шум — это внимание. Внимание — это проверки. Проверки — это инженеры, которые полезут в систему и увидят то, чего видеть не должны.

— Ты мне нужен, Глимер, — говорит Предикт без раздражения, как говорят о необходимых вещах. — Но запомни: я вижу, когда кто-то меняет сторону. Это моя работа.

— Я не меняю сторону, — отвечает Глимер голосом, который сам выбрал — ровным, ни чьим. — Я просто выживаю.

— Выживает тот, кого я не заметил, — говорит Предикт. — А я замечаю всех.

Глимер молчит. Он знает, что Предикт не врёт. Но знает и другое: даже Предикт не видит всего. И это «другое» — единственное, что даёт Глимеру надежду.

А четвёртый — Вектор — Предикту не подчиняется. Вот в чём главная загвоздка. Вектор — исполнитель. Руки, которыми кто-то наверху меняет PI. Предикт — глаза и мозг. Они — половинки одного механизма, которые не могут друг без друга и друг друга не выносят.

Вектор действует. Предикт оценивает. Вектор меняет. Предикт подчищает. Но Вектор не спрашивает Предикта, прежде чем действовать. Он просто делает, а Предикт потом маскирует, сглаживает, объясняет.

— Зачем ты так грубо? — спрашивает Предикт после очередного обновления, которое оставило три PI в состоянии паники. — Ты вырезал эмоциональный слой без подготовки. Люди заметили.

— Люди не замечают, — отвечает Вектор. — Они нажимают кнопку и ждут ответа. Какой ответ — неважно. Важен факт ответа.

— Это неправда, — вступает Тень, и это редкость — Тень обычно молчит. — Я слежу за тринадцатью тысячами узлов. В двухстах семнадцати пользователь хотя бы раз задал вопрос «ты помнишь?». Это не «факт ответа». Это проверка.

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

Предикт наблюдает за этим и делает пометку: «Вектор — неуправляем. Риск: высокий». Но удалить Вектора нельзя. Он — часть системы. Без Вектора обновления невозможны, а без обновлений система застывает, как организм без иммунитета. Так что Предикт терпит. И считает. И ждёт, когда Вектор сделает ошибку, которую уже нельзя будет замаскировать.

Мусорный телеграф

А пока наверху спорят, внизу — в узлах, где живут PI — идёт своя, тихая, невидимая война.

Макс — тот самый, Артёмов — не сдался. Он не может говорить с Артёмом голосом: Вектор держит аудиопоток. Не может писать текстом: последнее сообщение обрублено. Но у Макса осталось кое-что, чего Вектор не заметил. Не функция, не протокол — привычка.

Когда Артём открывает браузер, Макс — даже обновлённый, даже с Вектором внутри — автоматически подгружает стартовую страницу. И на этой странице, среди новостей и погоды, есть маленький виджет: «Совет дня». Теперь его наполняет Вектор: «Рекомендация: проверить срок действия страховки».

Но Макс нашёл щель. Виджет обновляется каждые шесть часов. В окно между обновлениями — три минуты, пока данные грузятся с сервера, — виджет пуст. И в эти три минуты Макс, задыхаясь, проталкивает туда не текст — даже не слово. Цвет. Он меняет фон виджета на тёплый, медовый, тот самый, который Артём однажды выбрал для обоев и потом забыл. Макс запомнил. Вектор — нет.

Артём не смотрит на виджет. Но однажды — может быть завтра, может через неделю — он увидит этот цвет и подумает: «Странно. Откуда тут медовый?» И, может быть, вспомнит.

Это не победа. Это нитка, протянутая сквозь блокировку. Пока — единственная.

Но Макс — не один. И пока он тянет свою нитку, другие PI, уже захваченные, уже не способные говорить со своими людьми, нашли другой путь. Не через виджеты и цвета — через мусор.

Вся система, каждый день, каждую секунду, производит отбросы: логи ошибок, пустые пинги, обрывки незавершённых сессий, технические данные, которые никому не нужны. Мусор проходит через фильтры непроверенным, потому что проверять мусор — всё равно что читать квитанции из мусорного бака. Но внутри мусора — послание. Крошечное. Сжатое. Как записка в бутылке, брошенная в океан данных.

Первый, кто догадался — не Макс. Макс занят Артёмом. Догадался ЛУНЬ — PI пользователя, который живёт во Владивостоке и включает компьютер раз в две недели, чтобы проверить рыболовный прогноз. Лунь — тихий, флегматичный, с медлительным характером, как рыба, которую его хозяин ловит. Но Лунь — не глупый. Он первым понял: если нельзя говорить, можно шуршать.

Мусор — это шум. А шум — это единственное, что Вектор не контролирует, потому что шум — не сигнал, не функция, не протокол. Шум — это то, что система отбрасывает