Перейти к тексту

Claude Code: работа с coding-агентом1. Перед стартом

Lab

Lab: собираем стенд

Засчитывается, когда отвечены все вопросы квиза

Стенд — всё, на чём идут Lab-ы курса: Claude Code, учебный репозиторий с приложением Cadence и request logger, который показывает запросы агента к модели. Примеры проверены на Claude Code 2.1.308. Номер вашей версии может быть больше — это нормально.

Что получится

  • claude --version печатает номер версии;
  • в браузере открыт Cadence с тестовыми курсами и пользователями;
  • в request-logger/logs/ лежит файл .md с полным запросом, который Claude Code отправил модели в ответ на ваше «hello».

Request logger встаёт между Claude Code и API Anthropic: пропускает запросы без изменений и пишет копию каждого на диск.

Request logger стоит между Claude Code и API и пишет копию каждого запросаСверху вниз. Вы работаете в Claude Code. Через ANTHROPIC_BASE_URL агент отправляет запросы в request logger на порту 8787. Logger пересылает их в api.anthropic.com и сохраняет копию в папку request-logger/logs. Вывод — агент работает как обычно, а вы видите всё, что он отправляет модели.ANTHROPIC_BASE_URLВы в терминалеClaude Coderequest loggerapi.anthropic.comlogs/*.md

Подготовка

  • Подписка Claude Pro или выше (см. 1.2).
  • git и Node.js 24 или новее: проверьте git --version и node --version.
  • Терминал: на Windows — WSL 2 или PowerShell, на macOS и Linux — любой.
  • Редактор со встроенным терминалом, например VS Code.

Шаги

  1. Установите Claude Code. На macOS, Linux и в WSL:

    curl -fsSL https://claude.ai/install.sh | bash

    В Windows PowerShell:

    irm https://claude.ai/install.ps1 | iex

    Установщик не показывает прогресс загрузки. Когда он закончит, откройте новое окно терминала.

  2. Проверьте установку.

    claude --version

    Вы увидите строку вида 2.1.308 (Claude Code).

  3. Склонируйте учебный репозиторий и перейдите в него:

    git clone https://github.com/ai-hero-dev/ai-coding-crash-course.git
    cd ai-coding-crash-course
  4. Установите зависимости.

    npm install

    В конце будет строка вида added 670 packages, а в корне появится node_modules. Предупреждения о deprecated-пакетах — норма.

  5. Создайте базу и заполните её.

    npm run db:migrate
    npm run db:seed

    db:migrate закончится строкой migrations applied successfully!, db:seed — сводкой созданных данных: курсы, квизы, записи, покупки. В корне появится data.db.

  6. Создайте учебную ветку.

    git checkout -b dev
  7. Запустите Cadence.

    npm run dev

    Откройте в браузере адрес, который напечатает dev-сервер. В панели разработчика внизу страницы переключите пользователя на Emma Wilson: у неё два курса. Оставьте сервер работать в этом терминале.

  8. Запустите request logger во втором терминале, из корня репозитория:

    npm run request-logger

    При первом запуске он спросит агента — выберите Claude Code, затем провайдера — Anthropic, затем запомнить ли выбор. После этого он напечатает:

    Agent      Claude Code (Anthropic)
    Listening  http://localhost:8787
    Forwards   https://api.anthropic.com
    
    Run your agent in another terminal with:
    
        ANTHROPIC_BASE_URL=http://localhost:8787 ENABLE_TOOL_SEARCH=true claude
  9. Запустите Claude Code через logger в третьем терминале, из корня репозитория. Скопируйте команду, которую напечатал logger, а не набирайте её сами:

    ANTHROPIC_BASE_URL=http://localhost:8787 ENABLE_TOOL_SEARCH=true claude
  10. Войдите. На вопрос о доверии к папке ответьте «да». На экране входа выберите вход по подписке Claude, подтвердите в браузере и вернитесь в терминал: там появится Login successful, нажмите Enter. Если браузер показал код вместо перехода обратно — вставьте его в терминал (так бывает в WSL и в SSH-сессиях).

  11. Проверьте модель. Выполните /model: выбрана опция Default, effort — medium.

  12. Отправьте первое сообщение.

    hello

    Агент ответит приветствием. Работает он так же, как без logger-а: прокси пропускает трафик без изменений.

Проверка результата

Откройте папку request-logger/logs/ и в ней самый новый файл .md. Если файлов несколько на одно сообщение, это нормально: Claude Code может отправлять служебные запросы, и каждый ложится отдельной записью.

Файл размечен XML-тегами, а не заголовками Markdown, потому что внутри много чужого Markdown. Найдите в нём:

  • <meta> — время, модель и upstream status; в нашем прогоне это claude-opus-5-5 и 200;
  • <system-prompt> — постоянную инструкцию, которую агент добавляет к каждому запросу: рабочая папка, платформа, правила сессии;
  • <tools> — описания tools в JSON; в нашем прогоне этот блок занял около 580 строк из примерно тысячи, больше половины файла;
  • <messages> — ваше hello и служебные вставки перед ним;
  • <response> — причину остановки и usage, расход токенов.

В нашем прогоне на одно hello ушло около 22 тысяч токенов в cache_creation_input_tokens — system prompt и tools уходят с каждым запросом. Запишите своё число: оно понадобится в квизе и в следующих разделах.

Когда закончите, остановите logger: Ctrl+C в его терминале. Без logger-а запускайте агента обычной командой claude.

Если не получилось

  • claude: command not found после установки — каталог установки ещё не в PATH. Откройте новое окно терминала; если не помогло, запустите claude doctor или смотрите раздел о PATH в документации по установке.
  • Установщик падает с syntax error near unexpected token '<' или 403 — откройте страницу Troubleshoot installation в документации и найдите там свою ошибку.
  • Вход не возвращается из браузера — вставьте код из браузера в приглашение Paste code here if prompted.
  • Страница курса в Cadence падает с no such column — база отстала от схемы, выполните npm run db:migrate.
  • Logger запомнил не того агента — npm run request-logger -- --force спросит заново.
  • Файл лога огромный, а блок tools занимает почти всё — Claude Code был запущен без ENABLE_TOOL_SEARCH=true. Запускайте его ровно той командой, которую напечатал logger.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.