Переопределения конфигурации среды выполнения для отладки
/debug задаёт переопределения конфигурации только для среды выполнения (в памяти, не на диске). По умолчанию отключено; включите с помощью commands.debug: true.
/debug reset удаляет все переопределения и возвращает конфигурацию с диска.
Вывод трассировки сеанса
/trace показывает принадлежащие плагину строки трассировки и отладки для одного сеанса без включения полного подробного режима. Используйте эту команду для диагностики плагинов, например сводок отладки Active Memory; для обычного вывода состояния и инструментов используйте /verbose.
Трассировка жизненного цикла плагина
ЗадайтеOPENCLAW_PLUGIN_LIFECYCLE_TRACE=1, чтобы получить поэтапную разбивку работы с метаданными плагинов, обнаружением, реестром, зеркалом среды выполнения, изменением конфигурации и обновлением. Вывод записывается в stderr, поэтому вывод команд в формате JSON остаётся пригодным для разбора.
node dist/entry.js ... после pnpm build; pnpm openclaw ... также измеряет накладные расходы средства запуска из исходного кода.
Профилирование запуска CLI и команд
Включённые в репозиторий тесты производительности запуска:OPENCLAW_RUN_NODE_CPU_PROF_DIR:
.cpuprofile для команды. Используйте это средство, прежде чем добавлять временное инструментирование в код команды.
Для зависаний при запуске, похожих на синхронную работу файловой системы или загрузчика модулей, добавьте флаг трассировки синхронного ввода-вывода Node через средство запуска из исходного кода:
pnpm gateway:watch по умолчанию оставляет этот флаг отключённым для дочернего процесса Gateway в режиме наблюдения; задайте OPENCLAW_TRACE_SYNC_IO=1, если хотите получать вывод трассировки синхронного ввода-вывода и в режиме наблюдения.
Режим наблюдения Gateway
openclaw-gateway-watch-<profile> (например, openclaw-gateway-watch-main), добавляя суффикс порта, такой как openclaw-gateway-watch-dev-19001, только когда OPENCLAW_GATEWAY_PORT отличается от порта по умолчанию 18789. В интерактивных терминалах подключение выполняется автоматически; неинтерактивные оболочки, CI и вызовы выполнения агента остаются отсоединёнными и вместо этого выводят инструкции по подключению:
remain-on-exit, поэтому сведения об ошибках запуска остаются доступными для подключения или захвата вместо удаления сеанса. Повторный запуск pnpm gateway:watch заново создаёт эту панель.
В панели tmux работает непосредственный наблюдатель:
--port или OPENCLAW_GATEWAY_PORT отличается от фактического порта установленной службы, обёртка оставляет службу работающей, чтобы оба экземпляра Gateway могли работать параллельно.
Режим переднего плана без tmux:
pnpm openclaw gateway stop.
Чтобы сохранить управление через tmux, но отключить автоматическое подключение:
--benchmark перед запуском Gateway и записывает один файл V8 .cpuprofile при каждом завершении дочернего процесса Gateway в каталоге .artifacts/gateway-watch-profiles/. Остановите или перезапустите наблюдаемый Gateway, чтобы записать текущий профиль на диск, затем откройте его с помощью Chrome DevTools или Speedscope:
--benchmark-dir <path>: записывать профили в другое место.--benchmark-no-force: пропустить стандартную очистку порта--forceи немедленно завершиться с ошибкой, если порт Gateway уже используется.
OPENCLAW_TRACE_SYNC_IO=1 вместе с --benchmark, чтобы получать и профили ЦП, и трассировки стека синхронного ввода-вывода; в режиме тестирования производительности эти блоки трассировки записываются в gateway-watch-output.log в каталоге тестирования производительности и отфильтровываются из панели терминала, а обычные журналы Gateway остаются видимыми.
Обёртка tmux передаёт в панель распространённые несекретные селекторы среды выполнения, включая OPENCLAW_PROFILE, OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR, OPENCLAW_GATEWAY_PORT и OPENCLAW_SKIP_CHANNELS. Храните учётные данные провайдера в обычном профиле или конфигурации либо используйте непосредственный режим переднего плана для разовых временных секретов.
Если наблюдаемый Gateway завершается во время запуска, наблюдатель один раз выполняет openclaw doctor --fix --non-interactive и перезапускает дочерний процесс Gateway. Задайте OPENCLAW_GATEWAY_WATCH_AUTO_DOCTOR=0, чтобы увидеть исходную ошибку запуска без предназначенного только для разработки этапа восстановления.
Управляемая панель tmux по умолчанию использует цветные журналы Gateway; задайте FORCE_COLOR=0 при запуске pnpm gateway:watch, чтобы отключить вывод ANSI.
Наблюдатель перезапускается при изменении влияющих на сборку файлов в src/, исходных файлов расширений, метаданных расширений package.json и openclaw.plugin.json, а также tsconfig.json, package.json и tsdown.config.ts. Изменения метаданных расширений перезапускают Gateway без принудительной пересборки; изменения исходного кода и конфигурации по-прежнему сначала пересобирают dist.
Добавьте флаги CLI Gateway после gateway:watch, и они будут передаваться при каждом перезапуске. Повторный запуск той же команды наблюдения заново создаёт именованную панель tmux; непосредственный наблюдатель использует блокировку единственного экземпляра, поэтому дублирующиеся родительские процессы наблюдателя заменяются, а не накапливаются.
Профиль разработки и Gateway для разработки (—dev)
Два отдельных флага--dev:
- Глобальный
--dev(профиль): изолирует состояние в~/.openclaw-devи задаёт для порта Gateway значение по умолчанию19001(производные порты смещаются вместе с ним). gateway --dev: указывает Gateway автоматически создать конфигурацию и рабочее пространство по умолчанию, если они отсутствуют, и пропустить начальную настройку.
pnpm openclaw ....
Что при этом происходит:
-
Изоляция профиля (глобальный
--dev)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(порты браузера и canvas смещаются соответствующим образом)
-
Начальная настройка для разработки (
gateway --dev)- Записывает минимальную конфигурацию, если она отсутствует (
gateway.mode=local, привязка к loopback-интерфейсу). - Задаёт для
agents.defaults.workspaceрабочее пространство разработки иagents.defaults.skipBootstrap=true. - Создаёт отсутствующие файлы рабочего пространства:
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md. - Идентичность по умолчанию: C3-PO (протокольный дроид).
pnpm gateway:devтакже задаётOPENCLAW_SKIP_CHANNELS=1, чтобы пропустить провайдеры каналов.
- Записывает минимальную конфигурацию, если она отсутствует (
--dev — глобальный флаг профиля, который некоторые средства запуска перехватывают. Если его нужно указать явно, используйте форму переменной окружения:--reset очищает конфигурацию, учётные данные, сеансы и рабочее пространство разработки (перемещая их в корзину, а не удаляя), после чего повторно создаёт стандартную среду разработки.
Журналирование необработанного потока
OpenClaw может журналировать необработанный поток ассистента до любой фильтрации или форматирования. Это лучший способ выяснить, поступают ли рассуждения как дельты обычного текста или как отдельные блоки размышлений. Включите через CLI:~/.openclaw/logs/raw-stream.jsonl
Примечания по безопасности
- Журналы необработанного потока могут содержать полные запросы, вывод инструментов и пользовательские данные.
- Храните журналы локально и удаляйте их после завершения отладки.
- Перед передачей журналов удалите из них секреты и персональные данные.
Отладка в VSCode
Карты исходного кода обязательны, поскольку при сборке к именам создаваемых файлов добавляются хеши. Включённая конфигурацияlaunch.json предназначена для службы Gateway:
- Rebuild and Debug Gateway — удаляет
/distи выполняет пересборку с включённой отладкой перед запуском Gateway. - Debug Gateway — отлаживает существующую сборку, не изменяя
/dist.
Настройка
- Откройте Run and Debug (на панели действий или с помощью
Ctrl+Shift+D). - Выберите Rebuild and Debug Gateway и нажмите Start Debugging.
- Включите карты исходного кода в терминале:
- Linux/macOS:
export OUTPUT_SOURCE_MAPS=1 - Windows (PowerShell):
$env:OUTPUT_SOURCE_MAPS="1" - Windows (CMD):
set OUTPUT_SOURCE_MAPS=1
- Linux/macOS:
- Выполните пересборку:
pnpm clean:dist && pnpm build - Выберите Debug Gateway и нажмите Start Debugging.
src/; отладчик сопоставит их со скомпилированным JavaScript с помощью карт исходного кода.
Примечания
- Rebuild and Debug Gateway удаляет
/distи при каждом запуске выполняет полную командуpnpm buildс картами исходного кода. - Debug Gateway можно запускать и останавливать, не затрагивая
/dist, но циклом сборки необходимо управлять в отдельном терминале. - Измените
launch.jsonargs, чтобы отлаживать другие подкоманды CLI. - Чтобы использовать собранный CLI для других задач (например,
dashboard --no-open, если сеанс отладки создаёт новый токен аутентификации), запустите его из другого терминала:node ./openclaw.mjsили через псевдоним, такой какalias openclaw-build="node $(pwd)/openclaw.mjs".