Техническая справка

Дата и время

OpenClaw по умолчанию использует локальное время хоста для транспортных временных меток и часовой пояс пользователя только в системном промпте. Временные метки провайдера сохраняются, чтобы инструменты сохраняли свою нативную семантику (текущее время доступно через session_status).

Конверты сообщений (по умолчанию локальные)

Входящие сообщения оборачиваются временной меткой (с точностью до минуты):

[Provider ... 2026-01-05 16:26 PST] текст сообщения

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

{
  agents: {
    defaults: {
      envelopeTimezone: "local", // "utc" | "local" | "user" | IANA часовой пояс
      envelopeTimestamp: "on", // "on" | "off"
      envelopeElapsed: "on", // "on" | "off"
    },
  },
}
  • envelopeTimezone: "utc" использует UTC.
  • envelopeTimezone: "local" использует часовой пояс хоста.
  • envelopeTimezone: "user" использует agents.defaults.userTimezone (возвращается к часовому поясу хоста).
  • Используйте явный часовой пояс IANA (например, "America/Chicago") для фиксированной зоны.
  • envelopeTimestamp: "off" удаляет абсолютные временные метки из заголовков конвертов.
  • envelopeElapsed: "off" удаляет суффиксы прошедшего времени (стиль +2m).

Примеры

Локальное (по умолчанию):

[WhatsApp +1555 2026-01-18 00:19 PST] привет

Часовой пояс пользователя:

[WhatsApp +1555 2026-01-18 00:19 CST] привет

Включено прошедшее время:

[WhatsApp +1555 +30s 2026-01-18T05:19Z] продолжение

Системный промпт: Текущая дата и время

Если часовой пояс пользователя известен, системный промпт включает специальный раздел Текущая дата и время с указанием только часового пояса (без формата часов/времени), чтобы обеспечить стабильность кэширования промпта:

Часовой пояс: America/Chicago

Когда агенту требуется текущее время, используйте инструмент session_status; карточка статуса включает строку с временной меткой.

Строки системных событий (по умолчанию локальные)

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

System: [2026-01-12 12:19:17 PST] Модель переключена.

Настройка часового пояса пользователя + формата

{
  agents: {
    defaults: {
      userTimezone: "America/Chicago",
      timeFormat: "auto", // auto | 12 | 24
    },
  },
}
  • userTimezone устанавливает локальный часовой пояс пользователя для контекста промпта.
  • timeFormat управляет отображением 12ч/24ч в промпте. auto следует настройкам ОС.

Определение формата времени (авто)

Когда timeFormat: "auto", OpenClaw проверяет предпочтения ОС (macOS/Windows) и возвращается к форматированию по локали. Определенное значение кэшируется для каждого процесса, чтобы избежать повторных системных вызовов.

Полезные данные инструментов + коннекторы (сырое время провайдера + нормализованные поля)

Инструменты каналов возвращают нативные временные метки провайдера и добавляют нормализованные поля для согласованности:

  • timestampMs: эпоха в миллисекундах (UTC)
  • timestampUtc: строка ISO 8601 UTC

Сырые поля провайдера сохраняются, так что ничего не теряется.

  • Slack: строки, похожие на эпоху, из API
  • Discord: временные метки UTC в формате ISO
  • Telegram/WhatsApp: специфичные для провайдера числовые/ISO временные метки

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

Связанная документация

Гигиена транскриптаTypeBox