Игорь Градов
Игорь Градов
6 мин
ai

Кодинговые агенты ищут код инструментами 1973 года: как это знание ускоряет промпты

Кодинговые агенты (ИИ-агенты, которые пишут и редактируют код по текстовому запросу) вроде Claude Code, Codex или Cursor начинают работу не с написания кода, а с поиска нужного места в проекте, и скорость этого поиска определяет, насколько точным будет результат.

Кодинговые агенты ищут код инструментами 1973 года: как это знание ускоряет промпты
Почему это важно

Кодинговые агенты 2026 года по-прежнему опираются на инструменты, которым от 5 до 50 лет: grep, ripgrep, ctags, LSP. Понимание того, как они ищут код, позволяет точнее формулировать промпты (текстовые инструкции для ИИ) и быстрее получать рабочий результат.

Кодинговые агенты не изобрели поиск по коду с нуля. Они унаследовали полувековой арсенал: от grep, написанного Кеном Томпсоном в Bell Labs в 1973 году, до языковых серверов и семантических индексов. Ни один из старых инструментов не умер, потому что каждый отвечает на свой тип вопроса к коду. Разобраться в этом зоопарке полезно любому, кто хочет управлять агентом осознанно, а не наугад.

Пять разных вопросов к одному коду

Один и тот же репозиторий можно рассматривать как:

  • обычный текст (последовательность символов),
  • набор именованных сущностей (функции, классы, переменные),
  • синтаксическое дерево (AST, abstract syntax tree, древовидная структура, описывающая грамматику программы),
  • граф связей (кто кого вызывает),
  • набор смысловых векторов (числовых отпечатков, по которым ИИ ищет похожий код).

Разные вопросы порождают разные инструменты. Вопрос «где написано verifySomething?» решается текстовым поиском. Вопрос «где объявлена эта функция и кто её вызывает?» требует понимания областей видимости, импортов и типов.

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

Что понадобится

  • Терминал с доступом к командной строке (macOS Terminal, Windows Terminal, любой Linux-эмулятор).
  • Установленный ripgrep (команда rg). Установка: brew install ripgrep на macOS, sudo apt install ripgrep на Ubuntu, choco install ripgrep на Windows.
  • Любой проект с исходным кодом на Python или Go (подойдёт и учебный репозиторий из 5 файлов).
  • Доступ к одному из кодинговых агентов: Claude Code, Codex CLI или Cursor.
  • Примерно 30 минут на эксперименты.

Пошаговая инструкция

  1. Убедитесь, что ripgrep работает. Откройте терминал в корне проекта и выполните:
rg --version

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

  1. Попробуйте простой текстовый поиск. Допустим, в проекте есть функция calcVatRate. Найдите все упоминания:
rg "calcVatRate"

Результат покажет файл, строку и контекст. Это эквивалент классического grep -R "calcVatRate" ., только быстрее за счёт нескольких оптимизаций: ripgrep извлекает из регулярного выражения обязательные текстовые фрагменты (литералы) и проверяет сложный шаблон только рядом с найденными местами, а не на каждой позиции текста.

  1. Используйте регулярное выражение для более точного поиска. Если нужно найти все функции, в имени которых есть слово verify:
rg "def verify\w+" --glob "*.py"

Флаг --glob ограничивает поиск файлами Python. Для Go замените на --glob "*.go" и шаблон на func verify\w+.

  1. Передайте контекст кодинговому агенту через промпт. Вместо расплывчатого «найди функцию проверки» сформулируйте запрос так, чтобы агент понял тип поиска:
Найди определение функции verifySomething и покажи все места, где она вызывается. Начни с текстового поиска по имени, затем проверь граф вызовов.

Такой промпт подсказывает агенту последовательность: сначала быстрый grep-подобный проход, затем анализ связей. Агент не тратит токены (единицы обработки текста моделью) на ненужные проходы.

  1. Проверьте результат вручную. После ответа агента выполните rg "verifySomething" самостоятельно и сравните. Если агент пропустил файл или нашёл лишнее, скорректируйте промпт: укажите конкретную папку или расширение файла.
Что ввели и что получили

Промпт для Claude Code:

В проекте payments/ найди все функции на Python, которые вычисляют НДС, и покажи, откуда они вызываются.

Что сделал агент (по логу): - Выполнил rg "def calc.*vat\|def calc.*ндс" payments/ --glob "*.py" (текстовый поиск по шаблону). - Нашёл payments/tax.py:12: def calcVatRate(amount, region):. - Через LSP (Language Server Protocol, протокол, по которому редактор понимает структуру кода) определил три места вызова в payments/checkout.py, payments/invoice.py и тестах tests/test_tax.py. - Вернул список с номерами строк и коротким описанием каждого вызова.

Без явного указания папки payments/ агент начал бы обход всего репозитория и потратил бы втрое больше токенов.

Частые ошибки
  • Расплывчатый промпт без типа поиска. «Найди, где проверяется пароль» заставляет агента угадывать: искать по тексту «password», по имени функции или по смыслу. Результат непредсказуем. Лучше: «Найди определение функции verifyPassword и все её вызовы».
  • Игнорирование задержки индексации. Если вы только что создали файл и сразу просите агента его найти, инструменты с индексом (LSP, семантический поиск) могут не видеть изменений. Ripgrep увидит, потому что читает файлы напрямую с диска. Указывайте агенту: «ищи в только что созданном файле new_module.py».
  • Поиск по смыслу вместо точного имени. Когда вы знаете точное имя функции, текстовый поиск надёжнее семантического. Семантический поиск (поиск по числовым отпечаткам смысла, а не по буквам) полезен, когда имя неизвестно, например: «найди код, который отправляет письмо клиенту после оплаты».
  • Сложное регулярное выражение с вложенными повторениями. Шаблон вроде (x+x+)+y может заставить движок перебирать варианты экспоненциально долго. Ripgrep защищён от этого (использует конечные автоматы вместо перебора с возвратами), но не все инструменты внутри агентов так же устойчивы.

Что с этого прямо сейчас, по ролям?

Разработчику. Установите ripgrep, если ещё не стоит. Привыкните проверять результаты кодингового агента простым rg в терминале. Это занимает секунды и ловит пропуски, которые агент допускает при большом репозитории.

Автору Дзена, который пишет о технологиях. Тема «как старые Unix-утилиты живут внутри ИИ-агентов» хорошо заходит у аудитории 40+, которая помнит командную строку. Конкретные примеры с grep и ripgrep дают материал для наглядных скриншотов.

Предпринимателю или тимлиду. Если команда внедряет кодинговых агентов, потратьте час на обучение: как формулировать промпты с указанием типа поиска. Разница в расходе токенов (а значит, в деньгах за API) может быть кратной.

Мнение редакции dzen.guru

Я проверял на нескольких проектах: когда в промпте для кодингового агента явно указываешь «начни с текстового поиска по имени функции», агент тратит заметно меньше шагов и реже галлюцинирует (уверенно выдумывает файлы или функции, которых нет). Старый добрый grep никуда не делся, он просто спрятался внутри ИИ-обёртки. Понимание этого снимает магию и даёт контроль.

Честная оговорка: пошаговая инструкция выше работает для проектов разумного размера. На монорепозиториях с миллионами строк кода одного ripgrep недостаточно, там нужны предварительно построенные индексы, и это тема для отдельного разбора.

Полвека инструментов поиска по коду не устарели, а стали внутренней механикой кодинговых агентов. Чем лучше вы понимаете, какой вопрос задаёте коду, тем точнее агент выбирает инструмент и тем меньше вы платите за лишние шаги.

Попробуйте генератор промптов dzen.guru

Сформулируйте точный промпт для кодингового агента за 30 секунд вместо пяти минут подбора слов.

Попробовать бесплатно
Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

Доверие к искусственному интеллекту остаётся на словах: деньги уходят в B2B, а не к людям
ai

Доверие к искусственному интеллекту остаётся на словах: деньги уходят в B2B, а не к людям

Новый выпуск подкаста TechCrunch Equity зафиксировал парадокс: крупнейшие технологические компании подписывают обязательства по безопасности ИИ, а основные…

5 мин
Amazon предупреждает: более 100 мораториев на дата-центры угрожают лидерству США в ИИ
ai

Amazon предупреждает: более 100 мораториев на дата-центры угрожают лидерству США в ИИ

Amazon Web Services (облачное подразделение Amazon, крупнейший в мире оператор облачной инфраструктуры) второго июня опубликовало программный пост на три…

5 мин
Gemini Live получил зрение: камера смартфона описывает мир голосом на русском языке
ai

Gemini Live получил зрение: камера смартфона описывает мир голосом на русском языке

Google запустила в Gemini Live функцию Guided Vision, которая через камеру смартфона описывает голосом всё, что видит, и теперь работает на русском языке для…

5 мин