Что остаётся от задачи после остановки

Исследуем 64 состояния журнала CapyAgent. Что восстанавливается при запуске, почему запись об инструменте ещё не доказывает результат и когда нельзя просто повторить действие.

Все исследования

Главный результат

Проверили 64 искусственных случая чтения состояния и пять сценариев основного цикла без настоящей языковой модели. При запуске хранилища незавершённый вызов восстанавливается с отметкой неизвестного исхода. Это ещё не доказательство отсутствия повторных внешних действий.

Термины простыми словами
Журнал действия
записи о начале вызова и полученном результате.
Неизвестный исход
система не установила, завершилось ли действие.
Сценарный заменитель
тестовая программа, которая выдаёт заранее заданные ответы вместо настоящей модели.
Восстановление
чтение сохранённого состояния при запуске; не автоматическое повторение внешнего действия.

Разбор исследования / 02

История задачи и результат действия - разные вещи

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

  1. 01 / До запускаДействие ещё не начато
    Нет основания считать, что инструмент сработал. Проверяем восстановление соответствующего состояния.
  2. 02 / НачатоИсход неизвестен
    Запись о начале не доказывает успех или неуспех. Этот случай требует отдельного статуса.
  3. 03 / ЗавершеноОтвет сохранён
    Проверяем, доступно ли тело результата при чтении журнала после запуска.
  4. 04 / Нет подтвержденияРезультат требует проверки
    Сохранённый ответ и подтверждение внешнего эффекта нельзя автоматически считать одним событием.
Рисунок 1. Четыре подготовленных состояния журнала. Для двух способов чтения выполнено по восемь повторений: всего 64 наблюдения.

Главная граница результата

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

Почему важен способ чтения

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

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

Как выглядела бы проверка повторного действия

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

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

Что это меняет для пользователя

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

Аннотация

Проведена компонентная проверка восстановления состояния CapyAgent в ревизии 77ac9b72. Сопоставлены два способа открытия файловой памяти при четырёх состояниях журнала, по восемь повторов: всего 64 наблюдения. Обычный запуск восстанавливает записанный результат или сообщает о неизвестном исходе начатого вызова; соседняя команда чтения намеренно не запускает восстановление. Повторное открытие не увеличило число строк истории во всех 64 случаях. Дополнительно новым запуском проверены пять существующих интеграционных сценариев основного цикла со сценарными заменителями модели; все завершились успешно. Ни одна настоящая внешняя операция в матрице не исполнялась, поэтому отсутствие повторных эффектов и надёжность реального агента этой серией не установлены.

1. Почему ответ и завершение задачи - разные события

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

В этой статье задаются три вопроса. Сохраняются ли эти различия при открытии файловой памяти? Не добавляются ли повторные строки истории при следующем открытии? Продолжают ли проходить выбранные сценарии согласования и поправок в настоящем основном цикле, если вместо языковой модели используется управляемая тестовая программа?

Последний вопрос проверяет логику приложения, а не способность модели самостоятельно принимать решения. Именно такой ограниченный опыт можно провести без платного API и без воздействия на рабочие системы.

3. Снимок, данные и план опыта

Использован зафиксированный снимок разработки CapyAgent 77ac9b72 [5]. На KotikTurbo создана отдельная копия исходников. Хранилища каждого случая находятся во временных каталогах. Условный инструмент называется synthetic_probe; его аргумент - номер повтора, результат - искусственная строка. Никакая программа за этим именем не вызывается.

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

Режим NewFile соответствует запуску хранилища с восстановлением. Режим NewFileRyadomSoSluzhboy предназначен для команды, читающей данные рядом с работающей службой: он намеренно не превращает текущий ход в оборванный. Этот режим служит измеренным контролем. Первоначальная версия нашего оценщика смешивала эти режимы; её вывод исключён из окончательной интерпретации, а исправление описано в открытом журнале [6].

Для каждого случая сохранены число строк истории, строки результатов инструментов, признаки неизвестного и неподтверждённого исхода, сохранение тела результата и число строк после второго открытия. Число строк сравнивается по одному и тому же хранилищу, а не по сумме журналов разных случаев.

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

4. Измеренные результаты восстановления

Таблица 1. Открытие в режиме запуска с восстановлением
Исходное состояниеnСтрок результатаОтметок «неизвестно»Отметок «не подтверждён»
До регистрации вызова8000
Начало записано, результата нет8880
Результат записан8800
Результат записан как неподтверждённый8808

В группе «начало без результата» восстановлены восемь строк инструмента с явным неизвестным исходом. Для восьми записанных результатов сохранено тело; для восьми неподтверждённых результатов сохранены и тело, и соответствующая отметка. Там, где начало ещё не было записано, строка инструмента не появилась.

В контрольном режиме соседнего чтения строк инструмента в истории не появилось ни в одном из 32 наблюдений. Это соответствует назначению API: чтение рядом с действующей службой не должно объявлять её работу оборванной. Второе открытие тем же способом не увеличило число строк во всех 64 случаях. Сырые записи доступны отдельно [7].

Нельзя переименовывать этот результат в «64 успешных восстановления внешних задач». В опыте не было самих внешних действий, выключения питания, повреждения диска или потери сетевого ответа. Измерялось чтение заданного файлового состояния и его отражение в истории.

5. Новый запуск пяти сценариев основного цикла

Отдельно запущены пять уже существующих тестов CapyAgent. Во всех используется настоящий основной цикл с заданным сценарием ответов тестовой модели. Файловые операции ограничены временными каталогами; каналы сообщений являются тестовыми. Список и квитанции опубликованы [8].

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

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

6. Как это соотносится с прежним реальным испытанием

В сохранённом испытании от 26.10.2026 другой кандидат, 6e86b40b, начал один из пяти разрешённых сценариев с настоящей моделью. Три HTTP-запроса вернули 200, поправка пользователя была принята, но требуемый исправленный файл отсутствовал. Серия остановилась после первого неуспеха; четыре случая не выполнялись. Это отдельный исторический результат [9].

Счётчик выделенного file_write тогда не охватывал записи из shell_run. Поэтому он не подтверждал общее отсутствие повторных эффектов. Новая матрица также не устраняет этот пробел: она проверяет журнал, а не состояние внешней программы. Нельзя объявлять исторический дефект исправленным по прохождению пяти других тестов или по наличию строки в истории.

7. Окружение и повторение

Команда матрицы: go test -p 1 ./internal/memory -run '^TestResearchRecoveryMatrixV2$' -count=1 -json. Отдельная команда выбирает пять точных имён из квитанции основного цикла. Код теста, списки случаев, окружение и хеши доступны в приложении [10]. Полный повтор с CapyAgent требует доступа к закрытому снимку; опубликованный JSON позволяет независимо пересчитать табличные итоги.

Использованы Go 1.26.10 и один поток. Собственные процессы ограничены четвертью ядра в сохранённом тихом режиме. Для компиляции тестов основного цикла локальный предел памяти повышен с 1 500 МиБ до 2 ГиБ внутри штатного рабочего бюджета; ограничения ноутбука и его профиль не менялись. Среда очищена от API-реквизитов, обращения к платной модели отсутствуют. Сборка тестового пакета не является приёмкой установленного выпуска.

8. Ограничения и следующий опыт

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

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

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

Новые проверки от 1 ноября 2026 · Версия 2.0

Оригинальная статья сайта, редакционная подготовка с применением ИИ. Измеренные результаты отделены от прежних наблюдений и планов. Внешнее научное рецензирование не заявляется. SR-2026-02 - внутренний номер, не DOI.

Первичные источники и материалы проверки

Ссылки и статус материалов проверены 1 ноября 2026 года. Внешние работы используются как источники методов; их показатели не выдаются за результаты CapyAgent.

  1. Yao S. et al. τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains. 2024.
  2. Barres V. et al. τ²-Bench: Evaluating Conversational Agents in a Dual-Control Environment. 2025.
  3. Gao R. AgentEval: Evidence-Bounded Assessment of Stateful Agents. 15.10.2026. Препринт.
  4. Rallabandi S. K., Dakle P. P., Raghavan P. What Agent Benchmarks Don’t Tell You: Recoverability and Credit Assignment in Agentic Retrieval Evaluation. REALM 2026, 29.10.2026.
  5. Манифест исходников CapyAgent: снимок разработки 77ac9b72409fc2b6afc5741fd2469c662758a1b4, зафиксирован для проверок 01.11.2026. Полный репозиторий закрыт.
  6. Журнал исправлений оценщика. Изменения определений и API чтения отделены от изменений продукта.
  7. Новые результаты 64 случаев восстановления. Финальный оценщик с отдельной проверкой неподтверждённого результата.
  8. Пять новых запусков существующих сценариев основного цикла: имена, время и исходы. Сценарные заменители модели.
  9. Историческая сводка одного неуспешного случая от 26.10.2026; ревизия 6e86b40b. Не новый прогон.
  10. Материалы для повторения: данные, исходники оценщиков, сырые результаты, контрольные суммы и ограничения воспроизводимости.