Когда агенту нужен калькулятор: исполнение кода
🤔 Зачем это читать
Финансовый аналитик выгружает в AI-чат таблицу из месячного отчёта и просит: «Посчитай сумму по столбцу „Выручка" и выведи, на сколько процентов это больше прошлого месяца» (в прошлом месяце было 12 710 000 ₽). Ответ приходит мгновенно, аккуратно оформленный: «Итого 14 280 500 ₽, рост на 12.4%». Цифры красивые, ровные, уверенные. Он вставляет их в презентацию для совета директоров. А на совещании кто-то берёт калькулятор, складывает тот же столбец вручную — и получает 13 905 200 ₽, то есть рост всего на 9.4%. Разница в итоге почти на 400 000 ₽. Модель не сложила числа. Она придумала правдоподобный итог, потому что её попросили число, а складывать в столбик она толком не умеет.
Знакомо? Похожая ловушка ждёт на каждом «посчитай»: маржу, НДС, скидку, остаток на складе, разбивку бюджета по месяцам. Снаружи ответ выглядит как работа калькулятора — ровный, точный, без сомнений в голосе. Внутри это работа угадайки: модель прикинула, какое число «обычно» стоит в таком ответе, и выдала его. Иногда угадала. Иногда промахнулась на сотни тысяч. И тон у правильного и у выдуманного ответа абсолютно одинаковый.
После этой темы ты будешь сходу различать две ситуации: где модели можно доверить прикидку «на глаз» — и где цифра обязана пройти через настоящий калькулятор, то есть через инструмент-исполнение кода. Это убирает целый класс дорогих ошибок «AI ошибся в арифметике» — и убирает не уговорами модели, а правильным устройством процесса.
Задержись на 10 секунд. Вспомни последний раз, когда ты просил AI что-то посчитать — сумму, процент, разницу — и взял число как есть, не перепроверив. Отчёт, бюджет, прайс, прогноз. А ты точно знаешь, что оно посчитало, а не придумало? Подержи эту сцену в голове — к концу страницы ты поймёшь, как отличить одно от другого заранее.
⚖️ Повар прикидывает на глаз, а не взвешивает
В теме про инструменты агента мы уже договорились: модель сама по себе только думает и говорит, а всё «сделать» — поиск, файлы, отправку — ей приделывают отдельными инструментами, «руками». Калькулятор — ровно такая же рука. Но чтобы понять, зачем она вообще нужна повару, который вроде бы умён, — начнём с кухни.
Представь опытного шефа. Он готовит по насмотренности (напомню: насмотренность — это что модель начиталась гор текста раньше и теперь складно продолжает по образцу). У такого шефа потрясающий глазомер на привычное: щепотку соли, горсть муки, «примерно стакан» бульона — он сыпет на глаз и почти не ошибается, потому что делал это тысячи раз.
А теперь дай ему задачу: «Отмерь ровно 1 437 граммов муки на эту партию». Тут глазомер ломается. Он прикинет «ну, где-то полтора кило» — и промахнётся на сотню-другую граммов. Не потому что плохой повар. Потому что глаз умеет прикидывать похожее, а не отмерять точное. Для точного нужны весы.
Языковая модель считает ровно так же, как этот шеф отмеряет на глаз. Внутри она не складывает числа столбиком, как делал бы калькулятор. Она предсказывает, какое число правдоподобно стоит дальше в тексте — по той же насмотренности. На простом («два плюс два») предсказание совпадает с правдой. На длинных числах, процентах, суммах по столбцу — начинает промахиваться, причём уверенно и красиво.
🧮 Что такое «дать калькулятор» (исполнение кода)
Калькулятор для модели устроен так же, как любой другой инструмент из этого модуля (в 4.1 это называли вызовом инструмента, по-английски tool use / function calling). Модель не считает сама — она выдаёт текст-команду в духе «вот эти числа надо точно сложить и поделить». Рядом стоит обычная программа-исполнитель: она берёт команду, реально проводит вычисление — строго, как калькулятор, — и кладёт точный результат модели обратно. И только теперь модель пишет тебе ответ, опираясь уже на посчитанное, а не на угаданное.
На практике этот «калькулятор» часто умнее простого сложения. Под капотом модель пишет короткую программу-расчёт (тебе её обычно не показывают), а исполнитель её запускает. Поэтому такой инструмент и зовут исполнением кода (по-английски code execution) — модель сочиняет точный расчёт, а отдельная программа его выполняет вместо угадывания. Это даёт не только сложение, но и проценты, разбивки, сортировки, сверки двух таблиц — всё, что требует строгости.
Важная деталь про безопасность: чужой код нельзя запускать где попало. Поэтому его исполняют в песочнице (по-английски sandbox) — это изолированная коробочка, отгороженная от твоих настоящих файлов и систем. Как отдельный закуток на кухне с собственной разделочной доской: что бы там ни напортачили, до основной кухни и до кладовой грязь не доберётся. Считать — пожалуйста, а вот залезть в твою базу или удалить файл оттуда нельзя.
ты_попросил = «Сложи столбец „Выручка" и посчитай рост к прошлому месяцу»
# шаг 1 — работает МОЗГ (модель): только прикидка, не счёт
без калькулятора модель угадала бы итог «по насмотренности» → риск выдумки
# шаг 1-правильно — модель НЕ считает, а выписывает требование на расчёт
модель говорит: «нужен точный расчёт: сумма столбца и процент роста»
# шаг 2 — работает КАЛЬКУЛЯТОР (исполнение кода в песочнице)
исполнитель строго складывает числа → итог = 13 905 200 ₽
исполнитель строго делит → рост = 9.4%
исполнитель кладёт точные числа обратно модели
# шаг 3 — снова МОЗГ: оформляет ответ по ПОСЧИТАННОМУ
модель пишет: «Итого 13 905 200 ₽, рост 9.4% к прошлому месяцу»
# → без шага 2 модель выдала бы красивое, но выдуманное число тем же тоном
🎯 Где весы обязательны, а где хватит глаза
«Посчитай НДС по счёту клиенту» — на весы. «Прикинь, во сколько примерно обойдётся кампания» — на глаз. Разница не в сложности задачи, а в том, уходит ли цифра в дело. Отсюда и главный навык: не «всегда включать калькулятор», а решать по ситуации. Ты владелец кухни, ты ставишь правило: на каких задачах повар обязан встать на весы, а где можно довериться его глазу. Грубая, но рабочая линия раздела.
Весы обязательны — там, где число уходит в дело и цена ошибки реальная: суммы в отчётах и счетах, проценты и маржа, НДС и налоги, остатки на складе, разбивка бюджета, сверка двух таблиц, любая цифра, которую ты понесёшь руководству, клиенту или в документ. Здесь промах на доли процента — это потерянные или приписанные деньги, и «примерно» не годится.
Глаза достаточно — там, где нужна прикидка, а не точность до копейки: «насколько примерно вырастет нагрузка, если удвоить поток заявок», «грубо прикинь порядок бюджета на кампанию», «это тысячи, десятки тысяч или миллионы?». Когда ты сам понимаешь, что просишь оценку «на пальцах», и не собираешься выдавать её за точный расчёт, — модели можно довериться, как доверяешь опытному коллеге, который быстро прикинул в уме.
Правило одной фразой: точные деньги и проценты — на весы (калькулятор), прикидка порядка величины — можно на глаз. И отдельно держи в голове коварный случай: если ты просил прикидку, а потом понёс это число как точное — виноваты не весы и не глаз, а ты, перепутавший одно с другим.
🎮 На глаз или на весы?
Шесть запросов к AI. По каждому реши: можно довериться устному счёту модели (это прикидка, точность не критична) или задачу обязательно отдать калькулятору (исполнение кода — цифра уходит в дело, нужна точность)? Жми кнопку — сразу увидишь разбор. Это не экзамен, а тренировка того самого чутья на цифры.
📖 Ключевые понятия
- Счёт «на глаз»
- То, как модель считает сама по себе: не складывает числа строго, а предсказывает правдоподобный результат по насмотренности. На простом совпадает с правдой, на длинных числах и процентах — промахивается, причём уверенным тоном. Хорошо для прикидки, опасно для точных денег.
- Исполнение кода (code execution)
- Инструмент-калькулятор для модели. Модель не считает сама, а выписывает точный расчёт; отдельная программа-исполнитель его строго выполняет и возвращает результат. Так получают точные суммы, проценты, сверки — вместо угадывания. Это «весы» вместо «на глаз».
- Песочница (sandbox)
- Изолированная коробочка, в которой запускают расчёт, отгороженная от твоих настоящих файлов и систем. Отдельный закуток с собственной доской: что бы там ни напортачили, до основной кухни и кладовой не доберётся. Считать можно, лезть в твои данные — нет.
- Прикидка vs точный расчёт
- Разрез, который решает, нужен ли калькулятор. Прикидка — порядок величины «на пальцах» (можно доверить модели). Точный расчёт — цифра, которая уходит в отчёт, счёт или документ (обязан идти через калькулятор). Беда начинается, когда прикидку выдают за точный расчёт.
🛡️ Частые заблуждения
«Модель такая умная — посчитать-то сумму уж точно сможет без ошибок»
Ум модели — про то, как складно она думает и формулирует, а не про арифметику. Считать строго она сама не умеет: предсказывает правдоподобное число, а не складывает столбиком. Чем сильнее модель, тем убедительнее звучит её ответ — но убедительность и правильность тут разные вещи. Точный счёт даёт только приделанный калькулятор.
«Если ответ выглядит точным — ровное число, проценты с десятыми — значит, оно посчитано»
Наоборот: красивая точность ни о чём не говорит. Выдуманное «12.4%» выглядит ровно так же убедительно, как посчитанное «9.4%» — модель умеет имитировать вид точного расчёта, не делая его. Единственная гарантия — что число прошло через калькулятор, а не что оно красиво выглядит.
«Раз модель один раз посчитала верно, значит, ей можно доверять цифры и дальше»
Угадайка иногда угадывает — особенно на простом. Но «один раз совпало» не делает её калькулятором: на следующем, более длинном расчёте она так же уверенно промахнётся. Надёжность даёт не везение модели, а правильное устройство процесса — точные цифры всегда через инструмент, без исключений «по настроению».
🧠 AI-чутьё (AI Judgment)
Где цифра уходит в дело — счёт обязан идти через инструмент, а не через угадывание
Вот рамка, которую стоит носить с собой: к любому числу от AI прикладывай вопрос — это посчитано или придумано? Если ответ «не знаю» или «выглядит точным, значит, наверное, посчитано» — это уже красный флаг. Модель сама по себе не считает, она угадывает правдоподобное; и пока расчёт не прошёл через калькулятор (исполнение кода), любая цифра — это прикидка с уверенным лицом, не факт.
Этот один разрез убирает целый класс дорогих ошибок — тех самых «AI ошибся в арифметике», которые всплывают на совещании, когда кто-то догадался перепроверить. И убирает их не уговорами («посчитай повнимательнее») — уговоры не превращают глаз в весы. Убирает устройством процесса: где цифры важны, там между моделью и ответом обязан стоять калькулятор. Это решение владельца, а не повара.
Практический след на будущее: когда дойдём до проектирования своего AI-решения, по каждой задаче с числами спрашивай себя — «здесь нужна точность или хватит прикидки?». Где нужна точность, в схему сразу закладывай инструмент-счёт. Это дешевле и надёжнее, чем потом ловить выдуманные цифры в готовых отчётах.
🎯 Практика
Одно задание на пять минут — оно превращает «AI ошибается в счёте» из абстракции в твой личный, проверенный руками факт. Если хочешь увидеть разницу руками, а не на словах — вот короткий эксперимент, три шага:
- Берёшь реальный столбец чисел со своей работы — например, 8–10 сумм из любого отчёта (можно слегка изменить значения, если данные чувствительные). Складываешь их сам на калькуляторе и записываешь точный итог.
- Дальше отдаёшь тот же столбец AI-чату и просишь: «Сложи эти числа и выведи сумму». И сравниваешь с твоим калькулятором. Совпало до рубля? Промахнулось? На сколько? Заодно можно проверить процент: «на сколько процентов число X больше числа Y» — и сверить вручную.
- А если в твоём чате есть режим, где AI реально считает (часто это называется «анализ данных» или «исполнение кода» — модель пишет расчёт и показывает результат), стоит включить его и повторить. Тогда разницу видно своими глазами: где «на глаз», а где «на весах». Это и есть твой главный вывод из темы — увиденный, а не прочитанный.
Помнишь ту сцену из начала — где ты взял число от AI, не перепроверив? Теперь видно: без калькулятора оно посчитано «на глаз», тем же уверенным тоном, что и правда. Где цифра уходит в дело — ставь повара на весы.