Комментарии 18
Хороший туториал, но метод Find-and-Replace (через old_str и new_str) — это не всегда однозначное решение для продакшена. Любая галлюцинация модели в один символ — и замена не сработает. Инструменты вроде Claude Code или Cursor занимаются именно тем, чтобы приземлить правки модели на реальный файл без ошибок в форматировании. Без перехода на diff-форматы такой агент быстро превратится в генератор синтаксических ошибок.
Доверие теряется, тк в первом же абзаце реализации: «берем openai», а по факту создается антропик инстанс
Хорошо. Статья именно то, что снимает ореол «агенты = особая магия». По факту это чат, где модели дали три руки: list_files, read_file, edit_file. Всё остальное — UX и страховочные барьеры. То есть Claude Code — это не “супер-LLM”, это “LLM + ремни безопасности + каска + регламент”. Самое полезное здесь даже не код, а ментальная модель: LLM не трогает вашу ФС, она только просит, а вы решаете, выполнять ли. В корпоративном/закрытом контуре это вообще золото (факт фактический) : можно дать агенту ровно тот набор инструментов, который не превратит его в junior с root’ом.
Немного «а вот тут начинается взрослая жизнь»:
edit_file“по подстроке” — это как деплой «по ощущениям»: пока работает — красиво, как сломается — будете искать, какой именно символ агент “улучшил”. На практике лучше учить агента предлагать unified diff и применять его через patch, плюс проверять, что diff применился чисто.
Очень не хватает инструмента “сделай вид, что ты взрослый”: run_tests/lint/typecheck. Без этого агент пишет код, как студент на экзамене: уверенно, быстро и без запуска.
И да, path safety: если не ограничить root проекта, однажды получите легендарное: «Создал файл /etc/hosts с полезными импортами».
Теперь и комментарии ллмками пишем?)
Поспешил человек высказаться, а писать было лень.
Но и ллм вполне разумное написала.
Другое дело, что это proof of concept, а не продакшен-волшебная палочка.
Но вот diff-ы точно нужны!
Ну и экономия токенов не помешала бы: гонять туда сюда по целому файлу (а, будем реалистами, там скоро и каталоги полетят) - это прямо "на что бы потратить стопятьсот долларов денег и как бы сжечь стопятьсот киловатт энергии?!"
Да, это ответ, который сформулировать наша система (Тестируем свою систему локально/в закрытом контуре конечно же, но которая может мониторить источники, искать статьи по смыслу, ставит пометки -тезисы/риски/что проверить-, связывает с похожими материалами и сама пингует, когда появляется реально важное под наш профиль. Плюсы: меньше шума, быстрее разбор, прозрачные причины алертов и никакого “джуна с root’ом” — всё в пределах заданных правил и инструментов. Скоро будет статья и репозиторий для скачивания на гитах. ) — мы её сейчас как раз тестируем на реальных обсуждениях. При этом по смыслу я писал про приземлённые вещи: агент = LLM + ограниченные инструменты (list/read/edit) + human‑in‑the‑loop; edit_file “по подстроке” в проде лучше заменять на unified diff + patch; и обязательно иметь run_tests/lint/typecheck и path safety. Скоро выпустим статью про саму систему, и сборку можно будет скачать на гитах — кину ссылку, как выложим. PS скоро это без времени. пока вопросики.
На самом деле вы можете попросить агента выдать вам весь список тулов. Там много всего интересного:)
Оно, конечно, прикольно, но слишком уж базовый уровень, который нихера в проде работать не будет, тупо потому-что изобретается свой протокол работы с тулзами, контекст подрастет и модель начнет тупить и вызывать их неправильно, ибо они только описаны в системном промпте, тогда как все современные модели, как правило, натренированны использовать стандартный протокол.
Для этого, там, где в статье идет вызов claude_client.messages.create( помимо того, что передается, можно передать еще и список тулзов. А ответ модели в таком случае может быть не только текст, но и список вызовов тулзов, ибо за один ответ модель может подумать и вызвать несколько тулзов.
Статья больше вредная, чем полезная, на мой взгляд, лучше сразу к нормальной работе приучаться, чем к уровню робких шагов начала 2024, когда еще не знали как тулзы вызывать. Ну и упоминание claude code в заголовке - чистый кликбейт, т.к. помимо вызова тулзов там еще дохера чего есть.
Упд: Ой, глянул оригинал - там в первой же строчке указывается, что он написан в январе 2025! Переводчик, такие вещи надо сразу указывать, что статья - антиквар.
В AI IDE есть режим планирования и режим агента. Значит как минимум есть промпты которые готовят модель к решению задачи планирования или кодинга. Так же, когда ставишь задачу модель повторяет формулировку ещё раз сама себе другими словами. Это часть конкретной рассуждающий модели или это в коде агента? Модель строит план и затем идёт по пунктам, иногда не доводя работу до конца, если она слишком большая. Опять вопрос - это определяется агентом или рассуждающая моделью?
Иными словами, не совсем однозначно насколько король голый.
Уж очень примитивно в сравнении с сегодняшними кодинг агентами, которые пишут код, запускают авто тесты, исправляют ошибки по провалам тестов, умеют работать долго в фоновом режиме без зацикливания, имеют глубокую интеграцию в ide и т. д. и т.п.
В Claude code есть:
Режим планирования
Thinking
Модель безопасности и пользовательских разрешений
Параллельный запуск специализированных субагентов
Защита от слишком большого ответа инструмента (например, при чтении огромного файла или результата выполнения шелл-команды, или списка файлов или http-ответа итд)
Автоматическое и ручное сжатие контекста
Поддержка пользовательских скиллов
MCP позволяющий подключать любые сторонние тулы
ACP позволяющий использовать Клода через API. Например, встраивать его в интерфейс IDE
Настройки, кастомные промпты, кастомные команды и правила безопасности уровня проекта и пользователя
Интеграция с IDE (видит открытый в данный момент файл и выделенную строку)
Инструмент редактирования файлов, основанный на diff
Предпросмотр изменений файла
Запуск шелл-команд в фоне и управление фоновыми процессами
Откат беседы и кода к предыдущим состояниям
База данных всех бесед с возможностью вернуться к любой из них
Динамический UI написанный на Ink, вылизанный почти до совершенства множеством итераций, основанных на тысячах пользовательских issues.
Это здоровенная махина, и ни в 200, ни в 20000 строк его не запихнуть.
А так-то да, написание helloworld-агента у вас прекрасно проиллюстрировано, но не стоит забывать, что реальные "промышленные" агенты — это 99.9% сложной логической обвязки, 0.1% LLM-вызовов.
Весь Claude Code без промптов с .md расширением, около трёх десятков файлов на шелле, питоне и тайпскрипте.
Автор сильно упростил список инструментов современного агента, но и в 20000 и даже в 2000 он вполне влезет, потому что большинство указанного функционала — это просто вызов сторонних юниксовых функций, синтаксис которых нейронке уже известен.
Вы точно ни с чем не путаете? У меня исполняемый файл это бинарник на 178 мегабайт.
Исходники Claude Code есть на гитхабе
https://github.com/anthropics/claude-code
То что автор для вашего удобства упаковал зависимости в бинарник, не повод их считать исходником. Большая часть его логики вообще в одном не очень большом файле.
А вообще да, reducer)
Ну, для написания скрипта hello world подойдет :)

А король-то голый! Как написать свой Claude Code в 200 строках кода