Как я передаю структуру проекта при работе с AI-агентами
Если вы работаете с AI-агентами для написания или ревью кода, то знаете эту боль: агент не знает ваш проект. Каждый новый чат — с нуля. Агент начинает читать, читать, читать... И часто читает то что вообще не нужно. Чтобы он хоть что-то понял, нужно дать контекст.
Агент видит список файлов, но не понимает, что в них без прочтения всего файла.
Это не всегда требуется - для мелких задач часто нужно работать с несколькими файлами и в целов читать нужно срез проекта а не проверять все
Я написал небольшую CLI-утилиту для саммаризации файлов в проекте через LLM.
Запускаешь sumr в корне проекта — и получаешь дерево файлов, где у каждого файла есть однострочное описание от LLM:
src/ ├── cli.ts Entry point, Commander.js commands and orchestration ├── scanner.ts Recursive file walker with regex include/exclude filters ├── summarizer.ts OpenAI-compatible API pool with concurrency control └── renderer.ts Terminal tree output with chalk coloring
Добавляешь агенту инструкцию начинать задачи с этой команды.
Внутри утилита рекурсивно обходит директорию, фильтрует файлы по настраиваемым regex-паттернам, потом отправляет каждый файл в LLM с просьбой дать однострочное описание. Запросы идут параллельно, результаты кэшируются в комментарии в файле — при повторном запуске уже обработанные файлы пропускаются.
Инструмент совместим с любым OpenAI-совместимым API. Можно подключить LM Studio или Ollama - справляются мелкие вроде новых Qwen 3.5 0.5b, 1.5b, 3b.
Ещё начал делать режим паттернов без LLM — извлечение комментариев и сигнатур по regex. Пока не уверен, нужно ли это кому-то.
Первый запуск:
npm i summariser -g sumr config init
Далее в папке проекта:
sumr
Если добавили новые файлы sumr обработает их а кэш не тронет
Для очистки кэша:
sumr clear
Для обновления кэша:
sumr rescan
Я добавил такую инструкцию в CLAUDE.MD и он буквально сразу начинает с тех файлов которые нужны.
* Всегда начинай ЛЮБУЮ задачу с команды 'sumr' для получения общей структуры проекта и понимания, где что находится.
Хотя вопрос экономии конечно открытый - тут по разному бывает экономит прям нормально не читая весь проект ради вычленения 1-го модуля, а бывает работает на уровне обычного regex-поиска. Но результат лично мной ощущается!
Для саммари использую новый qwen 3.5 0.8b - мелкая моделька в lm studio
Если этот подход будет интересен и имеет смысл - могу поразвивать утилиту или принять любого кому интересно развить. Возможно что то можно доработать чтобы это было удобнее
Много времени на это не тратил любую обратную связь приму по возможности )
Репозиторий: https://github.com/BuddaArt/Summariser
