home.social

#graphlens — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #graphlens, aggregated by home.social.

fetched live
  1. Граф кода одной командой: ставим graphlens-mcp в проект и перестаём жечь токены на grep

    В первых двух статьях я сделал две вещи и обе — честно. Описал движок graphlens: как он берёт исходники на Python, TypeScript, Go, Rust и PHP и нормализует их в единый типизированный граф — узлы-символы, type-aware рёбра ( CALLS , HAS_TYPE , INHERITS_FROM ), детерминированные SHA-256 ID, межъязыковые границы. И померил его: 936 прогонов на apache/superset (~400k строк, Python + TypeScript, граница /api/v1/... ). Вывод — на задачах анализа влияния структурный граф бьёт grep по стоимости в 10–23 раза, а на точечных запросах разница почти нулевая. Но была дыра, о которой я в обеих статьях молчал. Движок — это не продукт. Чтобы реально подключить graphlens к агенту, недостаточно pip install и API. Нужно написать кучу обвязки. Эта статья — про то, как я эту обвязку оформил в отдельный продукт graphlens-mcp , который ставится одной командой и сразу начинает работать. Он в alpha, он бесплатный (MIT), и его можно потестить на своём проекте за пять минут.

    habr.com/ru/articles/1052776/

    #graphlens #MCP #граф_кода #кодовые_агенты #Claude_Code #LLM #статический_анализ_кода #оптимизация_токенов #Python #treesitter

  2. Граф кода одной командой: ставим graphlens-mcp в проект и перестаём жечь токены на grep

    В первых двух статьях я сделал две вещи и обе — честно. Описал движок graphlens: как он берёт исходники на Python, TypeScript, Go, Rust и PHP и нормализует их в единый типизированный граф — узлы-символы, type-aware рёбра ( CALLS , HAS_TYPE , INHERITS_FROM ), детерминированные SHA-256 ID, межъязыковые границы. И померил его: 936 прогонов на apache/superset (~400k строк, Python + TypeScript, граница /api/v1/... ). Вывод — на задачах анализа влияния структурный граф бьёт grep по стоимости в 10–23 раза, а на точечных запросах разница почти нулевая. Но была дыра, о которой я в обеих статьях молчал. Движок — это не продукт. Чтобы реально подключить graphlens к агенту, недостаточно pip install и API. Нужно написать кучу обвязки. Эта статья — про то, как я эту обвязку оформил в отдельный продукт graphlens-mcp , который ставится одной командой и сразу начинает работать. Он в alpha, он бесплатный (MIT), и его можно потестить на своём проекте за пять минут.

    habr.com/ru/articles/1052776/

    #graphlens #MCP #граф_кода #кодовые_агенты #Claude_Code #LLM #статический_анализ_кода #оптимизация_токенов #Python #treesitter

  3. Граф кода одной командой: ставим graphlens-mcp в проект и перестаём жечь токены на grep

    В первых двух статьях я сделал две вещи и обе — честно. Описал движок graphlens: как он берёт исходники на Python, TypeScript, Go, Rust и PHP и нормализует их в единый типизированный граф — узлы-символы, type-aware рёбра ( CALLS , HAS_TYPE , INHERITS_FROM ), детерминированные SHA-256 ID, межъязыковые границы. И померил его: 936 прогонов на apache/superset (~400k строк, Python + TypeScript, граница /api/v1/... ). Вывод — на задачах анализа влияния структурный граф бьёт grep по стоимости в 10–23 раза, а на точечных запросах разница почти нулевая. Но была дыра, о которой я в обеих статьях молчал. Движок — это не продукт. Чтобы реально подключить graphlens к агенту, недостаточно pip install и API. Нужно написать кучу обвязки. Эта статья — про то, как я эту обвязку оформил в отдельный продукт graphlens-mcp , который ставится одной командой и сразу начинает работать. Он в alpha, он бесплатный (MIT), и его можно потестить на своём проекте за пять минут.

    habr.com/ru/articles/1052776/

    #graphlens #MCP #граф_кода #кодовые_агенты #Claude_Code #LLM #статический_анализ_кода #оптимизация_токенов #Python #treesitter

  4. Сколько стоит контекст для кодового агента: grep vs граф vs LSP на большом проекте (936 прогонов)

    Я взял одного и того же агента (Claude Code), менял у него ровно одну вещь — какой MCP-сервер отдаёт контекст по коду, — и гонял по 26 задачам на apache/superset . Четыре «руки»: filesystem (grep + read), graphlens (структурный граф), serena (LSP) и codegraph . Три модели (haiku / sonnet / opus), три сида — 936 прогонов . Главный результат: вывод переворачивается в зависимости от типа задачи. Смотреть цифры

    habr.com/ru/articles/1051504/

    #MCP #LLMагенты #Claude_Code #бенчмарк #graphlens #code_intelligence #статический_анализ_кода #LSP #codegraph #AI_для_разработки

  5. Сколько стоит контекст для кодового агента: grep vs граф vs LSP на большом проекте (936 прогонов)

    Я взял одного и того же агента (Claude Code), менял у него ровно одну вещь — какой MCP-сервер отдаёт контекст по коду, — и гонял по 26 задачам на apache/superset . Четыре «руки»: filesystem (grep + read), graphlens (структурный граф), serena (LSP) и codegraph . Три модели (haiku / sonnet / opus), три сида — 936 прогонов . Главный результат: вывод переворачивается в зависимости от типа задачи. Смотреть цифры

    habr.com/ru/articles/1051504/

    #MCP #LLMагенты #Claude_Code #бенчмарк #graphlens #code_intelligence #статический_анализ_кода #LSP #codegraph #AI_для_разработки

  6. Сколько стоит контекст для кодового агента: grep vs граф vs LSP на большом проекте (936 прогонов)

    Я взял одного и того же агента (Claude Code), менял у него ровно одну вещь — какой MCP-сервер отдаёт контекст по коду, — и гонял по 26 задачам на apache/superset . Четыре «руки»: filesystem (grep + read), graphlens (структурный граф), serena (LSP) и codegraph . Три модели (haiku / sonnet / opus), три сида — 936 прогонов . Главный результат: вывод переворачивается в зависимости от типа задачи. Смотреть цифры

    habr.com/ru/articles/1051504/

    #MCP #LLMагенты #Claude_Code #бенчмарк #graphlens #code_intelligence #статический_анализ_кода #LSP #codegraph #AI_для_разработки

  7. graphlens: превращаем репозиторий в типизированный граф — Python, TypeScript, Go и Rust в одной модели

    Любой инструмент для «понимания кода», которым я пользовался, рано или поздно упирался в одну из двух стен. Первая — цикл «grep → открыть → прочитать → перейти по импорту → снова grep» . Работает, но медленно, и у него нет ни малейшего представления о том, что process_order , найденный в services.py — это тот самый process_order , который вызывается из api.py , а не однофамилец из tests/ . Когда этим занимается LLM-агент, он ещё и сжигает на этом тонну токенов. Вторая стена — моноязычность . Инструмент прекрасно понимает Python, но слепнет в ту секунду, когда фронтенд на TypeScript дёргает ручку FastAPI на Python. Реальные системы полиглотны. Инструменты вокруг них — обычно нет. graphlens — это open-source фреймворк (MIT), который спроектирован так, чтобы обойти обе стены. Он парсит исходный проект, нормализует его структуру в общий граф-IR и отдаёт этот граф вам — делайте с ним что хотите: анализ зависимостей, навигацию, поиск мёртвого кода или подачу точных ответов LLM-агенту вместо вываливания файлов в контекст.

    habr.com/ru/articles/1050204/

    #graphlens #статический_анализ_кода #граф_кода #treesitter #Python #LSP #code_intelligence #MCP

  8. graphlens: превращаем репозиторий в типизированный граф — Python, TypeScript, Go и Rust в одной модели

    Любой инструмент для «понимания кода», которым я пользовался, рано или поздно упирался в одну из двух стен. Первая — цикл «grep → открыть → прочитать → перейти по импорту → снова grep» . Работает, но медленно, и у него нет ни малейшего представления о том, что process_order , найденный в services.py — это тот самый process_order , который вызывается из api.py , а не однофамилец из tests/ . Когда этим занимается LLM-агент, он ещё и сжигает на этом тонну токенов. Вторая стена — моноязычность . Инструмент прекрасно понимает Python, но слепнет в ту секунду, когда фронтенд на TypeScript дёргает ручку FastAPI на Python. Реальные системы полиглотны. Инструменты вокруг них — обычно нет. graphlens — это open-source фреймворк (MIT), который спроектирован так, чтобы обойти обе стены. Он парсит исходный проект, нормализует его структуру в общий граф-IR и отдаёт этот граф вам — делайте с ним что хотите: анализ зависимостей, навигацию, поиск мёртвого кода или подачу точных ответов LLM-агенту вместо вываливания файлов в контекст.

    habr.com/ru/articles/1050204/

    #graphlens #статический_анализ_кода #граф_кода #treesitter #Python #LSP #code_intelligence #MCP

  9. graphlens: превращаем репозиторий в типизированный граф — Python, TypeScript, Go и Rust в одной модели

    Любой инструмент для «понимания кода», которым я пользовался, рано или поздно упирался в одну из двух стен. Первая — цикл «grep → открыть → прочитать → перейти по импорту → снова grep» . Работает, но медленно, и у него нет ни малейшего представления о том, что process_order , найденный в services.py — это тот самый process_order , который вызывается из api.py , а не однофамилец из tests/ . Когда этим занимается LLM-агент, он ещё и сжигает на этом тонну токенов. Вторая стена — моноязычность . Инструмент прекрасно понимает Python, но слепнет в ту секунду, когда фронтенд на TypeScript дёргает ручку FastAPI на Python. Реальные системы полиглотны. Инструменты вокруг них — обычно нет. graphlens — это open-source фреймворк (MIT), который спроектирован так, чтобы обойти обе стены. Он парсит исходный проект, нормализует его структуру в общий граф-IR и отдаёт этот граф вам — делайте с ним что хотите: анализ зависимостей, навигацию, поиск мёртвого кода или подачу точных ответов LLM-агенту вместо вываливания файлов в контекст.

    habr.com/ru/articles/1050204/

    #graphlens #статический_анализ_кода #граф_кода #treesitter #Python #LSP #code_intelligence #MCP