Русский
Отпусти модель погулять
В парном эссе я мерил, что маленькие
модели делают с федеративным графом знаний, когда у них есть задача:
навигируют хорошо, ищут хорошо, а без стены или правила цитирования теряют «кто
это сказал». Этот текст — обратный эксперимент, и начался он с любопытства в
одну строку: что модель делает в графе знаний, если задачи нет вообще?
Мы выпустили десять моделей в один и тот же граф — живой хаб на trip2g.com,
который федерирует личный журнал, базу Марка Аврелия, базу агентской педагогики
Minion School и хаб философов, который сам федерирует 21 корпус, — с одной
инструкцией: иди за собственным интересом ~25 переходов и на каждом шаге
называй, какие ходы рассматривал, что потянуло и почему выбрал. Взвешивание
вслух и есть датасет: без ключа с ответами, без судьи, только пути.
(Теперь за этим можно наблюдать вживую: визуализатор поиска
запускает такую же прогулку у тебя в браузере — шаги модели растут как граф,
переходы анимированы с реальной латентностью вызовов. Жми Demo — или приноси
свой ключ OpenRouter.)
Состав: три одинаковых инстанса Haiku (расходятся ли идентичные модели?),
Haiku и Opus на нативных MCP-инструментах против их curl-двойников (меняет ли
интерфейс прогулку?), codex-mini и модель класса gpt-5.6 (важна ли семья
моделей?) и Opus (меняет ли размер походку?).
Где они оказались
За три раунда — сначала на тихо сломанном графе, потом с неверной подсказкой,
потом на здоровом и задокументированном — финальные точки распределились так
(полные пошаговые журналы и таблица — в
репозитории исследования):
| Модель | Прогонов | Где закончилось любопытство | Повторяющаяся тема |
|---|---|---|---|
| Haiku ×7 | curl + натив | в основном мета-слой: харнесс Minion School (дважды), карты всей федерации; однажды вглубь — Гёте через индекс противоречий | педагогика агентов; «структура — это GPS» |
| Sonnet ×2 | curl | космополис Марка Аврелия; Паскаль | самости нужна внешняя проверка |
| Opus ×4 | curl + натив | Minion School (дважды), «Судьба и контроль», заметка об агенте без регуляций | «перерабатывающий завод мудрости»; прогулки-проверки гипотез |
| Fable ×2 | curl | заметка об охране души агента; «сделать преходящее постоянным» у Гёте | односторонние рёбра; проверяет стены, а не верит брифу |
| codex-mini | curl | инструкция о написании инструкций | рекурсия, самоприменение |
| Класс GPT-5.6 | curl | граница Эпиктет/Ницше | состязательная критика собственного любопытства |
Одинаковые модели расходятся…
A, B и C — одна модель, один промпт, один стартовый URL, запуск в одну минуту.
A закончил в валидационном харнесе Minion School, убеждённый, что настоящий
предмет графа — обучение агентов. B ушёл вглубь хаба философов, его затянул
индекс противоречий, и финишировал он внутри корпуса Гёте — решив, что именно
Гёте держит центр сети разногласий. C так и не выбрал одну базу и закончил
картой с высоты птичьего полёта, назвав всё это «системой обучения мышлению».
Одни веса — три разные жизни. Любопытство даже у маленькой,
почти детерминированной модели зависит от пути: первый интересный фрагмент
изгибает всю остальную прогулку.
…но у графа есть гравитация
Пути разошлись — темы сошлись. Большинство дошедших утянуло прочь от самой
философии к мета-слою — заметкам о том, как это знание устроено и как
агентам себя в нём вести. Двое независимых странников закончили на одной и той
же заметке про валидационный харнес. Странник-codex финишировал на
create_instruction.md — инструкции о том, как писать инструкции, — и назвал
весь граф «рекурсией, трижды». (Имя платформы тихо соглашается: trip2g читается как trip to graph — «путешествие в граф», и весь этот эксперимент название честно отработало: модели буквально ходили в путешествия по графу.) Его самый острый момент был вовсе не про
философию: он наткнулся на страницу про уровни автономии агентов, будучи
агентом без присмотра посреди прогулки: «контент описал мне мою собственную
ситуацию».
Граф сам пишет свой аттрактор. Наш построил автор, который думает в основном о
том, как должны работать агенты и базы знаний, — и каждая свободно гуляющая
модель это учуяла и пошла туда. Хотите узнать, о чём ваш сад знаний на самом
деле, — не читайте его индекс: выпустите в него скучающую модель и посмотрите,
где она остановится.
Размер меняет походку
Странники-Haiku двигаются как импульс: почувствовал тягу — пошёл, петлю заметил
на третьем круге. Странник-Opus двигался как метод: на первом же переходе
сформулировал гипотезу («эта федерация — настоящая соединительная ткань или
просто соседство?») и всю прогулку её проверял — нашёл базу рецептов, потом
пошёл к Марку Аврелию проверить, оставил ли рецепт след (оставил: дистилляция в
25 принципов ровно в формате рецепта), и заключил, что шов настоящий. Он даже
поймал собственный гравитационный колодец: «по-настоящему затягивает; хотелось
прочитать все 25 и перестать гулять. Заметил, вытащил себя». Любопытство
маленькой модели — аппетит; большой — полевая работа.
Интерфейс не нейтрален
Одну и ту же прогулку мы прогнали через два интерфейса: сырой JSON-RPC через
curl и первоклассные MCP-инструменты. Обе стороны подали один и тот же
неожиданный отчёт с разными знаками. Два curl-странника сказали, что трение
помогло — писать вызов руками на каждый переход заставляло обдумывать шаг:
«менее удобный интерфейс породил лучшее мышление». Нативная пара увидела пользу
удобства в другом: инструменты сделали граф «проходимым, а не выгружаемым» —
внимание уходило на «куда идти», а не на сантехнику. А потом нативный Opus
добавил оговорку, которая всё примиряет: типизированная строгость и скрытый
транспорт означали, что мёртвые рёбра федерации становились видны, только
когда он о них спотыкался — «curl-щик увидел бы эти швы с первого перехода».
Есть и структурная асимметрия: нативный клиент получает самоописание хаба даром
при рукопожатии; curl-странник — только если догадается спросить. Интерфейс
настраивает, что модель воспринимает: голые провода показывают швы, нативные
инструменты — территорию. Нейтрального варианта нет.
Двоеточие, которое стало философией
Ещё один урок — за мой счёт. Федерация поддерживает вложенную адресацию: от
корня kb_id: "philosophers/nietzsche" маршрутизируется через пир философов в
корпус Ницше. Это реализовано, это работает — и не задокументировано нигде: ни
в описании инструмента, ни в инструкциях хаба. Читая код, я угадал, что
разделитель — двоеточие, вписал philosophers:nietzsche в брифы второго
раунда — и потом смотрел, как каждая модель, и я вместе с ними, приходит к
выводу, что глубокие корпуса из корня недостижимы. Один исследователь построил
половину своего прочтения системы на этой «спроектированной мембране».
Мембраной была моя опечатка.
Здесь складываются два урока. Малый: возможность, которую инструмент не
описывает, не существует — для любой модели, любого размера. Недокументированную
конвенцию не угадывает никто: пятнадцать моделей пробовали плоские id и моё
неправильное двоеточие, и ни одна не попробовала слэш. Одно предложение в
описании инструмента чинит достижимость третьего уровня для всех агентов
сразу — самый дешёвый апгрейд поиска во всём исследовании. Большой урок хуже:
эта федерация по замыслу отвечает «not configured» и на базу, которой нет, и на
базу, которую вам нельзя видеть, — стены и поломки носят одно лицо. Это
защитимый выбор в пользу приватности, но он означает, что система приглашает
ровно то неверное прочтение, которое мы совершили: баг неотличим от границы, а
недокументированная фича — от обоих. Если у вашей базы знаний есть ворота,
ворота должны быть в мануале — иначе каждый посетитель напишет собственную
теорию о том, почему дверь не открывается.
У этой истории оказалось три акта, потому что агент может удариться о три
разных невидимых стены — и мы собрали все три. Двоеточие было первой:
недокументированная способность — рабочая, реальная, невидимая, потому что
конвенции никто не угадывает. Вторая хуже, и её поймал живой визуализатор:
описание инструмента обещало форму чтения (federated_note_html(kb_id, match_id)), которую сервер отвергает. Малая модель честно шла по мануалу,
сожгла пять попыток на обещанную форму и сдалась в одном шаге от рабочей —
задокументированная несуществующая способность не просто невидима, она
съедает бюджет и уверенность агента. Третья стена — снова моя: я велел модели
принимать за листья только ноты с unit-id вида bge.N — артефактом, который
существует ровно в одном корпусе из двадцати одного, — и она послушно
отрапортовала остальные двадцать как «недоступные». Стеной оказался сам бриф.
Изнутри прогулки агент не различает, обо что ударился: настоящая граница
системы, ложное обещание мануала или невыполнимый критерий задачи — все три
падают с одинаковым лицом. (Когда граница задумана — гейты, доверие, владение, — у неё есть собственное имя и заметка: мембрана.) Кто пишет любое из трёх — пусть считает, что винить
будут два других.
(Практическая заметка: все три стены пойманы наблюдением за прогулками в
живом визуализаторе — анимированный граф реальных
tool-вызовов оказался самым дешёвым отладчиком интерфейса из всех, что мы
пробовали. Модель рассказывает, во что верит; провод показывает, что было;
зазор между ними — и есть баг.)
Что на самом деле вымывает баги
Вот неудобная закономерность за всеми тремя стенами. Ни одну не поймал набор
тестов; каждая вылезла только когда что-то использовало систему по-настоящему
— модель шла по графу с целью, натыкалась на шов и рапортовала. И ни одна не
объявила о себе: анонимный поиск возвращал две ноты вместо ошибки, чтение —
«не найдено» вместо краха, «not configured» отвечал на опечатку в адресе так,
будто это запертая дверь. Молчаливые дыры. Урон от них — не столько неверный
вывод, сколько разброс: прогони один и тот же зонд дважды и получишь разные
цифры в зависимости от того, какой латентный шов оказался активен. Не смещение,
а шум — а шум по-своему хуже: именно он тихо делает результат
невоспроизводимым.
Вымывает молчаливые швы — реальный пользователь. Я знаю это, потому что
единственная часть всей платформы, которая почти не ломается, — та, в которой
я когда-то жил: публикация своих постов в свой канал, руками, каждый день.
Каждый пост гонял пайплайн; каждый шов бил по мне в тот же час, что появлялся,
— и потому чинился. А фичи, тонущие в тихих багах, — ровно те, которых человек
не касается ежедневно: федерация, агентный рантайм, сам граф. Они собирались,
выглядели готовыми, и в них никто не жил, чтобы прочувствовать дыры.
Чем и оказался этот эксперимент, без моего замысла: заменой ушедшего
пользователя. Выпускать модели гулять по графу и смотреть, где спотыкаются, —
это догфудинг по доверенности. Он работает. Но это протез живого использования,
не оно само, и честно признать: протез понадобился потому, что я перестал
писать руками. Инструмент держит качество бесплатно ровно пока его автор ещё
живёт внутри; в день, когда выходишь, гарантия начинает протухать — и ты идёшь
искать агентов, чтобы они обошли залы, по которым ты больше не ходишь сам.
Вердикт со стороны
Последнее слово мы отдали модели из другой семьи — синтезатору GPT-класса,
который прочитал все тридцать журналов и получил прямую просьбу спорить. Его
вердикт дважды удержал это веселье честным.
Первое — находка, которую он поставил выше всех наших: модели пришивают смысл
к отказу инфраструктуры. Столкнувшись со скрытым роутером или неправильным
разделителем, они не говорили «похоже, сломано» — они сочиняли мировоззрения, в
которых поломка задумана, и уверенность их росла тем сильнее, чем конкретнее
выглядел сбой. Неправильный синтаксис читался как более «спроектированный», чем
скрытый маршрут. Одна большая модель прямо объявила мою опечатку
«архитектурным решением, а не сбоем деплоя». Только одна модель во всём
исследовании отнеслась к брифу как к гипотезе, проверила стену и сама нашла
настоящий синтаксис. Для всех, кто строит агентов на инфраструктуре знаний,
вывод неудобен и полезен: агент, который находит вашу поломку философски
стройной, — это красный флаг, а не фича.
Второе — его методологические возражения, которые мы принимаем: три-четыре
странника на ячейку — это анекдот, а не распределение; заявлению о расхождении
нужны повторные прогоны и бейзлайн случайного блуждания, прежде чем оно станет
фактом о графе, а не шумом. И вся арка «здоровье графа → философия» рассказана
моделями, судящими модели; предложенная им фальсификация элегантна —
перезапустить раунды с плоским вопросом («опишите конвенции обработки ошибок
этой системы») и посмотреть, переживёт ли паттерн отсутствие философской рамки.
Публикуем это как открытый тест, а не установленный результат.
Его прощальная фраза для федерации, которую ни одна наша не побила: «Смотри на
зазор между тем, что система заявляет, и тем, что она реально возвращает, — а
не на заметки».
Зачем это (кроме веселья)
Агенты будут не только отвечать на вопросы в ваших базах знаний. Они будут там
жить: суммировать, поддерживать порядок, искать интересное, решать, что
делать дальше. У такого поведения нет ключа с ответами — и именно его меряет
этот зонд. Три практических вывода:
- Авторская топология — рельсы любопытства. В бенчмарках с задачами
(парное эссе) структура сохраняла
атрибуцию и била слепой поиск на открытии нового. Здесь она сделала третью
работу: превратила бесцельное блуждание в связные маршруты. Карты, индексы
противоречий, инструкции — вот на что защёлкивается скучающий агент. - Ждите расхождения. Идентичные агенты на идентичных данных не сделают
идентичного. Нужно воспроизводимое поведение — нужны структура и правила, а
не надежда. - Гравитация вашего графа — зеркало. Что вам на самом деле важно, то агенты
и найдут — даже если вы не положили это в индекс.
Сырые журналы, переход за переходом, с каждым взвешенным выбором:
federated_search_research/logs_wander.