Читающие и пишущие инструменты: внедрять безопасно
🤔 Зачем это читать
Подключили AI-агента к интернет-магазину. Дали ему сразу всё: смотреть заказы, менять статусы, оформлять возвраты, списывать деньги с карты клиента. На демо красиво — клиент пишет «хочу вернуть», агент сам всё оформляет, деньги уезжают обратно. Запустили на живых людях. На третий день агент неправильно понял одно сообщение и оформил возврат там, где возврата не было — реальные деньги ушли со счёта компании. А потом ещё раз, потому что система переспросила, и он «подтвердил» повторно. Дыра в кассе, разбирательство, агента в тот же вечер отключили.
Знакомая логика? Или другой вариант, ровно наоборот. На совещании предлагают AI-помощника для поддержки, и кто-то рубит на корню: «Нет, агенту нельзя доверять наши системы, он наошибается и всё сломает». И хорошая идея умирает, хотя бо́льшая часть пользы тут — просто узнать остаток на складе или статус заказа и сказать клиенту. От этого ничего не ломается. Ребёнок с водой выплеснут.
Обе беды — от того, что инструменты свалили в одну кучу. А они бывают двух очень разных пород: одни только читают (узнать, посмотреть, проверить — ничего не меняют в мире), другие пишут (списать, оформить, отправить — меняют необратимо). Дать агенту читать — почти бесплатно по риску. Дать писать без присмотра — это и есть тот самый ключ от сейфа, который вручили стажёру в первый день.
После этой темы ты сможешь сам разложить любой набор инструментов на «читающие» и «пишущие» и решить, что агенту дать сразу, что — под контролем человека, а что пока не давать вовсе. Это прямой навык владельца: не «можно ли вообще доверять AI», а «какую руку, на каких условиях». Очень большая доля провалов с агентами — именно здесь.
Задержись на 10 секунд. Вспомни любое действие на своей работе, которое нельзя отменить одной кнопкой: отправленное клиенту письмо, проведённый платёж, удалённый документ. А теперь представь, что это сделал не ты, а программа, которая иногда ошибается — и сделала сама, ночью, без спроса. Подержи это чувство в голове: ровно его мы будем превращать в конкретное правило.
🧑🍳 Стажёр, которому пока не дают ключи от сейфа
В теме про инструменты агента ты уже видел, что инструмент (по-английски tool, использование инструментов = tool use) — это «рука», которую приделывают к модели: поиск, доступ к базе, отправка письма. Модель сама ничего не трогает, она только говорит словами «вызови вот этот инструмент», а исполняет обычная программа. Здесь мы берём те же руки и задаём один вопрос, который меняет всё: эта рука что-то меняет в реальном мире — или только смотрит?
Представь нового стажёра на кухне. В первый день ты не даёшь ему ключи от сейфа и право подписывать счета. Не потому, что он плохой, — а потому, что он ещё не знает кухню, и цена его ошибки с сейфом несопоставима с ценой ошибки «принёс не тот заказ». Зато ты спокойно поручаешь ему носить тарелки и отвечать гостям, какие сегодня есть блюда. Ошибётся — переспросят, поправишь, ничего страшного.
Вот ровно так стоит смотреть на инструменты агента. Носить заказы и отвечать на вопросы — это читающие инструменты. Открыть сейф и провести деньги — это пишущие. Стажёр (агент) ещё не заслужил ключи. Сначала пусть поработает руками, которые ничего не ломают.
👀 Читающие руки: узнать — почти бесплатно по риску
Читающий инструмент (read-only, «только чтение») — это рука, которая узнаёт и приносит информацию, но ничего не меняет. Агент посмотрел и доложил. Мир после этого точно такой же, как до.
Примеры из обычного бизнеса:
- узнать остаток товара на складе;
- посмотреть статус заказа клиента;
- найти в базе знаний ответ на вопрос;
- проверить, оплачен ли счёт.
Что будет, если агент тут ошибётся? В худшем случае он назовёт клиенту неверный остаток или не тот статус. Неприятно — но это ошибка слова, а не ошибка дела. Её видно, её легко поправить, деньги при этом никуда не уехали. Поэтому читающие руки можно давать агенту почти смело: цена ошибки тут на порядок ниже. С них и начинают почти все, у кого внедрение получилось.
Маленькая, но важная оговорка: «читать» — не всегда совсем безопасно. Если агент читает чувствительное (персональные данные клиентов, зарплаты, медкарты), то он может это случайно показать не тому или утянуть наружу. Так что точнее правило звучит так: читающий инструмент не меняет мир, но всё равно решай, что именно ему позволено читать. К приватности мы вернёмся отдельно — пока держим в уме.
✍️ Пишущие руки: сделать — необратимо
Пишущий инструмент (write, «запись/действие») — это рука, которая меняет состояние мира. После неё что-то стало по-другому, и часто это уже не отыграть назад одной кнопкой.
Примеры:
- оформить возврат и вернуть деньги;
- списать сумму со счёта;
- отправить письмо клиенту;
- изменить или удалить заказ;
- создать заявку в работу другому отделу.
Тут цена ошибки совсем другая. Отправленное клиенту письмо уже не вернуть. Списанные деньги придётся возвращать вручную и объясняться. Удалённый заказ может не восстановиться. Это и есть необратимость — главное слово темы. Ошибка читающей руки — это «сказал неправду, переспросят». Ошибка пишущей руки — это «сделал то, что теперь надо разгребать руками, а иногда и не разгребёшь».
🪜 Лесенка: сначала смотреть, потом действовать под присмотром
Из этой разницы вырастает простое и проверенное правило внедрения. Не «дать агенту всё и надеяться» и не «не давать ничего из страха». А лесенка: поднимаешься на ступень, только когда предыдущая работает надёжно.
Шаг 2 — это и есть «человек подтверждает шаг», человек в контуре (human-in-the-loop). Целая отдельная тема дальше посвящена тому, как это устроить грамотно: где ставить кнопку «подтвердить», чтобы и безопасно, и кухня не встала от тысячи согласований. Пока запомни саму лесенку как форму ответа на вопрос «как внедрять».
🔁 Идемпотентность: повтор не должен задваивать списание
Есть ещё одна ловушка, специфичная для пишущих рук, и про неё стоит знать даже владельцу — потому что именно её часто забывают подрядчики. Называется страшным словом идемпотентность (повтор действия не задваивает результат). Звучит как заклинание, а смысл бытовой.
Представь: агент списал с клиента 5 000 ₽. Программа на секунду не ответила «готово», агент решил, что не получилось, и списал ещё раз. Итого 10 000 ₽ вместо 5 000 ₽. Клиент в ярости, вы виноваты. Вот это и есть «задвоилось»: одно и то же действие случайно выполнилось дважды.
Идемпотентность — это когда система устроена так, что повторить то же самое действие не страшно: второй вызов видит, что списание с таким номером уже прошло, и просто отвечает «уже сделано», ничего не задваивая. Как официант, который перед тем как пробить чек, смотрит: а этот заказ уже пробивали? Если да — не пробивает второй раз.
# агент решил: «списать 5 000 ₽ по заказу № 1841»
# ПЛОХО — наивно, без защиты:
списать(5 000 ₽) # вызвали дважды из-за сбоя связи → ушло 10 000 ₽
# ХОРОШО — идемпотентно, с биркой на действии:
если списание по заказу № 1841 уже было:
ответить «уже сделано, повторно не списываю»
иначе:
списать(5 000 ₽) и пометить заказ № 1841 как оплаченный
# → сколько раз ни повтори — деньги уйдут ровно один раз
Тебе не надо это программировать — это работа подрядчика. Но это ровно тот вопрос, который владелец, понимающий кухню, задаёт до запуска: «А если ваш агент случайно повторит платёж — он спишет дважды или система это поймает?» Если в ответ мнутся — пишущие руки пока не готовы. Агент по своей природе склонен пробовать ещё раз, когда что-то пошло не так (это его рабочий цикл, дальше в курсе увидишь подробно), поэтому защита от повтора для пишущих действий — не каприз, а необходимость.
🎮 Что дать агенту, а что придержать
Магазин запускает AI-агента в поддержку. Вот его набор инструментов. По каждому реши раздельно две вещи. Сначала порода: читающая рука или пишущая? Потом, видя свой ответ, — допуск: на какую ступень лесенки её поставить (дать сразу / под подтверждением человека / вообще не давать или переформулировать действие). Породу и допуск не путай: бывает читающая рука, которую всё равно нельзя пускать без рамок. Думай как владелец и взвешивай: «насколько это необратимо и что утечёт, если он ошибётся именно тут?» Разбор появится после второго ответа.
📖 Ключевые понятия
- Читающий инструмент (read-only)
- «Рука», которая только узнаёт и приносит информацию, не меняя мир: посмотреть остаток, статус, найти ответ. Ошибка стоит дёшево — это неверное слово, а не необратимое дело, его видно и легко поправить. С таких рук безопасно начинать внедрение.
- Пишущий инструмент (write)
- «Рука», которая меняет состояние мира: списать деньги, оформить возврат, отправить письмо, удалить заказ. После неё что-то стало по-другому, и часто это уже не отыграть назад. Требует контроля: подтверждения человеком и защиты от повтора.
- Необратимость
- Свойство действия, которое нельзя откатить одной кнопкой. Главный измеритель риска инструмента: чем труднее отменить последствие, тем строже контроль над тем, кто это действие запускает. Ушедшие деньги и отправленное письмо — необратимы; «пометить отменённым» вместо «удалить» — отыгрываемо.
- Идемпотентность
- Свойство операции, при котором повторное её выполнение оставляет результат таким же, как одно выполнение, — повтор не задваивает. Достигается, например, биркой на действии: второй вызов видит, что списание с этим номером уже прошло, и отвечает «уже сделано» (это способ реализации, а не само определение). Критично для пишущих рук, потому что агент по природе склонен пробовать ещё раз при сбое. Вопрос владельца подрядчику: «повторный платёж спишет дважды или система это поймает?».
🛡️ Частые заблуждения
«Если агенту вообще нельзя доверять действия — значит, AI в поддержке бесполезен»
Наоборот. Бо́льшая часть пользы — это читающие руки: узнать остаток, статус, найти ответ. Они почти бесплатны по риску и закрывают огромную долю обращений. Пишущие действия можно добавлять позже и под контролем. Отказываться от всего из-за страха перед списаниями — выплеснуть ребёнка с водой.
«Подтверждение человеком замедлит всё — проще дать агенту полную свободу»
Подтверждение нужно не на каждый чих, а только на необратимое и дорогое. Узнать статус — без спроса. Вернуть деньги — со спросом. Это не тормоз, а предохранитель ровно там, где ошибка стоит реальных денег. Полная свобода на пишущих руках с первого дня — это и есть та самая дыра в кассе при первой же ошибке.
«Возьмём модель поумнее — она не будет ошибаться, и контроль не понадобится»
Даже самая аккуратная модель иногда понимает запрос не так — это её природа, она угадывает, а не знает наверняка. Вопрос не в проценте ошибок, а в их цене. Одна ошибка пишущей руки на необратимом действии перечёркивает тысячу правильных. Контроль ставят не от глупости модели, а от необратимости последствия — это разные вещи.
🧠 AI-чутьё (AI Judgment)
Управляй не «доверием к AI вообще», а риском необратимых действий
Вот рамка, которую стоит носить с собой в любой разговор про внедрение агента: не спрашивай «можно ли доверять AI», спрашивай «что именно этот инструмент делает с миром и можно ли это отменить». Это переводит спор из религиозного («AI хороший / AI опасный») в инженерный и считаемый.
Алгоритм на три вопроса, который ты теперь можешь применить к любому набору инструментов. Первый: эта рука меняет мир или только узнаёт? Читающая — почти смело давай. Второй: если меняет — насколько это необратимо? Дешёвое и отыгрываемое можно доверить агенту в узких рамках; дорогое и невозвратное держи под человеком. Третий: защищён ли повтор? Для пишущих рук без идемпотентности любой сбой связи превращается в задвоенное списание.
И держи в голове, куда это ведёт дальше. Граница «читать / писать» — это фундамент под двумя большими темами курса: ограничители (guardrails) — что агенту в принципе запрещено трогать, и человек в контуре (human-in-the-loop) — где обязательно нужна живая подпись перед действием. Тот, кто умеет разложить инструменты по риску необратимости, уже наполовину спроектировал безопасное AI-решение. Это и есть мышление владельца: не запретить и не разрешить всё, а выдать каждой руке ровно те права, цену ошибки которых ты готов оплатить.
🎯 Практика
Одно задание на десять минут — оно превращает правило «читать против писать» в готовый кусок твоего будущего AI-проекта.
- Возьми одну реальную задачу со своей работы, которую ты хотел бы отдать AI-агенту (разбор обращений, помощь клиентам, обработка заявок — что угодно твоё).
- Выпиши все действия, которые агенту пришлось бы делать. Не ленись, штук пять-семь. Потом напротив каждого поставь метку: Ч (читающее — узнать, посмотреть, найти) или П (пишущее — изменить, отправить, списать, удалить).
- Теперь по каждому П ответь на один вопрос: можно ли это отменить одной кнопкой? Если нет — рядом напиши «человек подтверждает». Если да и действие дешёвое — пометь «можно дать агенту узко, под наблюдением».
- Посмотри на список целиком. Скорее всего, бо́льшая часть строк оказалась Ч — и это можно запускать почти сразу. А пара необратимых П — это ровно те места, где нужен человек. Поздравляю: ты только что набросал безопасный план внедрения. Сохрани его — он пригодится в финальном проекте курса.
Помнишь то необратимое действие из начала — отправленное письмо, проведённый платёж? Теперь у тебя есть язык, чтобы про него говорить: это пишущая рука, её агенту просто так не дают. И есть лесенка, чтобы дать её безопасно, когда придёт время.