Мы удалили 80% системного промпта. И модель стала работать лучше
Создатель Claude Code объяснил, почему инструкции моделям пора выбрасывать, а не писать. И показал два переписывания кодовой базы, которые шли одиннадцать и пятнадцать дней подряд.
Насмотренность 07/100
Борис Черни — создатель Claude Code в Anthropic. Разговор на 36 минут, за день до этого вышла Opus 5.
Что именно они удалили
Черни говорит про это буднично (03:34). Claude Code как продукт меняется постоянно, и каждый раз при выходе новой модели они выбрасывают часть системного промпта, меняют набор инструментов и промпты к ним.
Причина простая. Каждая модель ведёт себя иначе, и то, что вы написали для предыдущей три месяца назад, к следующей может не иметь отношения вообще.
Большая часть системного промпта была поправками на поведение, которое модель должна была знать сама, но не знала. Теперь знает (04:26).
Дальше он предлагает залу удалить и остальное. У Claude Code есть недокументированная переменная окружения, которая вычищает все системные промпты, включая промпты инструментов (04:48).
Они используют её как измерительный инструмент — чтобы понять, полезен ли промпт вообще. И вот что при этом обнаружилось.
Без этих промптов модель работает немного умнее (05:08).
Что осталось в коде обвязки у них сегодня: безопасность, права доступа, статический анализ и интерфейс (06:24). Остальное они вычистили.
Как пересобрать промпт под новую модель
Раз в полгода удаляйте свой файл с инструкциями, свои скиллы, свои хуки. Посмотрите, что модель сделает без них. Она может удивить.
А дальше — порядок, по которому промпт возвращается (07:39). Он важнее самого совета удалить.
- Удалить
- Пользоваться. Не угадывать, какая инструкция нужна модели — вы, скорее всего, угадаете неверно
- Смотреть, где спотыкается. Не где могла бы, а где реально спотыкается на вашей задаче и вашей кодовой базе
- Возвращать строку только когда она спотыкается об одно и то же повторно (08:15)
Причину, почему нельзя добавлять раньше времени, он называет прямо: модель читает эту инструкцию каждый раз при каждом запуске (08:23).
И общее наблюдение про то, чем это отличается от обычной инженерии (08:47). Раньше вы строили большие красивые системы, продумывали архитектуру заранее, писали набор тестов, а переархитектура была проектом на месяцы, иногда на годы.
Модель устроена не так. К ней стоит относиться как к живому существу: каждое поколение ведёт себя иначе, у него другой характер, и его нужно узнавать заново.
Отдельно про то, что при этом остаётся стабильным. Эвалы (метрики оценки) живут дольше обвязки, но ненамного — одно, два, максимум три поколения модели (09:35). Дальше эвал насыщается, его выбрасывают и придумывают новый.
Чем заменить инструкции
Самая частая ошибка, которую он видит (15:07): люди дают чрезмерно подробные указания. Сделай вот это, но вот таким способом, сначала один шаг, потом два, потом три, потом четыре.
Для современных моделей это просто неверный подход.
не правильно: пошаговый рецепт → модель выполняет ровно то, что вы придумали
правильно: задача + рамки + критерий выхода → и дать ей работать
Плюс правило, которое звучит контринтуитивно (14:52).
Давайте модели задачи чуть сложнее тех, на которые она, по-вашему, способна.
Типичный сбой у опытных инженеров он называет отдельно (24:20): чем дольше человек программирует, тем сильнее он переспецифицирует. Потому что раньше системы иначе и не строились.
То, что почти никто не делает правильно
Про смену модного навыка он говорит коротко (19:52). Год назад самой популярной вакансией был промпт-инженер, потом это стало контекст-инженером. Волны приходят и уходят.
А настоящий навык он формулирует так: дать Claude задачу, которая выглядит немного слишком трудной, и дать ему способ проверять свою работу по ходу дела.
Верификация — вероятно, единственное, что люди в основном делают неправильно (20:31).
Дальше он приводит два случая, и оба стоит разобрать по деталям.
Claude Code работает на Bun — альтернативе Node.js (16:06). Bun написан на Zig, системном языке уровня C, где память управляется вручную и легко получить утечки.
Сначала команда Bun просто просила Claude фаззить кодовую базу и провоцировать утечки. Находил, по одной за раз — таков был потолок модели тогда.
Потом инженер по имени Джаред решил проверить другое: а вдруг перепишет целиком. Он бросал эту задачу каждому новому поколению модели.
Начиная с Fable модель начала справляться (17:20).
Ключевая деталь — почему это вообще стало возможно проверить.
- у Bun очень хороший набор тестов
- у Node.js тоже большой набор тестов
- значит, легко понять, правильно ли получилось
Дальше — один промпт и динамический воркфлоу (17:55):
///
переписать Zig → Rust, более 100 000 строк
работало 11 дней подряд
руками у лучших инженеров заняло бы больше года
///
Не с одного захода — Джаред подруливал. Но предыдущие модели не справились бы и с подруливанием (18:14).
Результат уже они занесли в продакшен. Именно на нём Claude Code сейчас и работает (18:33).
Пятнадцать дней и промпт из четырёх предложений
Второй случай — его собственный эксперимент (20:39). Десктопное приложение Claude сделано на Electron, и он захотел посмотреть, как ощущалось бы нативное.
Промпт он приводит целиком (21:37):
Перепиши приложение с Electron на Swift. Запусти Electron-версию в виртуальной машине с macOS, сделай скриншот, сравни со Swift-версией пиксель за пикселем. Не останавливайся, пока не закончишь.
На вопрос, сколько это работало, он отвечает: всё ещё работает (хотя возможно к написанию статьи уже закончил :) ). На момент выступления — четырнадцать или пятнадцать дней (22:06).
Обратите внимание, что в этом промпте нет ни одной инструкции о том, как писать код на Swift.
Там есть только задача, окружение и способ проверить себя. Скриншот против скриншота, пиксель за пикселем.
Именно эта петля и позволяет процессу идти две недели, не застревая. Агентов при этом было запущено, по его оценке, тысячи или десятки тысяч (24:50).
Деталь напоследок: Claude сам решил вести отчёт о работе — создал внутренний канал в Slack и выкладывал туда скриншоты прогресса каждые несколько минут (22:51).
Claude, который чинит сам себя
Дальше про то, во что это превращается на масштабе (28:03).
В Anthropic завели канал в Slack, где Claude запускает регулярные задачи по поддержке собственных кодовых баз — консольной, iOS, Android и десктопной.
- Чистка мёртвого кода. Промпт длиной в одно предложение. Каждый день ищет мёртвый код статическим и динамическим анализом и открывает пул-реквест на удаление. Анализ ему никто не подсказывал, он придумал сам (28:32)
- Выкатка экспериментов, которые уже раскатаны на всех: удаляет ветвление из кода и отгружает
- Написание тестов для мест без покрытия
- Удаление тестов, которые не нужны — бесполезных, добавленных старыми моделями или людьми когда-то
- Полиция абстракций. Ищет по всем базам почти одинаковые абстракции, которые за годы построили по-разному, и сводит их в одну (29:12)
Таких регулярных задач у них сейчас двадцать или тридцать, они идут ежедневно по всем кодовым базам (29:43).
Сотни агентов в день, иногда тысячи. Это работа, на которую раньше уходили десятки или сотни инженеров (29:59).
Цель, к которой они идут, — полностью автоматизированная поддержка приложений. Б. Черный говорит, что они ещё не там, но на этом пути.
Ещё раз
Вместо этого — эмпирика. Дать задачу, которая слишком трудна. Дать инструменты для проверки — те же, которыми пользовались бы вы сами. Посмотреть, где буксует. Починить: промптом, скиллом или, если не хватает контекста, доступом к нужным данным.
И честная оговорка про масштаб утверждений (30:50). «Программирование решено» — это про тот тип кода, которым занимается он сам. Но не для всех!
- глубокий системный код Claude всё ещё буксует
- распределённые системы тоже
- выверка интерфейса до пикселя, тут Opus 5 сильно прибавил в зрении, но идеала нет
Чему всё ещё учиться руками
Что студентам всё ещё осваивать по-старому (32:41)?
Черный отвечает своей историей. Программировать он научился в средней школе на калькуляторе TI-83, на бейсике. Причина была практическая: он хотел лучше сдавать контрольные по математике и написал решатель.
Оценки поднялись. Он купил кабель и раздал программу одноклассникам, у них тоже поднялись. Потом математика усложнилась, бейсика перестало хватать, и к матанализу ему пришлось выучить ассемблер, чтобы написать решатель получше.
Вывод из этого он делает такой.
Учите не только информатику, а то, как её применять. Продуктовое чутьё, деловое чутьё, работу с данными, умение говорить с пользователями. Вот это стоит осваивать руками.
А про сам подход к моделям — то, что он повторяет в разговоре чаще всего (31:38). Забудьте всё, что знали о прошлых моделях. Забудьте теорию, которую учили на курсе. Посмотрите на модель, попробуйте задачу, увидьте, где она буксует, и подстройтесь.
Это перестало быть теоретической наукой. Это стало наукой опытной.
<< Спасибо, что дочитали, дальше будет больше разборов других выступлений Startup School ! >>