Инструменты Bloom: Apply ⏱ 8 мин точка контроля

Инструменты — это просто структурный вывод

🧊 Won't Have 💧 Could Have ☀️ Should Have 🔥 Must Have
☀️ Should Have
Снимает главный страх — «агент сам залезет в мои системы». Прочитаешь — увидишь, где именно стоит точка контроля.

🤔 Зачем это читать

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

Знакомо? Этот страх — «агент сам что-то натворит с моими системами» — самый частый стопор для AI-проектов в бизнесе. И он держится ровно на одном непонимании: люди думают, что модель действует напрямую. Сказала — сделала. Как будто между её «хочу списать товар» и реальным списанием нет вообще ничего.

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

После этой темы ты сможешь показать пальцем, где именно стоит точка контроля в любом разговоре про «агент подключится к нашим системам». И вместо паники «оно само всё сделает» начнёшь задавать спокойный рабочий вопрос: «окей, а что в этой прослойке — что она пропускает, что блокирует, где спрашивает человека?». Это и есть разница между «боюсь» и «управляю».

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

🧾 Повар не лезет в сейф — он выписывает требование

В прошлой теме про инструменты агента мы говорили, что у повара-модели есть «руки» — техника и кладовая, через которые он что-то делает в реальном мире. Теперь заглянем под капот этих рук и увидим главное: повар не трогает ничего сам. Совсем.

Представь дорогую кладовую ресторана — там лежит чёрная икра, выдержанное мясо, всё под замком. Повару понадобился килограмм лосося. Что он делает? Он не идёт и не вскрывает сейф своим ключом — у него и ключа-то нет. Он берёт бланк и выписывает требование: «Кладовая. Выдать: лосось, 1 кг». Подписывает. И отдаёт кладовщику.

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

Между намерением и действием — всегда прослойка
🧑‍🍳
Повар (модель)
Выписывает требование: «выдать лосось, 1 кг». Только бумага, не действие.
🛡️
Кладовщик (код)
Читает, проверяет по регламенту, решает: выдать / отказать / позвать владельца.
🏬
Склад (твоя система)
Реальное действие происходит здесь — и только если кладовщик пропустил.
Модель не дотягивается до склада напрямую. Её «хочу» всегда проходит через кладовщика-код. Хочешь поставить замок построже — настраиваешь кладовщика, а не модель.

📋 Под капотом инструмент — это заявка, а не действие

Теперь без метафоры, прямо. В прошлой теме мы разбирали структурированный вывод (structured output — когда модель выдаёт ответ не вольным текстом, а по строгой схеме, как заполненный бланк) — загляни в тему про него, если подзабылось. Так вот, секрет всей этой темы помещается в одну фразу: использование инструментов (tool use) — это и есть структурированный вывод. Никакой особой магии «действия» там нет.

Когда говорят, что «модель вызвала инструмент» (это называют вызовом функций, function calling — когда модель просит запустить конкретную функцию с конкретными данными), на самом деле модель сделала ровно одно действие, своё единственное: выдала текст. Только текст этот — не ответ тебе, а аккуратно заполненный бланк-заявка: имя инструмента, который нужен, и аргументы — что именно с ним сделать.

Вот так выглядит «заявка», когда модель «решает списать товар»:

Псевдокод (на пальцах) · что модель на самом деле «выдаёт», когда «списывает товар» # это НЕ настоящий код, а логика на человеческом языке
# модель не списывает товар. Она выдаёт ВОТ ТАКОЙ текст-заявку:

заявка = {
  имя_инструмента: «списать_со_склада»,
  аргументы: { товар: «лосось», количество: 1, единица: «кг» }
}

# всё. На этом работа модели закончена. Это просто заполненный бланк.
# никакой товар ещё НЕ списан. Склад даже не в курсе, что есть такая заявка.

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

🛡️ Между намерением и действием всегда стоит код

А теперь — кто делает дело. Заявку забирает отдельная программа — её называют по-разному (обвязка, прослойка), но суть одна: это обычный код, который написали разработчики, и в нём нет никакого AI. Этот код — наш кладовщик. Он получает заявку и идёт по шагам, которые задал человек:

Вот в этом — вся соль темы и весь ответ напуганному коллеге с совещания. Модель физически не может ничего сделать с твоими системами напрямую. У неё нет рук, нет ключа, нет доступа. Всё, что она умеет, — выписать бумажку с просьбой. А выполнять эту просьбу или нет, решает код, который ты контролируешь. Этот код — и есть твоя точка контроля.

Что код-кладовщик делает с одной и той же заявкой
Пропустить
Списать 1 кг лосося — в пределах нормы. Код выполняет.
🚫
Отказать
Списать 900 кг разом — против регламента. Код не выполняет, пишет отказ.
🙋
Спросить человека
Сумма крупная или необычная — код ставит на паузу и ждёт твоего «да».
Заявка от модели одна и та же. Решение — за кодом. Все три двери настраивает человек, не нейросеть.

Покажу тот же кладовщик псевдокодом — чтобы было видно, что вся «логика контроля» написана обычными человеческими правилами, а не AI:

Псевдокод (на пальцах) · код-кладовщик получает заявку и решает сам # это НЕ настоящий код, а логика на человеческом языке
получили заявку от модели: списать «лосось», количество N

# шаг 1 — проверка по регламенту, который написал ЧЕЛОВЕК
если инструмент не из разрешённого списка → отказать, записать в журнал
если N больше дневной нормы → отказать, сообщить модели «слишком много»
если списание дороже 50 000 ₽ → поставить на паузу, спросить человека

# шаг 2 — и только если все проверки пройдены — реальное действие
иначе → выполнить списание на складе, вернуть модели результат

# → модель ни на одном шаге не трогала склад. Она только попросила.
# → весь контроль — в этих строчках. Их пишешь и согласовываешь ты.

💡 Почему этот разрез снимает страх (и что с ним делать)

Ты тут владелец, а не разработчик, который пишет кладовщика. Но именно тебе принимать решение «подключать или нет», и именно тебе важно понимать, где рычаги. Три рабочих вывода.

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

🎮 Прими решение за код-кладовщика

Пять ситуаций. В каждой два шага. Сначала разберись, что на самом деле произошло: модель действительно «сама сделала» — или только выписала заявку? А потом — главное — реши как ты настроишь код-кладовщика на эту заявку: пропустить, поставить лимит, спросить человека или вообще отказать. Это и есть работа владельца — не угадать определение, а приложить три двери из иллюстрации к новому случаю. Жми кнопку — сразу разбор. Это не экзамен, а тренировка.

📖 Ключевые понятия

Использование инструментов (tool use)
То, что под капотом выглядит как «модель что-то сделала». На деле модель не делает — она выписывает заявку: имя нужного инструмента и аргументы к нему. Это и есть структурированный вывод, а не отдельная «способность действовать».
Вызов функций (function calling)
Частный случай того же: модель просит запустить конкретную функцию (списать товар, отправить письмо, посмотреть остаток) с конкретными данными. Просит — текстом. Запускает функцию отдельный код.
Заявка (имя + аргументы)
Содержимое того самого бланка от модели: что за инструмент нужен и что именно с ним сделать. Это намерение, выраженное текстом, а не само действие. Бумага есть — лосось ещё в кладовой.
Точка контроля
Тот самый код-кладовщик между моделью и твоей системой. Он получает заявку, проверяет по правилам, которые задал человек, и решает: выполнить, отказать или спросить человека. Безопасность живёт здесь, а не в модели.

🛡️ Частые заблуждения

«Раз агент опасен для систем — значит, единственная защита это вообще не давать ему туда доступ»

Это ложная развилка «или полный доступ, или ничего». Доступ модель и так получает не напрямую, а через код-прослойку — и именно её настраивают по шагам. Не «пускать / не пускать», а «что этому коду разрешить»: дать только инструменты-«смотреть», поставить лимиты на суммы, потребовать подтверждение на необратимом. Отключить всё — это отказ от пользы там, где хватило бы аккуратной настройки замка.

«Чем мощнее и новее модель, тем она опаснее для моих данных»

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

«Раз модель „решила" выполнить действие — значит, оно уже выполнено»

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

🧠 AI-чутьё (AI Judgment)

Перестань бояться автономии — найди точку контроля

Вот рамка, которую стоит носить с собой: к любому «агент подключится к нашим системам и будет сам…» мысленно прикладывай вопрос — а где код между ним и системой, и что у этого кода в правилах? Этот вопрос мгновенно переводит разговор из плоскости страха («оно само что-то натворит») в плоскость управления («покажите мне прослойку и её регламент»).

Работает это так. Модель не действует напрямую — никогда. Она выписывает заявку, а исполняет отдельный код, который написали и согласовали люди. Значит, у тебя всегда есть место, куда поставить замок: пропускать только разрешённые инструменты, ограничить суммы и объёмы, потребовать человеческого «да» на дорогих и необратимых шагах. Страх автономии лечится не «давайте не будем подключать AI», а «давайте решим, что именно этот код пропускает».

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

🎯 Практика

Одно задание на пять минут — оно превращает «точку контроля» из абзаца в книжке в конкретный замок на твоей системе.

  1. Возьми ту систему со своей работы, которую тебе было бы страшнее всего отдать AI (ту самую, из микромомента в начале: касса, склад, рассылка, бухгалтерия).
  2. Выпиши три действия, которые AI-агент теоретически мог бы там запросить. Например, для склада: «посмотреть остаток», «списать товар», «заказать у поставщика на крупную сумму».
  3. Теперь для каждого реши, как должен поступить код-кладовщик: какие из них пропускать свободно, какие — только в пределах лимита, а какие — обязательно через твоё подтверждение. Это и есть проектирование точки контроля. Заметь, как страх «оно само» сменился на спокойное «вот мои правила».

Помнишь страх из начала — «нейросеть сама залезет в наш склад»? Теперь видно: сама она туда не залезет. Она выпишет заявку, а исполнит код, в котором записаны твои правила. Замок на двери ставишь ты — модель только стучится.

🔗 Что дальше

Связанные темы:

Дальше в курсе: