Amiga
Оглавление курса · урок 3 из 17

Модуль 1 · Рабочий цикл · урок 3 из 17

Исследование кодовой базы

Прежде чем менять код, его надо понять. Раньше на это уходил час с поиском по проекту и отладчиком. Агент сокращает это время, но с оговоркой: он отвечает уверенно, даже когда ошибается. В уроке — как исследовать код так, чтобы ответам можно было доверять, и как не терять результат исследования.

Первое знакомство с незнакомым репозиторием разбиралось в уроке «Первая сессия». Здесь — следующий уровень: прицельные вопросы перед конкретной задачей.

Только чтение

Исследование не должно ничего менять. Запустите Codex в режиме только для чтения:

bash
codex --sandbox read-only

Или переключитесь в текущей сессии через /permissions. Агент сможет читать файлы и запускать команды, которые ничего не пишут (поиск, git log, git blame), а на любое изменение запросит одобрение. Подробно о режимах — в уроке «Песочница и одобрения».

Лестница вопросов

Вопрос «расскажи про проект» даёт пересказ README. Полезнее спускаться по ступеням — от общего к частному.

Карта. «Опиши структуру: какие плагины, где бизнес-логика, где интеграции с внешними сервисами, как запускаются тесты. По каждому пункту — пути».

Поток. Самый полезный тип вопроса — проследить путь данных. «Что происходит после отправки формы заявки на /contacts — от AJAX-обработчика до записи в CRM? Перечисли шаги с файлами и номерами строк». Для мобильного приложения: «Как пуш-токен попадает на бэкенд и где он обновляется при смене пользователя?»

Точка. «Почему в LeadService::send() отправка идёт через очередь, а не сразу? Найди коммит, в котором это появилось, и его описание». Агент сам запустит git log -S или git blame.

Влияние. Перед изменением: «Кто вызывает PriceCalculator::calculate()? Что сломается, если добавить в него обязательный параметр?»

Каждая ступень опирается на предыдущую. Ответ на вопрос о потоке точнее, если агент уже построил карту в этой же сессии.

Требуйте доказательств

Модель может сочинить правдоподобное объяснение — особенно если код похож на типичный Laravel, а в проекте всё устроено иначе. Защита простая: требуйте ссылки и проверяйте их.

text
Отвечай только по коду этого репозитория. Для каждого утверждения
дай путь и номер строки. Если не нашёл или предполагаешь — так и пиши:
«не нашёл», «предположение».

Откройте две-три ссылки сами. Если они ведут не туда, остальной ответ тоже под вопросом. Хорошая привычка — просить подтвердить вывод запуском: существующим тестом или маленьким скриптом. Если команде нужна запись (кэш, логи), агент в режиме только для чтения запросит одобрение — решите, разрешать ли.

Свою догадку тоже можно проверить, не выходя из сессии: !rg -n "LeadService" выполнит команду локально с текущими настройками песочницы и одобрений.

Субагенты для широкого поиска

Если вопрос охватывает весь проект — «где мы обращаемся к внешним API и как обрабатываем их ошибки?» — основной чат быстро заполнится содержимым десятков файлов. Codex умеет запускать субагентов по прямой просьбе. Среди встроенных есть explorer — агент для исследования кода, который в основном читает.

text
Запусти трёх субагентов-исследователей: первый ищет обращения к внешним
HTTP API в plugins/, второй — в app/, третий — в мобильном клиенте
в mobile/. Каждый возвращает список: файл, сервис, как обрабатываются
ошибки и таймауты. Потом сведи всё в одну таблицу.

В основной чат вернутся только выводы. Субагенты тратят больше токенов, чем один агент, поэтому берегите их для по-настоящему широких вопросов. Настройка своих агентов — в уроке «Субагенты».

Побочные вопросы и документация

По ходу исследования возникают вопросы в сторону: «что делает этот фильтр Twig?» Чтобы они не засоряли основной контекст, задавайте их в побочном чате /side (алиас /btw): ответ не попадёт в историю основной сессии.

Если вопрос не про ваш код, а про библиотеку — например, как ведёт себя метод Eloquent в вашей версии Laravel, — агенту нужна документация нужной версии. Веб-поиск по умолчанию работает по кэшированному индексу, живой поиск включается флагом --search. Проверьте, что агент сверился с версией из composer.lock или package.json, а не с последней.

Сохраните выводы

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

text
Запиши то, что мы выяснили про поток заявок, в docs/architecture/leads.md:
шаги с файлами, неочевидные решения и их причины, известные проблемы.
Пиши для разработчика, который видит проект впервые.

Если в выводах есть то, что агент должен знать в каждой сессии, — например, «заявки никогда не отправляются в CRM синхронно», — добавьте в AGENTS.md одну строку со ссылкой на документ. Сам документ в AGENTS.md не копируйте: файл инструкций должен оставаться коротким. Почему это важно и как устроить документацию под агента — в уроке «AGENTS.md как оглавление».

Попробуйте сами

10–15 мин на рабочем месте
  1. В рабочем репозитории запустите codex --sandbox read-only и задайте вопрос-поток про один пользовательский сценарий. Потребуйте ссылки на файлы и строки, проверьте три из них.
  2. Задайте вопрос о влиянии: кто вызывает метод, который вы собираетесь менять на этой неделе, и что может сломаться.
  3. Попросите сохранить выводы в docs/ и прочитайте файл глазами новичка в проекте.

Коротко

  • Исследуйте в режиме только для чтения: codex --sandbox read-only или /permissions.
  • Спускайтесь по лестнице вопросов: карта → поток → точка → влияние.
  • Требуйте путь и строку на каждое утверждение и выборочно проверяйте их.
  • Широкий поиск — субагентам, побочные вопросы — в /side.
  • Выводы сохраняйте в docs/, самое важное — одной строкой со ссылкой в AGENTS.md.
Отметка хранится только в вашем браузере
Хотите связаться с владельцем
компании напрямую?
Дмитрий Тарасов
Дмитрий Тарасов
СЕО

НАПИСАТЬ

Написать в MAX