Про утилиту для навигации по коду и сравнение закрытых и открытых моделейМой друг Дима (у него есть
канал про геймдев, а также он активно применяет ИИ для своих задач и рассказывает про это) сделал cli-утилиту для умной навигации по кодовой базе для агентов -
ast-outline. Чтобы агент не скачивал весь файл, а мог посмотреть набор методов класса, или же для директории построить её оглавление, поискать вхождение конкретного символа и так далее.
Попробовал на своих проектах, реально полезная штука. Я вижу, как агент вместо чтения целых файлов начинает осознанно смотреть, список методов у класса, запрашивать оглавление для целой директории, искать использование классов. Поиск становится более интеллектуальным, при этом контекста может даже больше использоваться, потому что агент, получая такой инструментарий, начинает более тщательно изучать кодовую базу. Кажется, что такой инструмент должен быть у cli-агентов по-умолчанию, возможно когда-то мы это увидим, а пока можно попробовать проект Димы:
https://github.com/ast-outline/ast-outlineКогда экспериментировал с ast-outline я решил проверить на реальных задачах недавно вышедшую модель MiniMax M3, которая по
бенчмаркам является чуть ли не лучшей открытой моделью (веса ее пока не опубликовали, но на днях обещают это сделать). Обычно я использую OpenCode и подключенную к нему подписку от OpenAI. Я переключился на MinimaxM3, дал ему ту же задачу, связанную с изучением кода, которую до этого выполнял GPT 5.5 и увидел, что MiniMaх не стал вызывать никакие команды ast-outline! Я решил, что модель похоже не очень, переключился мою любимую среди открытых моделей Kimi K2.6 - она попыталась что-то сделать, но зачем-то добавила в начала вызова npx - получила ошибку и вернулась к привычным грепам. Далее DeepSeek V4 Pro - он тоже попытался вызвать ast-outline, но он решил, что это системный инструмент, получил ошибку, что такого инструмента не существует и сдался. Qwen3.7 Max и MiMo V2.5 Pro проигнорировали инструкции. И лишь GLM 5.1 вызвала один раз команду, а затем стала читать файлы как привыкла.
Я подумал, может проблема с инструкцией. Для того, чтобы агенты могли пользоваться ast-outline, в
AGENTS.md/CLAUDE.md добавляется несколько абзацев текста с описанием как использовать утилиту, на мой взгляд, текст там довольно водянистый. Я переписал инструкцию сделав ее более короткой и понятной, снова проверил, как ведут себя открытые модели - результат почти не поменялся. И лишь когда я добавил скилл для работы с ast-outline и в основной инструкции явно указал, что его нужно всегда использовать - результаты стали уже заметно лучше. Но лишь Qwen3.7 Max и Kimi K2.5 стали стабильно использовать, а другие модели от случая к случаю.
Да, это промт-инжиниринг, нужно уметь писать понятные инструкции моделям и настраивать скиллы. Но проблема здесь в том, что если использовать модели GPT и Claude, причем не только старшие, но GPT-5.4-mini, Sonnet и даже Haiku - они видят эту инструкцию и сразу схватывают идею. А с китайскими моделями надо много приседаний, чтобы они усвоили вашу инструкцию и ей следовали. Причём если говорить про бенчмарки, то эти модели наверняка могут писать хороший код в рамках четко поставленных задач, могут анализировать данные, обладают обширными знаниями о мире. Но когда речь заходит о работе в реальном проекте, где есть системный промт инструмента, есть инструкции пользователя, они склонны игнорировать эти инструкции. Не знаю, какой бенчмарк проверяет такое поведение, но явно все эти агентские бенчмарки о чём-то другом. И теперь у меня будет свой очень простой способ проверять на вшивость новые модели.
🧐
Подписаться на канал