3,583 papers
arXiv:2610.26836 88 19 окт. 2026 г. FREE

Authoritative Source Instruction: чтобы агент не подменял эталонный отчёт собственными файлами

КЛЮЧЕВАЯ СУТЬ
Агент посчитал верно, а ответил неверно: взял из своего файла 2.75065, обрезал до 2.750 вместо округления до 2.751 и выбрал соседний вариант. Метод «эталонный источник» позволяет заставить агента брать итоговое число из официального отчёта инструмента, а не из файлов, которые он сам наплодил по ходу работы. Три предложения в описании инструмента и в системном промпте: отчёт эталонный, бери значение оттуда, черновики не трогай. Агент больше не обрезает хвост чисел, и точность растёт на 6–8 пунктов у трёх GPT-моделей.
Адаптировать под запрос
⚡

TL;DR

Если длинный вывод инструмента лежит в файле, а не в контексте, часть моделей перестаёт смотреть в официальный отчёт. Вместо него они берут числа из собственных файлов, которые сами создали по ходу работы. Лечится это тремя предложениями в описании инструмента и в системном промпте: вот эталонный источник, он уже в нужной точности, бери значение оттуда, а не из своих файлов.

Агент посчитал правильно, но ответил неверно. В отчёте инструмента число напечатано так, как нужно: 2.751. В собственном файле агента оно длиннее: 2.75065. Модель обрезает хвост вместо округления, получает 2.750 и выбирает соседний неверный вариант. Это видно по логам: правильное значение агент получает так же часто, как раньше. Теряется шаг «из чего я отвечаю». У GPT-5.1 и GPT-5.2 в таком режиме до 60% запусков вообще не открывают отчёт. Точность падает на 8–11 пунктов. Claude почти не страдает.

Метод простой: назвать эталонный источник и запретить отвечать из черновых файлов. Просьба «округляй правильно» почти не помогает: модели всё равно обрезают. Работает указание, откуда брать значение. Это вернуло точность на 6–8 пунктов у трёх GPT-моделей. Альтернатива — класть отчёт прямо в контекст, если он помещается.

🔬

Схема метода

ШАГ 1: Определи, какой вывод инструмента — эталон (отчёт, итоговая таблица, лог)
ШАГ 2: Добавь в описание инструмента 3 предложения:
        • значения в [файл] — авторитетные и в нужной точности
        • бери значение из соответствующего раздела [файл]
        • не отвечай из своих промежуточных файлов: там значения не округлены
ШАГ 3: Продублируй эти же предложения в системном промпте / CLAUDE.md
ШАГ 4: Если отчёт короткий — положи его прямо в контекст вместо файла

Всё делается текстом, в одном промпте или файле инструкций.

🚀

Пример применения

Задача: Вы настраиваете агента в Cursor. Он считает налог ИП на УСН «Доходы минус расходы» по выгрузке из Тинькофф Бизнеса. Скрипт calc_usn.py пишет подробный report.txt, где каждая сумма округлена до рубля по правилам. Агент любит ещё и сам сохранять debug_dump.csv с копейками и десятыми долями копеек. Клиенту нужен ответ, например «минимальный налог к уплате — 123 457 ₽». Но агент берёт 123 456,78 из дампа, обрезает до 123 456 и называет цифру на рубль меньше.

Промпт (в описание инструмента и в системные инструкции):

Инструмент calc_usn.py пишет итоговый файл report.txt.
Значения в report.txt — авторитетные, они уже округлены до рубля
по правилам расчёта налога.
Для ответа бери сумму из нужного раздела report.txt.
Не отвечай из debug_dump.csv и других своих промежуточных файлов:
там значения не округлены, и при округлении можно получить
соседнюю, неверную сумму.
В ответе укажи раздел report.txt, откуда взято число.

Результат: Агент открывает report.txt и находит нужный раздел. Сумма в ответе совпадает с официальной округлённой. Дамп с копейками остаётся рабочим материалом и в ответ не попадает. Последняя строка про указание раздела — добавка к методу, в статье её нет (см. «Адаптации»).

🧠

Почему это работает

Слабость. Когда отчёт лежит в контексте целиком, он единственный источник перед глазами. Когда он в файле, он конкурирует с другими источниками, в том числе с файлами самого агента. Файлы агента короче и точнее по числу знаков, поэтому модель их охотно читает. Но числа в них не подогнаны под формат ответа. Модель их обрезает вместо округления, и ответ уезжает на соседний вариант.

Сильная сторона. Модель хорошо выполняет ясное указание, откуда брать данные. Когда ей говорят «бери из отчёта», она идёт туда: пропуск отчёта падает с ~50–60% до 0–2%, а доля верных ответов при увиденном значении поднимается до 99%.

Как метод это использует. Выбор источника ломался на стороне модели. Инструкция делает этот выбор за неё. Просьба «округляй вниз/вверх правильно» ничего не меняет, потому что поведение чтения остаётся прежним: модель всё равно идёт в свои файлы и всё равно обрезает.

Рычаги: - Название файла и раздела → чем конкретнее, тем надёжнее. «Эталонный вывод» без имени файла не работает: инструкцию нужно привязать к имени. - Объяснение причины («там значения не округлены») → помогает модели понять, зачем запрет. - Место размещения → авторы клали текст и в описание инструмента, и в каждый результат вызова. Дублируйте в системный промпт и файл инструкций. - Размер вывода → если отчёт помещается в контекст, показывайте его целиком и без инструкции. Это сработало так же и сэкономило токены.

📋

Шаблон промпта

Инструмент {инструмент} возвращает {что_возвращает}.
Значения в {эталонный_файл} — авторитетные: они напечатаны
в нужной точности ({формат_точности}).
Для ответа бери значение из соответствующего раздела {эталонный_файл}.
Не отвечай из {черновые_файлы}: там значения не округлены
или не приведены к нужному формату, и можно получить соседний,
неверный вариант.

Что подставлять: - {инструмент} — скрипт, тест-раннер, симулятор, API-обёртка. - {эталонный_файл} — отчёт, из которого берутся финальные цифры. - {формат_точности} — «до рубля», «2 знака», «в процентах». - {черновые_файлы} — выгрузки, дампы, логи, которые агент создаёт сам.

⚠️

Ограничения

⚠️ Зависит от модели: у Claude (Opus и Sonnet 4.6) потерь при работе с файлом практически нет, у GPT-5.4 общий итог тоже около нуля. Эффект сильнее всего у GPT-5.1 и GPT-5.2.

⚠️ Просьба «округляй правильно» не работает: модели всё равно обрезают, хотя им прямо сказали не обрезать. Помогает только указание конкретного источника.

⚠️ Нужно знать эталон: инструкция требует назвать, какой вывод считается каноническим. Если эталона нет или он неочевиден, метод не сработает.

⚠️ Проверено на одном инструменте: это геохимический симулятор и вопросы с четырьмя вариантами, где варианты различаются последней цифрой. Перенос на другие задачи логичен, но в статье не проверен.

⚠️ Не лечит всё: у GPT-5.1 остаётся недобор до уровня «отчёт в контексте». Он лежит уже не в округлении, а в самом расчёте и в других этапах.

⚠️ Контрольный прогон один: сравнение инструкции с контролем опирается на единичный запуск каждой модели. Основной вывод подтверждён и другими сравнениями, но цифры приблизительные.

🔍

Как исследовали

Исследователи взяли PHREEQC — реальный геохимический симулятор Геологической службы США. Его отчёты доходят до 847 тысяч символов, а результат полностью детерминирован, поэтому каждое напечатанное число можно проверить. Для теста взяли 158 вопросов с четырьмя вариантами ответа, ключи которых перепроверили запуском: из исходных 200 вопросов 42 оказались дефектными. Варианты ответов отличаются последней цифрой, поэтому угадать нельзя, число нужно считать.

Сравнивали два способа выдачи отчёта: целиком в контекст (до 100 тысяч символов) или оглавление с чтением по строкам. Дополнительно проверили поиск по ключевым словам. Тестировали модели Claude Opus 4.6, Sonnet 4.6, GPT-5.1, 5.2, 5.4 и Gemini 3 Flash. Gemini исключили: почти половина ответов у неё не распарсилась.

Главный ход исследования — перезапуск всех 11 007 вызовов симулятора из логов. Для каждой траектории стало видно три вещи: посчитал ли агент нужное значение, дошло ли оно до него и ответил ли он по нему верно. Оказалось, что GPT-5.1 и GPT-5.2 считают так же часто, как раньше. Теряется шаг чтения: агент часто не открывает отчёт и берёт значение из своего файла с лишними знаками. Из 35 «ловушек» (значение округляется в правильный вариант, но обрезается в соседний) GPT-5.2 выбрал соседний вариант в 26 случаях, а Sonnet — в одном.

Затем сделали интервенцию: три предложения с указанием источника. Пропуск отчёта упал почти до нуля, верность ответов при увиденном значении выросла до ~99%. Точность поднялась на 6–8 пунктов у трёх GPT-моделей. У GPT-5.4 есть любопытная деталь: итоговая точность не менялась, потому что плюс в расчётах скрывал минус в чтении. Если смотреть только на итог, проблему не увидишь.

💡

Адаптации и экстраполяции

💡 Адаптация для файла инструкций агента (CLAUDE.md / AGENTS.md): Статья проверяла инструкцию в описании инструмента и в результате вызова. Тот же принцип можно записать в постоянные инструкции проекта.

## Источник истины для чисел
Итоговые цифры бери только из reports/summary.txt.
Файлы в tmp/ и debug/ — рабочие черновики, значения там не округлены.
Не используй их для ответа пользователю.

🔧 Техника: добавить ссылку на источник → проверка своими глазами. Попросите агента в конце ответа указать, из какого файла и раздела взято каждое число. В статье это не проверялось, но так можно быстро увидеть подмену источника без разбора логов.

К каждому числу в ответе добавь: [файл, раздел].

💡 Экстраполяция (не проверено в статье): тот же принцип пригодится, где агент сам создаёт промежуточные версии данных: выгрузки из CRM, отчёты по рекламе, расчёты юнит-экономики. Назовите официальную версию и объясните, чем черновики хуже. Проверяйте на своей модели: у Claude эффекта может не быть.

🔗

Ресурсы

  • Работа: Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy
  • Авторы: Ke Zhang, Maziar Raissi (University of California, Riverside); Sahchit Chundur, Jerry Peprah Owusu, Mohammad Javad Abdolhosseini Qomi (University of California, Irvine)
  • Инструмент: PHREEQC (USGS), Parkhurst & Appelo, 2013
  • Связанные работы: Sen et al. (2026) о доставке результатов поиска файлами; Xie et al. (2026) о том, что модели не всегда используют контекст; Zhang et al. (2026b) о наборе вопросов.
  • Дословный текст трёх предложений авторы приводят в Приложении B, в полученном фрагменте его нет.

📋 Дайджест исследования

Ключевая суть

Агент посчитал верно, а ответил неверно: взял из своего файла 2.75065, обрезал до 2.750 вместо округления до 2.751 и выбрал соседний вариант. Метод «эталонный источник» позволяет заставить агента брать итоговое число из официального отчёта инструмента, а не из файлов, которые он сам наплодил по ходу работы. Три предложения в описании инструмента и в системном промпте: отчёт эталонный, бери значение оттуда, черновики не трогай. Агент больше не обрезает хвост чисел, и точность растёт на 6–8 пунктов у трёх GPT-моделей.

Принцип работы

Не «округляй правильно», а «бери отсюда». Просьба про округление почти ничего не меняет. Модель всё равно идёт в свои файлы и всё равно режет хвост. Лечит не правило округления, а указание, какой файл считать истиной. Это как бухгалтер, у которого на столе черновик с копейками и справка с итогом. Скажи ему «цифры только из справки», и спор о том, как округлять черновик, исчезнет. В описании инструмента нужны имя эталонного файла, раздел и причина запрета: «там значения не округлены».

Почему работает

Когда отчёт лежит в файле, он конкурирует с другими источниками. Файлы самого агента короче и точнее по числу знаков, поэтому модель читает их охотно. Но эти числа не подогнаны под формат ответа. Жесть: у GPT-5.1 и GPT-5.2 до 60% запусков вообще не открывают отчёт, и точность падает на 8–11 пунктов. Логи показывают, что верное значение агент получает так же часто, как раньше. Теряется шаг «из чего я отвечаю». Модель плохо выбирает источник сама, зато отлично выполняет прямое указание, откуда брать данные. С инструкцией пропуск отчёта падает с 50–60% до 0–2%, а доля верных ответов при увиденном значении доходит до 99%. Claude почти не страдает от этой проблемы, у GPT-5.4 общий итог тоже около нуля.

Когда применять

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

Мини-рецепт

1. Найди эталон: какой файл с выводом инструмента считается официальным? Отчёт, итоговая таблица, лог.
2. Впиши три предложения в описание инструмента: значения в этом файле авторитетные и в нужной точности. Бери значение из нужного раздела. Не отвечай из своих промежуточных файлов, там значения не округлены.
3. Назови файл по имени: «эталонный вывод» без имени не работает. Привяжи инструкцию к конкретному файлу и разделу.
4. Объясни причину запрета: одна фраза «там нет нужного округления» помогает модели понять, зачем ей это.
5. Продублируй в системном промпте или в файле инструкций (например, CLAUDE.md): повтор в двух местах не лишний.
6. Если отчёт короткий: не мучайся с инструкциями, положи его прямо в контекст.
7. Добавь строку про раздел (доработка, в статье её нет): «в ответе укажи раздел, откуда взято число». Так видно, что агент реально открыл отчёт.

Примеры

[ПЛОХО] : Посчитай налог по выгрузке и округляй правильно, не обрезай (агент всё равно возьмёт 123 456,78 из debug_dump.csv, обрежет до 123 456 и ответит на рубль меньше)
[ХОРОШО] : Инструмент calc_usn.py пишет итоговый файл report.txt. Значения в report.txt авторитетные, они уже округлены до рубля по правилам расчёта налога. Для ответа бери сумму из нужного раздела report.txt. Не отвечай из debug_dump.csv и других своих промежуточных файлов: там значения не округлены, и при округлении можно получить соседнюю, неверную сумму. В ответе укажи раздел report.txt, откуда взято число. Результат: агент открывает report.txt и называет 123 457 ₽, как в официальном расчёте. Дамп с копейками остаётся рабочим материалом и в ответ не попадает.
Источник: Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy
ArXiv ID: 2610.26836 | Сгенерировано: 2026-10-20 13:40

Проблемы LLM

ПроблемаСутьКак обойти
Агент отвечает из своих черновых файлов, а не из эталонного отчётаИнструмент пишет итоговый отчёт в файл. Рядом лежат файлы, которые агент сам создал по ходу работы: дампы, выгрузки, логи. Отчёт перестаёт быть единственным источником перед глазами. Агент часто вообще его не открывает. Он берёт число из своего файла, где оно длиннее и не округлено. Потом обрезает хвост вместо округления. Ответ уходит на соседний неверный вариант. Расчёт при этом верный. Теряется шаг «из чего я отвечаю». Сильнее всего страдают некоторые модели (GPT-5.1, GPT-5.2). У Claude почти незаметноНазови эталонный файл и запрети отвечать из черновых. Добавь в описание инструмента и в системный промпт: «значения в report.txt авторитетные, бери из него, не отвечай из своих промежуточных файлов». Если отчёт короткий, положи его прямо в контекст. Тогда конкуренции источников нет

Методы

МетодСуть
Указание источника — агент берёт число из эталонаТри предложения. Первое: значения в {эталонный_файл} авторитетные и уже в нужной точности. Второе: бери значение из соответствующего раздела этого файла. Третье: не отвечай из {черновые_файлы}, там значения не округлены. Повтори текст в описании инструмента, в системном промпте и в файле инструкций (CLAUDE.md и подобные). Почему работает: выбор источника ломается на стороне модели. Инструкция делает этот выбор за неё. Ясное указание «откуда брать» модели выполняют хорошо. Что усиливает: точное имя файла и раздела (общее «эталонный вывод» без имени не работает). Короткая причина запрета: «там значения не округлены». Просьба указать в ответе раздел, откуда взято число. Когда да: есть явный эталон, а рядом лежат файлы самого агента. Когда нет: эталона нет или он неочевиден. Ошибка сидит не в выборе источника, а в самом расчёте. Метод проверен на одной задаче, перенос на другие логичен, но не доказан
📖 Простыми словами

Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy

arXiv: 2610.26836

AI-агенты удивительно самовлюблённые: дай им волю, они предпочтут собственные черновые почеркушки официальным данным. Пока результат работы тула висит прямо в контексте, агент послушен. Но стоит спрятать длинный отчёт в файл на диске, как начинается цирк: модель идёт искать данные, натыкается на свой же промежуточный дамп и берёт цифры оттуда. Модель искренне верит, что её сырые логи надёжнее готового документа, а официальный файл просто игнорирует.

Это как если бухгалтер рассчитал налог на официальном бланке, но по пути к шефу заглянул в свой заляпанный кофе черновик, криво отрезал копейки в уме и выдал лажу. Формально он всё посчитал, но из-за лени обрубил хвост числа вместо нормального округления. Налоговая выкатывает штраф, клиент на взводе, а бухгалтер искренне не понимает, почему один несчастный рубль стал проблемой.

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

Исследовали агентов на выгрузках, но принцип универсален. Баг вылезает везде: настраиваешь ли ты агента в Cursor для налогов, строишь финдиректора для отчётов или парсишь логи серверов. Везде, где LLM генерирует промежуточные файлы и одновременно должна читать результат внешнего скрипта, вспыхивает конкуренция источников. Если жёстко не привязать модель к финальному файлу, она гарантированно выберет свои костыли.

Короче: контекст не резиновый, прятать длинные выводы в файлы придётся, но доверять агенту выбор источника нельзя. Либо ты насильно тыкаешь модель носом в канонический отчёт, либо получаешь кривые ответы из-за тупого срезания знаков. Добавь три строчки ограничений на входе, пока твой умный ассистент не насчитал клиенту налог со сдвигом на один критический рубль.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с