Нейросеть для анализа кода: как разобраться в чужом проекте быстрее

Как за вечер получить карту незнакомой кодовой базы: промпты для модулей и точек входа, проверка ответов по ссылкам на файлы и расчёт цены с кэшем и без.

5 мин · · разработка · агенты

Нейросеть для анализа кода полезнее всего в первый день на новом проекте, когда нужно понять, что где лежит и как идёт запрос от входа до базы. Вместо часов чтения файлов можно за вечер получить карту модулей, список точек входа и объяснения непонятных функций, а затем проверить их по ссылкам на реальные строки. Ниже порядок работы, готовые промпты, скрипт для небольших репозиториев и расчёт стоимости.

Нейросеть для анализа кода: агент или весь код в запросе

Агент в репозитории. Claude Code, opencode и аналоги сами ищут по проекту, открывают файлы и отвечают на вопросы. Подходят для больших репозиториев, где весь код в одно сообщение не влезет. Настройка Claude Code описана в документации: переменные ANTHROPIC_BASE_URL=https://api.zukko.pro (без /v1) и ANTHROPIC_AUTH_TOKEN=fetch_.... Для анализа включайте режим только для чтения или планирования, если он есть в вашем инструменте (в opencode это агент Plan, в Claude Code режим планирования; свериться с документацией своей версии). Так вы не получите случайных правок во время изучения.

Весь код в запросе. Для небольшого проекта можно собрать файлы в один текст и отправить через API. Окно у большинства моделей из каталога 1M токенов (у Grok 256K, у GLM 128K), так что репозиторий на десятки тысяч строк иногда помещается. Плюс: модель видит всё сразу и не пропустит файл, который агент не открыл. Минус: каждый следующий вопрос снова отправляет весь код, если не включён кэш.

Сначала посчитайте токены

Прежде чем отправлять проект целиком, узнайте, сколько в нём токенов. Для этого есть метод count_tokens:

bash
curl https://api.zukko.pro/v1/messages/count_tokens \
  -H "x-api-key: fetch_ваш_ключ" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5-5","messages":[{"role":"user","content":"текст вашего проекта"}]}'

Ответ содержит число входных токенов. Сравните его с окном: если вышло больше 1M (или больше 128K для GLM), берите агента или анализируйте по частям.

Шаг 1. Карта проекта

Первый запрос должен дать общую картину. Начните с дерева файлов и ключевых конфигов (README, package.json или pyproject.toml, docker-compose.yml), а не с исходников:

bash
Вот дерево файлов проекта и его конфиги. Составь карту:
1. Что это за приложение и на чём оно написано.
2. Какие основные модули/пакеты и за что отвечает каждый (по одной строке).
3. Где точки входа: запуск сервера, CLI, обработчики, фоновые задачи.
4. С какими внешними системами оно общается (БД, очереди, API).
К каждому утверждению укажи файл. Если не уверен, так и напиши.

Требование «укажи файл» главное. Оно превращает пересказ в проверяемый список, а фразу «не уверен» вы получаете вместо уверенной выдумки.

Шаг 2. Трассировка сценария

Самый полезный вид вопроса: проследить один сценарий насквозь.

bash
Проследи путь запроса POST /orders от маршрутизатора до записи в БД.
Для каждого шага: файл, функция, что она делает, что передаёт дальше.
В конце перечисли побочные эффекты (письма, события, кэш).

Такая трассировка даёт отправную точку для чтения кода: вы знаете, какие файлы открывать и в каком порядке. Для каждого шага откройте файл и убедитесь, что функция там есть, тогда сразу видно, где модель ошиблась.

Шаг 3. Непонятные места

Для конкретной функции полезны три разных запроса:

  • «Объясни, что делает функция reconcile(), простыми словами и по шагам».
  • «Какие входные данные ломают эту функцию? Перечисли граничные случаи».
  • «Кто вызывает reconcile() и что изменится, если поменять её сигнатуру?»

Третий вопрос агент решает поиском по проекту, а в режиме «весь код в запросе» отвечает по тому, что видит. Ему стоит напомнить, что вызовов в динамических местах (рефлексия, строковые имена, плагины) он может не увидеть.

Скрипт для небольшого репозитория

Собираем файлы в один текст с заголовками путей и задаём вопрос через OpenAI-совместимый формат:

bash
import sys
from pathlib import Path
from openai import OpenAI

EXT = {".py", ".ts", ".js", ".go", ".md", ".toml", ".json", ".yml", ".yaml"}
SKIP = {".git", "node_modules", "dist", "__pycache__", ".venv"}

def collect(root: Path) -> str:
    parts = []
    for p in sorted(root.rglob("*")):
        if p.is_file() and p.suffix in EXT and not (set(p.parts) & SKIP):
            parts.append(f"=== {p.relative_to(root)} ===\n{p.read_text(errors='ignore')}")
    return "\n\n".join(parts)

Запуск: python ask.py ./myproject "Где точки входа и как устроена авторизация?". Не отправляйте файлы с секретами (.env, ключи): добавьте их в SKIP или фильтруйте по имени.

Как проверять ответы

Модель может уверенно описать то, чего в коде нет. Три приёма защиты:

  1. Требуйте путь к файлу и имя функции и проверяйте поиском: grep -rn "def reconcile" ..
  2. Просите цитату нескольких строк, на которых основан вывод.
  3. Запускайте. Если модель говорит «эта функция вызывается при старте», поставьте лог или брейкпоинт и проверьте.

Выводы про архитектуру («здесь слишком связный код») считайте мнением, а не фактом.

Сколько это стоит

Допустим, проект весит 150 000 токенов (замерьте свой через count_tokens). Вы задаёте 11 запросов подряд: первый строит карту, десять следующих уточняют. Ответ в среднем 1 000 токенов. Цены Zukko на 18 октября 2026, $ за 1M токенов.

Без кэша: каждый запрос отправляет 150 000 токенов. Вход 11 × 0,15 = 1,65 млн, выход 11 × 0,001 = 0,011 млн.

МодельРасчётИтого
claude-sonnet-5-5 (0,4 / 2)1,65 × 0,4 + 0,011 × 2 = 0,66 + 0,022$0.68
gpt-6.1-sol (0,27 / 1,32)1,65 × 0,27 + 0,011 × 1,32 = 0,4455 + 0,0145$0.46
deepseek-v4.1-flash (0,013 / 0,038)1,65 × 0,013 + 0,011 × 0,038 = 0,0215 + 0,0004$0.02

С кэшем у Claude (Anthropic-формат, код записан в кэш один раз и читается десять раз): запись 0,15 × 0,5 = 0,075; чтение 1,5 × 0,05 = 0,075; выход 0,011 × 2 = 0,022. Итого около $0.17 вместо $0.68. Вопросы мы здесь не считаем, они крошечные по сравнению с кодом.

Оговорка: скидка за кэш у Claude работает в Anthropic-формате (/v1/messages, Claude Code, Anthropic SDK), а в сыром API кэш нужно включать явно. Подробно: как считаются чтение и запись кэша. Агенты вроде Claude Code работают с кэшем сами, но расход у них всё равно растёт с длиной сессии.

Частые вопросы

Можно ли с помощью нейросети проверять код, а не только объяснять?

Да, те же приёмы работают для ревью: «найди потенциальные ошибки в этом модуле, укажи строку и причину». Но выводы нужно проверять запуском и тестами. Автоматизация описана в статье про код-ревью через API.

Какая модель подойдёт для анализа кода?

Мы не утверждаем, что одна пишет или читает лучше других. Опирайтесь на цену, окно и индекс силы (у claude-opus-5-5 58, у gpt-6.1-sol 52, у claude-sonnet-5-5 48) и проверьте на вашем репозитории.

Что делать, если проект не влезает в окно?

Используйте агента, который сам ищет по проекту, либо делите код на части: сначала карта модулей по дереву файлов, потом отдельные запросы по нужным модулям.

Безопасно ли отправлять код в API?

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

Для скрипта и агента нужен один ключ fetch_... из кабинета; баланс пополняется через СБП, картой MasterCard или криптой.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.