Technical reference

日付と時刻

OpenClaw は既定で、トランスポートタイムスタンプにホストローカル時刻を使用し、system prompt 内でのみユーザーのタイムゾーンを使用します。 Provider のタイムスタンプは保持されるため、tools はネイティブなセマンティクスを維持します(現在時刻は session_status で利用できます)。

メッセージエンベロープ(既定ではローカル)

受信メッセージはタイムスタンプ(分単位の精度)でラップされます。

Code
[Provider ... 2026-01-05 16:26 PST] message text

このエンベロープのタイムスタンプは、Provider のタイムゾーンに関係なく、既定ではホストローカルです。

この動作は上書きできます。

json5
{  agents: {    defaults: {      envelopeTimezone: "local", // "utc" | "local" | "user" | IANA timezone      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 形式)を削除します。

ローカル(既定):

Code
[WhatsApp +1555 2026-01-18 00:19 PST] hello

ユーザーのタイムゾーン:

Code
[WhatsApp +1555 2026-01-18 00:19 CST] hello

経過時間が有効:

Code
[WhatsApp +1555 +30s 2026-01-18T05:19Z] follow-up

System prompt: 現在の日付と時刻

ユーザーのタイムゾーンが既知の場合、system prompt には専用の 現在の日付と時刻セクションが含まれ、prompt caching を安定させるためにタイムゾーンのみ(時計/時刻形式なし)が含まれます。

Code
Time zone: America/Chicago

agent が現在時刻を必要とする場合は、session_status tool を使用します。ステータス カードにはタイムスタンプ行が含まれます。

システムイベント行(既定ではローカル)

agent context に挿入されるキュー済みシステムイベントには、メッセージエンベロープと同じタイムゾーン選択(既定: ホストローカル)を使用したタイムスタンプがプレフィックスとして付けられます。

Code
System: [2026-01-12 12:19:17 PST] Model switched.

ユーザーのタイムゾーンと形式を設定する

json5
{  agents: {    defaults: {      userTimezone: "America/Chicago",      timeFormat: "auto", // auto | 12 | 24    },  },}
  • userTimezone は prompt context 用のユーザーローカルのタイムゾーンを設定します。
  • timeFormat は prompt 内の12 時間/24 時間表示を制御します。auto は OS 設定に従います。

時刻形式の検出(auto)

timeFormat: "auto" の場合、OpenClaw は OS 設定(macOS/Windows)を検査し、ロケール形式にフォールバックします。検出された値は、システムコールの繰り返しを避けるため、プロセスごとにキャッシュされます。

Tool ペイロード + コネクタ(生の Provider 時刻 + 正規化フィールド)

Channel tools はProvider ネイティブのタイムスタンプを返し、一貫性のために正規化フィールドを追加します。

  • timestampMs: エポックミリ秒(UTC)
  • timestampUtc: ISO 8601 UTC 文字列

生の Provider フィールドは保持されるため、何も失われません。

  • Slack: API からのエポック風の文字列
  • Discord: UTC ISO タイムスタンプ
  • Telegram/WhatsApp: Provider 固有の数値/ISO タイムスタンプ

ローカル時刻が必要な場合は、既知のタイムゾーンを使用して下流で変換してください。

関連ドキュメント

Was this useful?