Автоматизация

Graphlens: open-source фреймворк превращает полиглотные репозитории в типизированный граф

Новый инструмент решает проблемы моноязычности и неэффективного поиска по зависимостям, преобразуя код на Python, TypeScript, Go и Rust в единую структурированную модель.

Иллюстрация к новости: Graphlens: open-source фреймворк превращает полиглотные репозитории в типизированный граф

В разработке ПО анализ кода в сложных полиглотных системах сталкивается с двумя проблемами. Первая - трудоемкий ручной поиск по зависимостям по циклу "grep - открыть - прочитать - перейти по импорту - снова grep". Этот метод не различает, например, функцию `process_order` в модуле `services.py` и ее одноименную версию в тестах. При автоматизации LLM-агентом задача приводит к перебору файлов и высоким вычислительным затратам.

Вторая проблема - моноязычность большинства инструментов анализа. Они хорошо работают с Python, но не отслеживают связи между фронтендом на TypeScript и бэкендом на Python или Go.

Фреймворк graphlens (лицензия MIT) создан для решения этих задач. Он преобразует исходный код репозитория (поддерживает Python, TypeScript, Go, Rust) в единый типизированный граф промежуточного представления (граф-IR). Инструмент парсит проект, нормализует структуру, выявляет сущности (функции, классы, методы, импорты) и связи между ними, строя целостную модель. Это позволяет точно отслеживать, какой именно `process_order` вызывается из `api.py`, и видеть связи между компонентами на разных языках. Результат - структурированное машиночитаемое представление кодовой базы для анализа.

Практическое значение graphlens для разработчиков, продактов и компаний:

  • Ускоряет анализ зависимостей, поиск мертвого кода, оценку влияния изменений и навигацию по крупной кодовой базе.
  • Предоставляет LLM-агентам не сырые файлы, а точные структурированные данные о графе зависимостей. Это снижает затраты токенов на перебор и повышает релевантность ответов о коде, открывая путь к более эффективным инструментам автоматизации разработки и рефакторинга.

Graphlens решает проблему неструктурированности данных, с которой сталкиваются LLM при работе с кодом, предоставляя им типизированный контекст. Это может привести к появлению ИИ-агентов, которые не только генерируют код по описанию, но и понимают архитектуру существующих систем, предлагают осмысленные улучшения и проводят изменения на основе точной карты зависимостей.

Вопросы читателей по теме

Все вопросы

Какая нейросеть работает с Excel?

спрашивает Виталий, Барнаул 162 просм.

Сергей Орлов: Вариантов сейчас несколько, и они по-разному обращаются с вашими данными, что для рабочих таблиц важнее выбора самой удачной формулы. Microsoft Copilot в Excel (доступен в подписке Microsoft 365 Copilot) - самый безопасный вариант для рабочих отчетов: он встроен прямо в приложение, и по условиям Microsoft корпоративные данные из таких запросов не используются для обучения общих…

Как подключить чат-бота в ВК?

спрашивает Павел, Екатеринбург 76 просм.

Дмитрий Волков: Подключение бота к сообществу ВКонтакте начинается не с кода, а с настроек самого сообщества - там нужно получить доступ к API. Порядок действий такой: В управлении сообществом откройте раздел "Работа с API" и создайте ключ доступа сообщества (токен) с нужными правами - как минимум "Сообщения сообщества". Там же включите один из двух способов получения сообщений:…

Как создавать чат-ботов и зарабатывать на этом?

спрашивает Марина, Тверь 219 просм.

Марина Соколова: Спрос реальный, особенно среди небольшого локального бизнеса: магазины, салоны красоты, частные специалисты часто не готовы платить разработчику за индивидуальную разработку, но вполне готовы заплатить за настройку готового конструктора под свои задачи, это дешевле и быстрее. По ценам на фрилансе простой бот, приём заявок, FAQ, рассылка расписания, обычно стоит от 5 до 15 тысяч рублей за…

Что такое инструменты для ИИ-агента?

спрашивает Ольга, Воронеж 182 просм.

Марина Соколова: Инструменты для ИИ-агента - это конкретные функции или программы, которые агент может вызвать сам, чтобы получить данные или выполнить действие, вместо того чтобы просто отвечать текстом на основе того, что он уже "знает". Обычная языковая модель без инструментов может только генерировать текст по своим внутренним знаниям, поэтому иногда ошибается или выдаёт устаревшие сведения. Агент с…