В работе. Это заметка, а не готовый текст. Живой эксперимент — и я публикую его состояние, а не жду вердикта, который может и не наступить. Дополнение к первой части, второй и третьей моего рассказа о настройке.

Оба моих агента подключают общую библиотеку навыков — obra/superpowers — смонтированную только на чтение, так что ни один из них не может втихую отредактировать собственные инструкции. Эта деталь про «только на чтение» — не паранойя ради паранойи: слой инструкций, который агент может переписать, слоем инструкций не является.

Навыки — это markdown-файлы, которые срабатывают сами, когда агент узнаёт ситуацию, к которой они относятся. Ставить в проект нечего: ни среды исполнения, ни привязки к поставщику, ничего, что всплыло бы в списке зависимостей. Отключи я это монтирование завтра, всё продолжило бы работать — просто чуть хуже.

Что оно изменило на самом деле

Честный итог за несколько месяцев: скорость правда выросла, но не там, где я ожидала. Код не появляется быстрее. Гораздо меньше кода идёт в мусор.

Эту разницу я разглядела не сразу. Я мерила не то — как быстро что-то появилось, — тогда как дорогая часть моей недели никогда не была печатанием. Дорого обходилось другое: аккуратно построить не то, обнаружить это через два часа и не иметь чистого пути назад.

Те, что изменили мой рабочий день:

  • brainstorming — отказывается что-либо строить, пока не вытащит из разговора спецификацию и я её не подпишу. Для человека, который думает требованиями, а не кодом, это самый ценный навык в библиотеке. И он же ловит то, что мне даётся хуже всего: описывать нужный результат вместо реализации, которую я себе вообразила.
  • writing-plans и executing-plans — план ложится в файл, разбивается на шаги и проходится с контрольными точками. Альтернатива — агент, который исчезает на час и возвращается с сюрпризом, а сюрприз обходится дорого даже когда он приятный.
  • systematic-debugging — обрывает спираль «попробуем правку, попробуем другую, попробуем снова первую», которая умеет тихо съесть целый вечер.
  • verification-before-completion — агент обязан запустить сделанное и показать мне вывод, прежде чем ему позволено сказать, что работает. Мне трудно переоценить, насколько он ценен. «Готово» и «мне кажется, готово» — разные утверждения, и раньше мне вручали второе под видом первого.
  • requesting-code-review — ещё один проход по работе до того, как она дойдёт до меня.

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

Теперь сомнение

Есть совет, к которому я всё возвращаюсь и которому так и не последовала: время от времени снимать всю лишнюю обвязку и какое-то время работать с голым инструментом.

Беспокоят меня в этом две вещи.

Модели двигаются под лесами. Конструкция, построенная год назад, чтобы компенсировать реальную слабость, сегодня может мешать тому, что модель без посторонней помощи делает лучше. Навыки пишутся против снимка поведения модели, и никто не сообщает, когда этот снимок устарел. Навык, который когда-то предотвращал сбой, в итоге начинает обеспечивать объезд ямы, засыпанной несколько месяцев назад.

Каждый слой инструкций занимает контекст. Навыки, правила, хуки, напоминания — всё это текст, который приходит раньше моего вопроса.

Где я в итоге оказалась

Вердикта у меня нет. Есть настройка, с которой с навыками ощущается лучше, и понимание, что «ощущается лучше» — ровно тот тип утверждения, который дольше всего живёт непроверенным. В чужом анализе я придралась бы к нему немедленно, и это неплохой признак, что придраться стоит и в своём.

Вопросы, на которые у меня пока нет ответа:

  • Как вообще выглядит честная проверка? Одна задача дважды, с навыками и без, — но второй заход уже не независим: к этому моменту я знаю задачу.
  • Какие из них компенсируют модель, а какие — меня? Второй вид должен остаться, как бы хороши ни стали модели.
  • Есть ли подмножество поменьше, которое забирает бо́льшую часть пользы? Чутьё говорит, что основное несут «сначала спецификация» и «докажи, прежде чем заявлять», а остальное — уточнения.
  • Как я замечу, что навык устарел?

Обновлю эту заметку, когда проведу эксперимент, а не когда подумаю о том, чтобы его провести. Разница, к сожалению, и есть вся суть.