Размер контекста
Руководство по выбранному контексту и провайдерам описывает пакеты исходников, точное восстановление вывода, явные профили моделей и необязательные кандидаты worker. Эти команды входят в опубликованный CLI; проверьте установленную версию и справку команды.
token estimate
Заголовок раздела «token estimate»Перед задачей оцените известный текст из явно выбранных файлов или stdin командой bee token estimate. Руководство по проверке токенов показывает сравнение выборок контекста, повтор одного входа через --calls, выделение бюджета вывода и сохранение итогов при --limit 0. Требуется Bee 1.0.0-beta.16 или новее.
Выберите контекст, оцените его, проверьте достаточность, затем выполните задачу отдельно. Меньшая выборка сама по себе не доказывает качество или экономию. После выполнения используйте описанный ниже процесс измеренного использования с явно выбранным поддерживаемым журналом; предварительные числа не устанавливают реальный вывод, рассуждение, использование кэша или расход провайдера.
budget –by-item
Заголовок раздела «budget –by-item»bee budget "catalog validation" --path src/Catalog/Product.cs --by-item --jsonПосмотрите контекст, который Bee сформирует для примера запроса. --by-item
показывает вклад каждого правила, записи памяти и другого элемента в символах
UTF-16. Заголовки разделов и обрамляющие маркеры учитываются отдельно.
Содержимое повторно не выводится. Команда требует инициализации Bee и
настроенной MongoDB.
Оценка токенов: ceil(символы UTF-16 / 4). Это не данные использования модели
или оплаты. Из-за отдельного округления сумма оценок элементов может отличаться
от общей оценки. Предпросмотр бюджета не создаёт запись о доставке.
context audit
Заголовок раздела «context audit»bee context audit --from AGENTS.md --against docs --root . --jsonСравните явно выбранный Markdown-источник с файлом или каталогом. Аудит показывает хеши, размеры, позиции разделов источника и кандидатов в нормализованные дубликаты. Он работает офлайн до чтения конфигурации и доступа к MongoDB, не изменяя исходные файлы.
Список источника содержит до 200 разделов, начиная с самого большого тела, даже без дубликатов. Размер тела измеряется по нормализованному тексту; заголовки и граничные символы учитываются отдельно от исходного размера файла.
Кандидаты — одинаковые блоки длиной не менее 64 нормализованных символов. BOM и окончания строк нормализуются; границы абзацев и заголовки ATX не участвуют в сравнении. Остальные пробелы, код, регистр и пунктуация сохраняются. Совпадение не доказывает, что требование можно безопасно удалить.
Чтение и вывод ограничены. Пути должны оставаться внутри выбранного корня;
символические ссылки и нерегулярные файлы отклоняются. Нечитаемый, изменившийся
или превышающий лимит ввод даёт неполный отчёт. На macOS используйте физический
путь, например /private/tmp, вместо ссылки /tmp.
Коды выхода: 0 полный отчёт без кандидатов; 1 полный отчёт с кандидатами;
4 неверные аргументы; 5 неполный анализ. Проверьте число пропущенных
результатов, прежде чем считать отчёт исчерпывающим.
test summarize
Заголовок раздела «test summarize»bee test summarize TestResults/results.trx --jsonЧитайте готовый TRX-отчёт, не передавая весь XML в контекст агента. Bee выводит
счётчики, отдельные неудачные тесты, ограниченные диагностические сведения и
хеш файла. Команда не запускает тесты, не читает вложения и не обращается к
сервисам; инициализация и MongoDB не нужны. Первая версия читает TRX в UTF-8
с плоским списком результатов; вложенные InnerResults явно отмечаются как
неподдерживаемые и дают неполный отчёт.
Полнота разбора и результат тестов — отдельные сведения. Повреждённый, незавершённый или неподдерживаемый отчёт не подтверждает успех. Отчёт без тестов тоже не считается успешным запуском. Исходный код завершения тестового процесса неизвестен: команда описывает выбранный файл, а не независимо проверенный запуск для текущего checkout.
По умолчанию выводятся подробности только непройденных тестов. Для успешных
выполнений добавьте --include-passed. --limit ограничивает число записей,
--budget — символы вывода; пропуски из-за лимита и намеренно исключённые
успешные результаты учитываются отдельно.
Одноимённые результаты сохраняют отдельные идентификаторы выполнения.
Сокращённые длинные сообщения и пропущенные результаты явно обозначаются.
По этим признакам решайте, нужно ли читать оригинал; сводка не воспроизводит
весь XML или захваченный стандартный вывод. Ограничения и коды завершения:
bee test summarize --help.
Выберите меньший ответ
Заголовок раздела «Выберите меньший ответ»Используйте эти инструменты, когда агенту нужны сведения без чтения всех исходников, журналов и отчётов. Автономные примеры ниже используют синтетические данные. budget --by-item требует настроенного хранилища; это прогноз, а не измеренный расход провайдера.
| Вывод | Предел и единица | Что проверить |
|---|---|---|
graph outline --compact --budget N |
По умолчанию 12 000; 2048–65 536 единиц UTF-16 без завершающего перевода строки | Строки столбцов сохраняют поля объявлений; counts, omittedMetadata, актуальность и полноту |
Связи графа: --output-budget-chars N |
От 256 единиц UTF-16 с завершающим переводом строки; нужен --json |
output.omittedItems, omittedByPath, legacyComplete и усечение запроса |
test summarize --budget N |
По умолчанию 16 000; 2048–65 536 единиц UTF-16 без завершающего перевода строки | Возвращённые/опущенные записи, исключённые успехи и сокращённую диагностику |
code runs list/show --budget N |
По умолчанию 16 000; 2048–65 536 единиц UTF-16 с завершающим переводом строки | Целостность, исходный результат анализа и опущенные записи |
Единицы UTF-16 — не байты UTF-8 и не токены провайдера: A занимает одну единицу, многие эмодзи — две. Старый --budget запросов графа считает по три символа на условный токен и ограничивает результат запроса, а не весь JSON. Не путайте его с символьным бюджетом outline. Если обязательные метаданные не помещаются в бюджет всего вывода, возвращается код 4; увеличьте бюджет.
Компактный outline использует общие result.columns и result.idPrefix; полный ID = префикс + суффикс строки. Так убирается повторная структура с сохранением полей объявлений. --compact запросов связей удаляет описательные поля списков. Ни один режим не гарантирует меньший счёт или ускорение. Выбор строк по outline показан в примере работы с кодом.
Повторное использование без предположения об актуальности
Заголовок раздела «Повторное использование без предположения об актуальности»Граф сохраняется локально; запросы связей могут создать/обновить его, если нет --no-refresh. Outline никогда не обновляет граф. Сохранение анализа компилятором включается явно:
bee code analyze --engine roslyn --save-run --jsonbee code runs list --json --limit 10 --budget 4096bee code runs show <run-id> --json --limit 20 --budget 8192Используйте возвращённый runId. Код 0 у show означает успешное чтение файла, даже если analysisExitCode равен 1 или 5. integrity: verified проверяет сохранённые байты, а не соответствие сегодняшнего кода, инструментов и настроек. После значимых изменений повторите анализ; см. историю анализа. Чтение отчёта позволяет не запускать анализ заново, но не подтверждает кэширование промпта у провайдера.
Измеренные значения из одного журнала
Заголовок раздела «Измеренные значения из одного журнала»Используйте при наличии поддерживаемого локального журнала Codex и точного UUID native thread. Инициализация и сервис не нужны. Синтетический rollout.jsonl из двух строк показывает формат счётчиков:
{"timestamp":"2026-09-22T12:00:00Z","type":"session_meta","payload":{"id":"11111111-1111-4111-8111-111111111111","cli_version":"0.155.0","originator":"codex_exec"}}{"timestamp":"2026-09-22T12:00:01Z","type":"event_msg","payload":{"type":"token_count","info":{"total_token_usage":{"input_tokens":100,"cached_input_tokens":60,"output_tokens":20,"reasoning_output_tokens":5,"total_tokens":120},"last_token_usage":{"input_tokens":100,"cached_input_tokens":60,"output_tokens":20,"reasoning_output_tokens":5,"total_tokens":120},"model_context_window":258400}}}bee budget --measured --harness codex --session 11111111-1111-4111-8111-111111111111 --log rollout.jsonl --jsonПример возвращает код 0 и схему 2: history.latest.cumulative содержит input 100, cached input 60, uncached input 40, output 20 и total 120. Reasoning 5 входит в output; cached input уже входит в input. Поток response пуст. cost, requestCount, usage и lastRequestUsage равны null. Эти числа не измеряют экономию.
Держите response и history отдельно; не складывайте потоки, снимки или сегменты. context_estimate, context_window_synthesis и history_with_estimated_baseline явно отмечают оценочные основания истории. Согласованность чисел не подтверждает биллинг, полноту запросов, внимание модели или экономию благодаря Bee. complete описывает данный снимок; завершённость сеанса неизвестна, дочерние потоки автоматически не включаются.
Все три параметра обязательны. Принимаются только поддерживаемые форматы Codex; другие среды дают код 5. Неверный thread, изменяющийся/повреждённый ввод и неподдерживаемые записи означают неполноту (5), неверные флаги — ошибку использования (4). Нужен физический путь обычного файла: симлинки, в том числе в родительских каталогах, отвергаются. Пределы: 32 MiB на файл, 4 MiB на строку, 100 000 строк и 10 000 наблюдений. Оборванный хвост может сохранить ранние наблюдения, но всё равно даёт 5.
Прочитайте отчёт с провалом теста
Заголовок раздела «Прочитайте отчёт с провалом теста»Сохраните синтетический UTF-8 отчёт как failure.trx. Он описывает провал и не получен запуском тестового набора:
<TestRun id="33333333-3333-4333-8333-333333333333" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> <Results><UnitTestResult testId="11111111-1111-4111-8111-111111111111" executionId="22222222-2222-4222-8222-222222222222" testName="PriceTests.Total" outcome="Failed"><Output><ErrorInfo><Message>Expected 42; got 41.</Message></ErrorInfo></Output></UnitTestResult></Results> <ResultSummary outcome="Failed"><Counters total="1" executed="1" passed="0" failed="1" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0"/></ResultSummary></TestRun>bee test summarize failure.trx --limit 5 --budget 8000 --jsonРезультат содержит parserStatus: complete, testVerdict: failed, одну запись и код 1. Диагностика: “Expected 42; got 41.” producerExitCode остаётся null. Если удалить ID запуска, формат становится неподдерживаемым: incomplete/5. Хеш сводки идентифицирует входные байты, а не их происхождение или актуальность.
Пример context audit выше возвращает 1 при полном анализе с кандидатами на дублирование; проверьте totalFindings, returnedFindings, omittedFindings. Перед удалением решите, нужна ли инструкция в обоих местах. Чтобы сократить ненужную передачу правил, перейдите к управлению поведением.
Изучите отчёт о покрытии (beta.14)
Заголовок раздела «Изучите отчёт о покрытии (beta.14)»Используйте этот путь, когда тесты уже создали файл покрытия и нужно выбрать следующие строки исходников для изучения. Нужны Bee 1.0.0-beta.14 или новее и один существующий отчёт Cobertura, OpenCover или LCOV. Команда работает офлайн без инициализации, базы данных и провайдера модели. Для небольшого примера сохраните этот синтетический отчёт как coverage.lcov; src/Calculator.cs — имя внутри отчёта, наличие самого файла для разбора не требуется.
SF:src/Calculator.csDA:10,3DA:11,0LF:2LH:1BRDA:10,0,0,3BRDA:10,0,1,0BRF:2BRH:1end_of_recordbee code coverage import coverage.lcov --format lcov --jsonРезультат содержит status: complete, exitCode: 0 и пустой список issues. В files метрики lines и branches файла src/Calculator.cs имеют значения state: known, total: 2, covered: 1 и percent: 50. Это отдельные измерения: lineData показывает три выполнения строки 10 и ноль строки 11; branchData — одну выполненную и одну невыполненную ветвь на строке 10. Для этого разбора не открывались исходники и не запускались тесты.
Перед использованием наблюдений читайте status и issues. Отсутствующее измерение — unknown с процентом null; явно нулевой знаменатель — not-applicable, также с процентом null. Ни одно из состояний не означает 100%. Код 0 подтверждает разбор поддерживаемого подмножества, а не прохождение порога покрытия или доверенную приёмку QA. Код 4 означает некорректное использование; код 5 — неполный, небезопасный, неподдерживаемый, противоречивый или превышающий ограничения ввод. Некорректный или небезопасный ввод может вернуть только объект ошибки. Сохранённые наблюдения неполного отчёта нельзя считать полным покрытием.
Ввод должен быть обычным файлом UTF-8 размером не более 8 MiB без символических ссылок на всём пути. Выберите подходящий --format, а при ошибке разбора прочитайте error или issues. Используйте отчёт, экспортированный в поддерживаемом подмножестве; не удаляйте противоречивые записи только ради кода 0. Например, XML с DTD не поддерживается. Bee выводит результат в stdout; import не сохраняет историю, не объединяет запуски, не читает исходники и не запускает тесты. Действуют ограничения чтения, разбора и вывода.
Сохраняйте rawSha256 вместе с исходным отчётом для идентификации его байтов. Параметры вроде --source-revision и --source-snapshot — непроверенные декларации: sourceBinding остаётся not-established, checkedSource — not-read, а qaAcceptance — not-assessed. Это не подтверждает актуальность исходников или покрытие нового кода.
Для следующего шага агента сначала установите ревизию исходников, из которой получен отчёт. Затем изучите строку 11 указанного файла как невыполненную строку, а строку 10 — для понимания ветвления. Используйте работу с кодом для выбора нужных объявлений и вызывающих функций; покрытие не означает достаточность проверок или охват всех файлов репозитория. Храните результаты тестов и исходный код завершения раннера отдельно со сводками тестов. Заметки beta.14 содержат команды для трёх форматов и все параметры деклараций.