
Пролог: Архитектор тишины
В 2029 году программисты вымерли. По крайней мере, те, кто писал код строчка за строчкой. Их место заняли Архитекторы.
Они не сильно хорошо разбирались в принципах SOLID, DRY, KISS, но что-то в них явно понимали. Они проектировали полноценные приложения с функциями встроенных покупок и инновационным функционалом стартапа-единорога в надежде, что он «выстрелит», либо просто получая за это положенные деньги от заказчика. Стартапы-единороги и высококачественные проекты в 2029 году рождались не в гаражах, а в папках. agent.
Артем не знал Python на уровне бога. Он не мог с закрытыми глазами написать нейросеть. Но он умел делать то, что было важнее: он умел писать. md-файлы. Он знал, как превратить хаос человеческих желаний в строгие, машиночитаемые инструкции. Он был дирижером невидимого оркестра.
Его рабочее место напоминало кабину пилота. Три монитора, локальный кластер Ollama, гудящий как улей, и папка. agent, которая была его настоящим мозгом. Пока другие пытались «общаться» с ИИ, как с волшебной рыбкой, Артем строил для него тюрьмы из правил и сады из контекста.
Но даже лучший Архитектор не был готов к заказу, который поступил во вторник, в 14:00. Пришла интересная клиентка.
Акт I: Хаос в формате PDF
Клиентку звали Елена Сергеевна. Ей было за семьдесят, и она пахла лавандой и старой бумагой — запах, который локальные очистители воздуха в 2029 году так и не научились имитировать.
— Мой сын был композитором, — сказала она, ставя на стол Артема тяжелый внешний SSD. — Он погиб год назад. У него осталась симфония. Недописанная. Всего три наброска, десятки голосовых заметок, исчерканные партитуры и переписки с коллегами.
Она посмотрела на Артема взглядом, в котором не было надежды, только упрямая, ледяная решимость.
— Я слышала, вы настраиваете этих… агентов. Сделайте так, чтобы они дописали её. Не как машина. Как он.
Артем взял диск. Тяжелый, холодный, с потертыми углами. Он напомнил ему старые чертежные тубусы отца. Пять лет назад его отец, инженер-акустик, умер от инфаркта прямо за рабочим столом. На столе тогда лежали недоделанные чертежи нового концертного зала. «Акустика — это архитектура тишины», — любил говорить отец. Артем тогда пытался закончить чертежи сам, но не смог. Он не был инженером. Он был программистом. Тогда он впервые понял: есть вещи, которые нельзя доделать за кого-то. Можно только помочь найти то, что уже было задумано.
— Я возьмусь, — сказал Артем. — Но я точно буду использовать рой. Одного агента будет недостаточно.
Акт II: Сборка Роя
В ту ночь Артем не спал. Он создавал не программу, а совет директоров из цифровых призраков. Да, для самой генерации он бы использовал не большие языковые модели, но здесь надо было именно рассуждать… Как покойный композитор. Надо использовать данные о нем, чтобы внести в уже существующие музыкальные наброски иной смысл, но не противоречащий задумке, а дополняющий ее.
Он знал: большие языковые модели не умеют сочинять музыку напрямую. Они не слышат звук. Но они умеют рассуждать — анализировать структуру, находить паттерны в мышлении, интерпретировать намерения через текст. И именно это ему было нужно.
Задача была не в том, чтобы сгенерировать новые ноты. Задача была в том, чтобы понять, как думал композитор. Как он развивал темы? Где оставлял паузы? Что он говорил в переписке о своих сомнениях? Какие правила он нарушал осознанно, а какие — случайно?
В папке. agent появились четыре новых файла.
1. Агент «Архивариус» (RAG-модуль)
Главная цель: Найти скрытые паттерны в мышлении автора.
Инструмент: Локальная векторная база данных, куда были загружены все 4000 файлов сына — не только ноты, но и переписка, дневники, голосовые заметки, черновики с пометками на полях.
Правило: Искать не ноты, а паузы. То, что автор не дописывал, важнее того, что он дописал.
Формат работы: Архивариус не генерирует музыку. Он извлекает контекст — цитаты, паттерны, противоречия — и передает их другим агентам как текстовые описания.
2. Агент «Резонатор» (Эмоциональный анализ)
Главная цель: Оценить эмоциональное напряжение существующих набросков.
Инструмент: MIDI-файлы конвертируются в текстовое описание через MusicXML-парсер. Резонатор анализирует не звук, а структуру — какие интервалы используются, где нарастание, где разрешение.
Правило: Игнорировать теорию музыки. Оценивать только «напряжение» и «разрешение». Если фрагмент не вызывает мурашек (по шкале от 1 до 10, где 8+ — цель), он бракуется.
Формат работы: Резонатор не создает музыку. Он говорит: «Этот такт слишком плоский. Автор обычно здесь делал диссонанс. Предложите вариант, который усилит напряжение».
3. Агент «Теоретик» (Строгая логика)
Главная цель: Уничтожить шаблонность.
Правило: Твоя задача — найти в предложенном фрагменте следы «средней температуры по больнице». Если ты чувствуешь, что это могла бы написать любая модель 2029 года, ты обязан вернуть фрагмент на переработку с пометкой «Фальшь».
Формат работы: Критик не генерирует музыку. Он сравнивает предложенный вариант с тем, что мог бы написать сам композитор, исходя из его дневников, переписки, привычек. Если вариант слишком «правильный» — он его отвергает.
4. Агент «Критик» (Генератор сомнений)
Главная цель: Уничтожить шаблонность.
Правило: Твоя задача — найти в предложенном фрагменте следы «средней температуры по больнице». Если ты чувствуешь, что это могла бы написать любая модель 2029 года, ты обязан вернуть фрагмент на переработку с пометкой «Фальшь».
Артем настроил граф состояний в LangGraph. Цикл был простым:
— Архивариус извлекает контекст — что автор говорил о своих сомнениях, какие паттерны использовал, где оставлял паузы.
— Резонатор анализирует существующие наброски и говорит: «Здесь не хватает напряжения. Автор обычно делал вот так».
— Теоретик предлагает варианты развития темы в виде LilyPond-кода, проверяя их на соответствие теории музыки.
— Критик сравнивает предложенный вариант с тем, что мог бы написать сам композитор. Если вариант слишком «гладкий» — он его отвергает.
— Цикл повторяется, пока Критик не дает молчаливое согласие.
Затем финальная MIDI-структура передавалась в локальную модель MusicGen для рендеринга в аудио. Но MusicGen не сочинял — он лишь интерпретировал то, что решили агенты.
Артем запустил систему.
Начался «Ад инструментов» — агенты застряли в петле, бесконечно вызывая друг друга, боясь сделать финальный вывод.
RAG и Теоретик работают локально в Ollama, но для генерации и Критика он использует облачный API, потому что локальные модели не тянут нужный контекст.
На второй день дверь открылась без стука.
Елена Сергеевна стояла в дверях, глядя на три монитора, на гудящие кулеры, на мигающие логи. Её лицо было непроницаемым.
— Это и есть то, чем вы дописываете его симфонию? — спросила она, кивнув на экран, где мелькали строки кода.
Артем не знал, что сказать. Он открыл рот, чтобы объяснить про агентов, про графы состояний, про мультиперспективный анализ.
— Вы слышите это? — вдруг спросила она.
Артем прислушался. Кулеры гудели. Мониторы пищали. Где-то далеко капал кран.
— Нет, — сказал он. — Я слышу только шум.
— Вот именно, — сказала Елена Сергеевна. — Вы слышите шум. А мой сын слышал музыку в этом шуме. Вы уверены, что ваши машины тоже её слышат?
Она подошла к столу, взяла одну из распечаток — черновик с пометками Артема — и прочитала вслух:
«Агент „Резонатор“: Оценить эмоциональное напряжение фрагмента по шкале от 1 до 10.»
Она посмотрела на Артема.
— Вы правда думаете, что можно измерить боль числом? Что можно загнать его душу в JSON-файл?
Артем молчал. Он не знал, что ответить. Потому что она была права.
— Мой сын не был формулой, — сказала она тихо. — Он был хаосом. Он мог написать гениальный такт, а потом стереть его, потому что «не то настроение». Он мог часами играть один аккорд, пока не находил «тот самый звук». Вы можете это повторить?
— Нет, — честно сказал Артем.
— Тогда зачем вы здесь?
Артем посмотрел на мониторы. На бесконечный лог отклонений. На 847 итераций, которые дали ноль результата.
— Потому что я не пытаюсь повторить его, — сказал он медленно. — Я пытаюсь найти то, что он не успел сказать. Его паузы. Его тишину. То, что он оставил между строк.
Елена Сергеевна молчала долго. Потом кивнула.
— Тогда найдите её, — сказала она. — У вас две недели.
И ушла.
На второй ночи, когда кулеры уже выли на пределе, Артем заметил странность. Агент «Архивариус» пометил один файл как аномалию. Это была голосовая заметка, записанная за три дня до гибели композитора. В транскрипте было всего три строки:
Бесплатный фрагмент закончился.
Купите книгу, чтобы продолжить чтение.