Concept internals

タイムゾーン

OpenClaw はタイムスタンプを標準化し、モデルがプロバイダーごとのローカル時計の混在ではなく、単一の基準時刻を参照できるようにします。タイムゾーンは、その目的に応じて次の 3 つのサーフェスに表示されます。

3 つのタイムゾーンサーフェス

サーフェス 表示内容 デフォルト 設定方法
メッセージエンベロープ 受信チャネルメッセージをラップします: [Signal +1555 Sun 2026-01-18 00:19:42 PST] hello ホストのローカルタイムゾーン agents.defaults.envelopeTimezone
ツールペイロード チャネルの readMessages 形式のツールは、プロバイダーの生の時刻に加え、正規化された timestampMs / timestampUtc を返します UTC フィールドは常に存在 設定不可。プロバイダー固有のタイムスタンプを保持します
システムプロンプト タイムゾーンのみを含む小さな Current Date & Time ブロック(キャッシュの安定性を保つため、時計の値は含みません) userTimezone が未設定の場合はホストのタイムゾーン agents.defaults.userTimezone

システムプロンプトでは、ターン間でプロンプトキャッシュを安定させるため、現在の時計の値を意図的に省略しています。エージェントが現在時刻を必要とする場合は、session_status を呼び出します。

ユーザータイムゾーンの設定

json5
{  agents: {    defaults: {      userTimezone: "America/Chicago",    },  },}

userTimezone が未設定の場合、OpenClaw は実行時に Intl.DateTimeFormat().resolvedOptions().timeZone を介してホストのタイムゾーンを解決します(設定への書き込みは行いません)。agents.defaults.timeFormatauto | 12 | 24)は、エンベロープおよび後続のサーフェスでの 12 時間制/24 時間制の表示を制御しますが、システムプロンプトのセクションには影響しません。

エンベロープのタイムゾーン値

agents.defaults.envelopeTimezone には次の値を指定できます。

  • "local"(デフォルト)または "host" - ホストマシンのタイムゾーン。
  • "utc" または "gmt" - UTC。
  • "user" - 解決された agents.defaults.userTimezone(未設定の場合はホストのタイムゾーンにフォールバック)。
  • 明示的な任意の IANA タイムゾーン文字列(例: "Europe/Vienna")。

オーバーライドする場合

  • 異なる地域のホスト間でタイムスタンプを安定させる場合、または UTC に合わせた診断/ログ出力と一致させる場合は、"utc" を使用します
  • Gateway ホストがどのタイムゾーンで実行されていても、エンベロープを設定済みのユーザータイムゾーンに合わせる場合は、"user" を使用します
  • Gateway ホストがあるタイムゾーンに存在していても、ホストの移行にかかわらずエンベロープを常に別のタイムゾーンで表示する必要がある場合は、固定の IANA タイムゾーンを使用します
  • タイムスタンプのコンテキストが会話に不要な場合は、envelopeTimestamp: "off" を設定します。これにより、エンベロープ、エージェントへの直接プロンプトのプレフィックス、および埋め込まれたモデル入力のプレフィックスから絶対タイムスタンプが削除されます。

動作の完全なリファレンス、プロバイダーごとの例、経過時間の書式設定については、日付と時刻を参照してください。

関連項目

  • 日付と時刻 - エンベロープ、ツール、プロンプトの完全な動作と例。
  • Heartbeat - アクティブ時間では、スケジュール設定にタイムゾーンを使用します。
  • Cron ジョブ - Cron 式では、スケジュール設定にタイムゾーンを使用します。
Was this useful?
On this page

On this page