Нейросеть для анализа кода: как разобраться в чужом проекте быстрее
Как за вечер получить карту незнакомой кодовой базы: промпты для модулей и точек входа, проверка ответов по ссылкам на файлы и расчёт цены с кэшем и без.
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:
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), а не с исходников:
Вот дерево файлов проекта и его конфиги. Составь карту:
1. Что это за приложение и на чём оно написано.
2. Какие основные модули/пакеты и за что отвечает каждый (по одной строке).
3. Где точки входа: запуск сервера, CLI, обработчики, фоновые задачи.
4. С какими внешними системами оно общается (БД, очереди, API).
К каждому утверждению укажи файл. Если не уверен, так и напиши.Требование «укажи файл» главное. Оно превращает пересказ в проверяемый список, а фразу «не уверен» вы получаете вместо уверенной выдумки.
Шаг 2. Трассировка сценария
Самый полезный вид вопроса: проследить один сценарий насквозь.
Проследи путь запроса POST /orders от маршрутизатора до записи в БД.
Для каждого шага: файл, функция, что она делает, что передаёт дальше.
В конце перечисли побочные эффекты (письма, события, кэш).Такая трассировка даёт отправную точку для чтения кода: вы знаете, какие файлы открывать и в каком порядке. Для каждого шага откройте файл и убедитесь, что функция там есть, тогда сразу видно, где модель ошиблась.
Шаг 3. Непонятные места
Для конкретной функции полезны три разных запроса:
- «Объясни, что делает функция
reconcile(), простыми словами и по шагам». - «Какие входные данные ломают эту функцию? Перечисли граничные случаи».
- «Кто вызывает
reconcile()и что изменится, если поменять её сигнатуру?»
Третий вопрос агент решает поиском по проекту, а в режиме «весь код в запросе» отвечает по тому, что видит. Ему стоит напомнить, что вызовов в динамических местах (рефлексия, строковые имена, плагины) он может не увидеть.
Скрипт для небольшого репозитория
Собираем файлы в один текст с заголовками путей и задаём вопрос через OpenAI-совместимый формат:
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 или фильтруйте по имени.
Как проверять ответы
Модель может уверенно описать то, чего в коде нет. Три приёма защиты:
- Требуйте путь к файлу и имя функции и проверяйте поиском:
grep -rn "def reconcile" .. - Просите цитату нескольких строк, на которых основан вывод.
- Запускайте. Если модель говорит «эта функция вызывается при старте», поставьте лог или брейкпоинт и проверьте.
Выводы про архитектуру («здесь слишком связный код») считайте мнением, а не фактом.
Сколько это стоит
Допустим, проект весит 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.
Похожие статьи
- Промпт-инъекция: что это и как защитить бота и агентаОбъясняем, как работает промпт-инъекция через пользовательский ввод и чужие документы, и какие меры снижают ущерб: изоляция данных, права инструментов, лимиты ключа.
- Claude Code YOLO: режимы разрешений и работа без подтвержденийОтдельного режима YOLO в Claude Code нет, зато есть шесть режимов разрешений и гибкие правила. Разбираем, как перестать нажимать «Да» и не лишиться файлов.
- Claude Code: чек-лист лучших практик для ежедневной работыПривычки, которые делают работу с Claude Code предсказуемой: короткий CLAUDE.md, план перед правками, мелкие задачи, проверка результата и контроль расхода.
- MCP-сервер на Java: минимальный пример с одним инструментомПишем минимальный MCP-сервер на Java с одним инструментом, регистрируем его в Claude Code и учимся находить причину, если агент его не видит.