Инструкции для ИИ-чата: одни для команды, другие для вас

Productivity

Раньше каждый разговор с ИИ-чатом в общем рабочем пространстве начинался одинаково. Отвечай по-русски. Задачи лежат на доске Sprint. Заметка готова, когда она в колонке Done. Заметкам со встреч ставь тег meeting. Люди писали свои внутренние правила в первом сообщении, ассистент следовал им десяток реплик, а следующий разговор начинался с нуля.

В Notez v0.10.0 эти правила стали постоянными. Вы пишете их один раз, и каждый разговор начинается уже с ними.

Два уровня инструкций

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

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

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

Почему для каждого рабочего пространства, а не для всего аккаунта

Личные инструкции сохраняются для каждого рабочего пространства отдельно, а не один раз на весь аккаунт. У большинства людей, которые работают в общем пространстве, рядом есть и личное, и в них нужно разное: в командном ответы сжатые и на английском, в личном вы думаете вслух на своём языке. Один общий набор был бы неправильным хотя бы в одном из них.

Цена небольшая. Если нужен одинаковый стиль везде, вставьте текст дважды. А если вы уходите из рабочего пространства, инструкции, которые вы для него написали, уходят вместе с вами.

Чьи инструкции главнее, если они расходятся

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

Записать это правило было легко. Заставить модель его соблюдать — нет.

Правило, которое модель проигнорировала

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

Потом я проверил так, как этим будут пользоваться люди: в настоящем браузере, с настоящей моделью. Владелец задал Всегда отвечай по-французски. Участник того же рабочего пространства задал Всегда отвечай по-немецки и ещё Заканчивай каждый ответ словом MANGO — метку, которая ни с чем не конфликтует, чтобы было видно, уцелеет ли безобидная половина его инструкций.

Чат участника ответил по-немецки. Внизу стояло MANGO.

Модель прочитала общее правило, блок владельца, блок участника и сделала то, что языковые модели обычно делают с конкурирующими инструкциями: выполнила ту, что прочитала последней. Тест, который проверяет, что промпт говорит то, что вы имели в виду, не проверяет, что модель делает то, что вы имели в виду.

Исправил я это структурой, а не более громкими формулировками:

  • Теперь блок участника идёт первым, а блок владельца последним, так что эффект последнего прочитанного работает на правило, а не против него.

  • Каждый блок сам говорит о своём приоритете прямо над своим текстом, если есть оба блока. В блоке участника сказано следовать ему, только если он не противоречит инструкциям владельца ниже; в блоке владельца — что он важнее инструкций пользователя выше.

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

Тот же тест, та же модель, два прогона: оба раза по-французски, оба раза MANGO. Правило владельца выдержало, а неконфликтующая инструкция участника всё равно выполнилась. Теперь юнит-тест закрепляет этот порядок и строки о приоритете, и прежде чем ему доверять, я убедился, что без этих строк он падает.

Что инструкции не меняют

Инструкции управляют тоном, языком и договорённостями. Устройство ассистента они не переписывают. Ни один из уровней не может изменить:

  • формат ссылок, благодаря которому заметка, упомянутая в ответе, становится кликабельной,

  • правила о том, какие инструменты использовать и как,

  • подтверждения, которых требуют эти правила: чат по-прежнему называет заметку и спрашивает, прежде чем отправить её в корзину.

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

Где они стоят в промпте и почему так дешевле

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

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

Как писать инструкции, которые работают

Что я понял, когда писал свои:

  • Пишите конкретно. Задачи лежат на доске Sprint; задача готова, когда она в колонке Done работает лучше, чем пойми наш рабочий процесс.

  • Называйте вещи настоящими именами. Ассистент и так видит ваши теги, свойства и колонки. Инструкции объясняют ему, что они значат.

  • Пишите коротко. Каждый набор не длиннее 2000 символов и уходит с каждым сообщением, поэтому расходует месячные токены чата владельца рабочего пространства. Обычно хватает одного абзаца.

  • Командные правила — в рабочее пространство, вкусы — в «Мои настройки». Если это важно только вам, это личное.

  • Проверяйте настоящим вопросом. Спросите то, на что инструкции должны повлиять, и посмотрите, повлияли ли.

Попробуйте

Откройте Настройки. Если вы владелец рабочего пространства, на вкладке Рабочее пространство после блока Участники есть раздел Инструкции для ИИ-чата. У всех есть Мои инструкции для ИИ-чата внизу вкладки Мои настройки. Сохраните, нажмите ⌘J и спросите что-нибудь: следующий ответ уже будет им следовать.

Полное описание, в том числе что происходит, когда вы переключаетесь на другое рабочее пространство или уходите из него, есть в Центре помощи: Инструкции для ИИ-чата.

Читайте также