Обновить

Комментарии 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 есть режим планирования и режим агента. Значит как минимум есть промпты которые готовят модель к решению задачи планирования или кодинга. Так же, когда ставишь задачу модель повторяет формулировку ещё раз сама себе другими словами. Это часть конкретной рассуждающий модели или это в коде агента? Модель строит план и затем идёт по пунктам, иногда не доводя работу до конца, если она слишком большая. Опять вопрос - это определяется агентом или рассуждающая моделью?

Иными словами, не совсем однозначно насколько король голый.

VSCode Copilot как раз таки голый, если вытащить список тулов, то там будет manage_todo_list с простейшим crud, write, read, и также вызов субагентов в виде такой же функции. Никакой магии

Уж очень примитивно в сравнении с сегодняшними кодинг агентами, которые пишут код, запускают авто тесты, исправляют ошибки по провалам тестов, умеют работать долго в фоновом режиме без зацикливания, имеют глубокую интеграцию в 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

То что автор для вашего удобства упаковал зависимости в бинарник, не повод их считать исходником. Большая часть его логики вообще в одном не очень большом файле.

Ну, для написания скрипта hello world подойдет :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации