Эта страница переведена с английской документации. Команды, идентификаторы и примеры не изменены. Среда выполнения 7.24.4 · SDK 2.6.7. Английский оригинал
Настройка производительности и диагностика
Статус: активно
Область: текущее состояние
Последняя проверка: 2026-09-13
Владелец: среда выполнения ax-code
Выбор профиля инструментов
Для сессий кодирования, которым не нужны операции с инфраструктурой, планирование, генерация изображений или специализированный анализ,
задайте toolProfile равным coding для подключённого провайдера в конфигурации AX Code:
{
"provider": {
"your-provider-id": {
"options": {
"toolProfile": "coding"
}
}
}
}
Замените your-provider-id идентификатором подключённого провайдера. Так сохраняются осмотр и правка файлов, оболочка и фоновая
работа, делегирование, блокноты, цели, навыки, память и проверка рецензии. Веб-инструменты и необязательные инструменты по-прежнему следуют
своим правилам включения и разрешений. Пользовательские инструменты и инструменты MCP сохраняют правила допуска и могут увеличить
размер запроса.
Используйте full, когда нужны council/arena, операции, планирование, генерация изображений или инструменты специализированного анализа. Облачные
провайдеры по умолчанию берут full; AX Engine сохраняет меньшее значение по умолчанию core. coding не меняет усилие рассуждения,
разрешения, съём снимков и требования проверки. Влияние на скорость и успех задачи зависит от модели
и нагрузки. Явные параметры рассуждения см. в Усилии модели.
Отделите локальную подготовку от времени ответа провайдера
Включите локальное профилирование для запуска:
AX_CODE_PROFILE_NATIVE=1 ax-code run --model your-provider-id/your-model "Your task"
ax-code session replay YOUR_SESSION_ID --mode export
Профиль выхода в stderr включает интервалы session.insertReminders, session.preparePromptRequest, session.preflight,
session.resolveTools и снимка track/patch. Это совокупные измерения; вложенные или перекрывающиеся интервалы
нельзя складывать как стенное время задачи. Само профилирование добавляет накладные расходы измерения.
Записанные события llm.response получают необязательный объект timing:
| Поле | Смысл |
|---|---|
boundary |
provider-adapter: наблюдается на адаптере модели, до обработки результата инструмента в SDK |
attempt |
Номер попытки адаптера внутри этого вызова LLM.stream; остальные поля описывают эту попытку |
setupMs |
Время от входа в LLM.stream до этой отправки адаптеру; при повторе включает прежние попытки и паузу |
firstContentMs |
От отправки до первой непустой дельты текста, рассуждения или ввода инструмента либо до полного вызова инструмента |
firstTextMs |
От отправки до первой непустой дельты текста; отсутствует для ответа только с инструментом или только с рассуждением |
streamMs |
От отправки до кадра завершения адаптера; отсутствует, если кадр завершения не наблюдался |
Кадры метаданных и начала потока не считаются содержимым. Время берётся по монотонным часам и отражает момент, когда фрагменты
наблюдаются, включая любое обратное давление потока. Это не сырые сетевые тайминги, тайминги вывода на сервере и не тайминги отрисовки TUI.
Адаптеры CLI могут включать собственную работу дочернего CLI. Существующий latencyMs сохраняет прежний смешанный тайминг шага
и может включать выполнение инструмента и работу со снимком. Новые поля времени содержат только длительности и личность попытки.
Без AX_CODE_PROFILE_NATIVE=1 дополнительный объект времени опускается. Профилирование использует локальную диагностику и
существующий журнал событий сессии; внешний экспортёр телеметрии не включается.
Для полезного сравнения держите неизменными задачу, ревизию репозитория, конечную точку провайдера, точную модель, усилие рассуждения, разрешения инструментов и условия кэша. Записывайте время до первого видимого ответа и время до проверенного результата, включая тесты и попытки исправления. Меньший запрос или более быстрый локальный снимок сами по себе не доказывают более быстрое завершение облачной задачи.
Используйте управление обвязкой и проверенную оценку, чтобы пробовать восстановление контекста, обнаружение MCP, рецепты только для чтения и сравнения на совпадающих стендах с независимой проверкой.
Понимание размера запроса
Новые события llm.request в ax-code session replay YOUR_SESSION_ID --mode export включают requestBytes, когда доступно происхождение запроса:
| Поле | Смысл |
|---|---|
encoding |
canonical-json-utf8: длина в байтах существующего канонического представления отпечатка |
system |
Отдельно собранный массив системных сообщений |
messages |
Полный собранный массив сообщений, включая системные сообщения |
toolDefinitions |
Активные имена инструментов, описания и разрешённые схемы ввода |
system уже представлен внутри messages; не складывайте их. Обрамление массива включено. Двоичные значения используют существующее представление дайджеста, поэтому эти размеры — не размеры сетевой полезной нагрузки и не измерения резидентной памяти. Это не число токенов: учёт входа модели по-прежнему берут счётчики использования токенов и кэша провайдера. Сводка пакета контекста покрывает более узкую стадию и не является полным входом модели. Устаревшие события это поле опускают; неудачное происхождение явно остаётся недоступным.
Эта диагностика записывает только размеры и существующие хеши и метаданные. Дополнительные тела запросов и учётные данные не сохраняются. Она переиспользует каноническую сериализацию, нужную для каждого хеша, а не токенизирует запрос. Сравнивайте размеры на совпадающих ходах, когда решаете, требуют ли внимания системные инструкции, определения инструментов или растущая история. Профиль кодирования выше может сократить определения инструментов, не меняя усилие рассуждения; полный профиль остаётся доступен ради возможностей, которые он добавляет.
Избегайте лишнего исследования
Для поиска известного файла или простого подсчёта используйте прицельный поиск или одну агрегирующую команду. Разрешайте пути относительно текущего каталога рабочей области; сессия, начатая внутри пакета, уже имеет этот пакет корнем поиска. Встроенный grep использует синтаксис регулярных выражений ripgrep по умолчанию без lookaround и обратных ссылок.
На один путь вызова — один исследователь. Параллельные задачи только для чтения должны иметь разные результаты и собственные пути или подсистемы, а в их заданиях уже должны быть имеющиеся свидетельства. Независимая рецензия может вернуться к свидетельствам ради отдельного вопроса проверки. Повторное открытие в нескольких свежих контекстах стоит раундов модели, даже если кэш свидетельств попадает; попадания кэша не обходят проверку текущего содержимого и разрешения.
Языковые серверы теперь по умолчанию запускаются по требованию. Упреждающий прогрев по согласию и компромисс с задержкой первого семантического запроса см. в Использовании памяти. Подсказки в запросе и локальные тесты не устанавливают конкретного снижения живых вызовов модели или физической оперативной памяти.