В ходе обсуждения предыдущей заметки в чате телеграм-канала прозвучало заявление, что Codex — намного более качественный агент, чем плохо написанный Claude Code, качество которого (вместе с моделью LLM) постоянно деградирует.
Я последние несколько месяцев регулярно сравниваю разные агенты — и чтобы просто знать, и чтобы пробовать применять на практике, — и как раз относительно недавно такой анализ делал. По его результатам выходило, что Codex, конечно, неплохо стал развиваться, но многие возможности Claude Code в нем отсутствуют. Отступая в сторону, могу сказать, что действительно хорошо развит OpenCode, хотя у него есть некоторые ограничения, и есть еще Pi, который по определению можно настроить как угодно, поскольку его идея в том, что он сам себя дописывает.
Впрочем, проверить не мешает. Проверка получилась простой — я запустил codex cli прямо в его директории ~/.codex и дал ему проанализировать три источника — его собственные настройки, официальную документацию (у него есть встроенный скилл openai-docs плюс я дал сайт) и настройки Claude Code. Задача выглядела просто — проанализировать все настройки и предложить, как портировать настройки Claude Code в Codex.
У меня очень солидно навороченные настройки в Claude Code — специализированные агенты, скиллы, гибкая система разрешений, хуки, которые запускают проверки и линтеры, блокируют опасные команды, вставляют нужный контекст в особых случаях и сложная система промптов, которые подгружаются по необходимости. Так что задача не была простой, конечно, но она вполне реальна — я использую Codex для ревью проектов и в качестве “второго мнения”, поэтому логично держать его настроенным так же хорошо, как и основного агента.
К сожалению, совсем так же хорошо не получается. Вот краткий список того, что перенести не получается:
реализация hooks в Codex пока экспериментальная и минимальная. Фактически они срабатывают только на bash команды, поэтому получится только перехватить опасные команды, но запуск линтера или форматтера при редактировании кода не получится. Технически можно запустить отдельный процесс, который будет отслеживать изменения файлов, прогонять проверки и писать результат в отчет, а по событию Stop будет срабатывать хук, который допишет этот результат в контекст, но это обходной вариант. Отпадают и другие срабатывания, которые я использую.
аналога /rules в Codex нет. В Claude Code это отдельная папка с промптами, которые подгружаются в контекст автоматически, когда Claude работает с соответствующими файлами. Например, отдельный файл у меня содержит инструкции по написанию Python-скриптов и эти инструкции агент читает, только приступая к работе с Python кодом. Часть инструкций загружаются всегда, часть — только при обращении к определенному MCP и так далее. В Codex такое невозможно — общие рекомендации можно прописать в AGENTS.md, что-то специфическое для кода можно вынести в skill, допустимо создать профили, но переключать их придется вручную.
Skills просто так скопировать не выйдет. Скиллы в Codex фактически являются только инструкциями для использования основным агентом. В Claude Code можно задать скиллу параметр context:fork для запуска в отдельном контексте, назначить тип агента, модель для использования и даже глубину размышлений. Это позволяет не заморачиваться, если вам надо просто обработать специфический тип данных — основной агент использует скилл, который запускается как отдельный субагент, например, general-purpose, с быстрой моделью и возвращает только результат. В Codex так не выйдет — придется конфигурировать специального субагента и запускать именно его. Не очень критично, но все же дополнительные усилия.
Сильно отличается система разрешений. Claude фактически оперирует разрешениями для конкретных tools, что делает контроль очень точечным и понятным в разрезе именно команд. Кстати, сейчас появился режим auto, где модель сама решает, насколько безопасна команда и решает достаточно неплохо — правда, уж если она знает, что это мутирующая команда (git push, например), запустить ее получится только самому пользователю. У Codex совсем не так — там задается sandbox и внутри нее по умолчанию модель работает, спрашивая разрешение только на запуски что-то изменяющих скриптов. Явно понадобится разрешить также доступ в сеть, можно прописать режим запуска команд вне sandbox. Выглядит вроде бы жестче и системнее, но по удобству Claude выглядит лучше.
В общем, какой-то порядок с настройками Codex я навел, но дотянуть его до уровня Claude Code не получилось. Подождем доработок, кажется, разработчики там достаточно активны.
С одной стороны, меня очень радуют подобные вещи — они показывают, что количество людей, которым понадобятся мои объяснения, как именно надо использовать AI, уменьшаться в обозримой перспективе не будет. Кроме того, это подтверждает мое мнение о людях, которые считают программирование достаточным признаком инженера — у автора тоже написано в профиле software engineer, хотя второе слово явно не имеет к нему отношения.
С другой стороны, слегка утомителен тот факт, что до подобных откровений приходится буквально докапываться через бронебойную уверенность, что “AI это просто генератор случайных токенов”, “AI вам ничего не напишет”, “Вы еще придете просить, чтобы мы разобрались с вашим вайб-проектом”.
Проблема, описанная в записи, решается за минуту конфигом Claude Code — в settings.json надо указать явно:
После этого агент будет обязательно спрашивать всякий раз перед коммитом, даже если ему разрешены все правки, и не сможет сделать push, который часто запускает деплой. Если вы используете что-то свое для деплоя — укажите именно этот скрипт.
Более того, в Claude Code есть хуки, которые позволяют еще раз запретить запуск опасных команд.
Есть очень простой принцип, который стоит запомнить при управлении агентами — всё, что вы пишете в промпте, это просьба к LLM, максимум приказ, а всё, что вы настраиваете в settings агента, — это физический запрет или разрешение совершать действия. “Инженер” на скриншоте занимается тем, что уговаривает недетерминированную модель, вместо того, чтобы использовать гарантированные методы управления.
Перефразируя фразу про магию и физику — никогда не читайте документацию по настройке агентов и жизнь ваша наполнится чудом уговаривания LLM. Ах, да, ему же приключений хочется — ну, так они ему будут.
Пришлось, правда, обсуждать интересные ходы по монетизации Telegram путем блокировок и наследников Пятого управления КГБ СССР, но рассказал о своем опыте с Claude Design — именно из того клиента, который я там показываю на скриншотах, я сейчас и пишу эту запись.
Статья о парадоксе — хотя большинство риторики против AI звучит от левых политических кругов — представителей американских демократов, например, по сути это консервативные аргументы.
Аргументы действительно неплохие. Например, обвинения в несоблюдении авторского права, которые выдвигают сторонники левых взглядов, плохо согласуются с их собственной позицией несколько лет назад, когда патенты и копирайт представлялись как средство обогащения корпораций. Возражения против генеративного искусства скорее свойственны консерваторам. И вообще, мол, тормозить прогресс — это консервативная идея, а не либеральная.
Хорошо подмечено, что сами AI модели скорее склонны к левым взглядам — что объясняется просто более заметным присутствием соответствующего контента в обучающей выборке.
Автор в итоге приходит к простому объяснению парадокса — просто за AI выступает Трамп и большинство основателей и топ-менеджеров крупных компаний, разрабатывающих AI, очевидно склонились вправо после 2024 года, поэтому их политическим оппонентам удобно выступать против AI.
Мне кажется, что это упрощение. AI как заменитель большого количества сотрудников, как очень производительный ассистент и вообще с экономической точки зрения — это мощный импульс развития средств производства, то есть бизнеса. Забота о сохранении рабочих мест и вообще прав сотрудников — это как раз левая идея, профсоюзы и так далее. Поэтому при всем нежелании быстрых перемен, которое обычно приписывают консерваторам, приверженность экономической свободе — это очень правая идея.
Наткнулся на статью о том, как турецкая компания перенесла свои проекты с большого дроплета DigitalOcean (192GB RAM, 32 vCPUs, 600GB SSD, two block volumes (1TB each)) на отдельный сервер на Hetzner и получила даже больше мощности за кратно меньшую цену — 233 доллара в месяц против 1432 на DO.
Почему-то это вызывает дискуссию, что Cloud дороже, чем dedicated сервер. Во-первых, конечно, дороже — в Cloud вы платите дополнительные деньги потому, что покупаете только нужную часть, вместо целого сервера, и при этом оставляете возможность практически мгновенно увеличить мощность при необходимости.
Во-вторых, сравнивать DigitalOcean с Hetzner напрямую не стоит. Hetzner супердешев по определению, у них ниша такая.
Я как раз последнее время занимался примерно тем же — когда мне осенью понадобился VPS в Европе для запуска нескольких скриптов, я попробовал Hetzner, рассуждая, что мне не нужна идеальная надежность и прочее, мне просто нужна виртуалка на широком канале в европейской стране. Результат мне так понравился, что в последние пару месяцев я перенес все мелкие проекты с нескольких дроплетов в DO на один VPS на Hetzner. Теперь вместо нескольких инстансов общей стоимостью около 30 долларов, причем там были в основном 1CPU/1GB RAM или 2CPU/2GB RAM, у меня есть один VPS с 8 ядрами и 16 гигабайтами памяти, за 12 евро в месяц, который я не знаю чем нагрузить — там несколько тестовых агентов типа OpenClaw, там мой собственный n8n, пара runner-ов для GH Actions и нагрузка около пары процентов в среднем.
Но это такой же VPS, а не выделенный сервер. Просто это Hetzner, который всегда был очень дешевым и остался таким, даже с апрельским небольшим повышением цен.
Вот и пришли времена, когда о политических событиях узнаешь по трафику на своем блоге. Я вчера рассказывал про этот казус в стриме — на блог начали ходить по запросу [ezekiel 25:17], то есть 17 стих 25 главы книги пророка Иезекииля. Я писал про этот стих несколько лет назад, когда решил разобраться, что именно цитирует Джулс в “Криминальном чтиве” и обнаружил, что это такая религиозная фантазия дремучего американца вокруг короткого стиха из Библии.
Так вот, рост трафика связан с тем, что другой дремучий американец — министр попыток войны США Пит Хегсет, — на полном серьезе в ходе публичной молитвы начал читать монолог Джулса вместо библейского стиха. Если точнее, он его тоже модифицировал, подставив упоминания американских летчиков, которых спасали в Иране.
Вообще-то, среди верующих протестантов вполне нормально сочинять молитвы, гимны — ведь в протестантстве основополагающим является прямой доступ к богу, без посредников в виде священников. Но они не выдают при этом свои молитвы за цитаты из Библии.
Ричард Ханания, консервативный публицист и автор готовящейся к выходу книги «Kakistocracy», опубликовал эссе, в котором утверждает, что использование AI в писательской работе неизбежно и полезно для всех — от склонных к конспирологии обывателей до академических исследователей. Он разбирает возражения — «это нечестно к другим», «убивает рабочие места», «снижает способность мыслить» — и каждое считает несостоятельным. Ключевая мысль: если текст фактически верен и даёт новые идеи, моральная неприязнь к «AI-написанному» плохо обоснована.
Я много раз повторял — и завтра на стриме повторю еще раз, — что совершенно нет никакой разницы, кто написал код, если система с этим кодом выполняет задачу. В данном случае, совершенно неважно, кто представил набор информации — в моих глазах крайне небольшое количество авторитетов способно добавить достоверности этой информации, в отношении всего остального человечества верна японская пословица “Обезьяна тоже падает с дерева”. Слово “слоп”, если разобраться, придумано людьми, чтобы подчеркнуть, что в качестве результата виноват не человек, который дал машине нечеткое задание, а машина, выполнившая его.
На самом деле плохие тексты заполонили интернет задолго до появления GPT, а понятие legacy code появилось в обиходе еще тогда, когда “умной” функцией редактора кода считалось умение раскрыть аббревиатуру. Халтуру делают люди, а машина лишь точно следует халтурным инструкциям. Но теперь у людей появилось удобное оправдание — это не я, это AI фигню написал.
Все же видели картинку (уже удаленную) из социальной сети Трампа?
Все успели погадать, кого ж это воскрешает самый прекрасный президент США. Я где-то наткнулся на версию и теперь не могу не присматриваться — человек с закрытыми глазами довольно сильно напоминает Джеффри Эпштейна, а центральная фигура НАД Трампом, может, конечно, и совпадает головным убором со статуей Свободы, но даже этот убор в сочетании с крыльями больше напоминает рога и прочие элементы образа врага рода человеческого.
Наехать на Папу Римского, духовного лидера для 1,3 млрд человек (и порядка 70 млн американцев) — это, конечно, мощно. Но изобразить себя в образе Христа и задеть таким образом еще и протестантов, мормонов, православных и так далее, то есть всего 200 млн американцев — это особенный талант САМОГО ПРЕКРАСНОГО ПРЕЗИДЕНТА США.
Раньше регулярно делал стримы с кем-то из друзей, а сейчас хочу возобновить, но уже самостоятельно — сложно согласовываться с гостями, да и новости можно обсудить самостоятельно.
Хочу еще попробовать, как стримы работают на Substack. Чтобы не распыляться, ограничимся двумя платформами — YouTube и Substack, где теперь есть полноценный стриминг.