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 を呼び出します。
ユーザータイムゾーンの設定
{ agents: { defaults: { userTimezone: "America/Chicago", }, },}userTimezone が未設定の場合、OpenClaw は実行時にホストのタイムゾーンを解決します(設定の書き込みはありません)。agents.defaults.timeFormat(auto | 12 | 24)は、エンベロープと下流サーフェスでの 12 時間/24 時間表示を制御しますが、システムプロンプトセクションでは制御しません。
上書きする場合
- 異なるリージョンのホスト間で安定したタイムスタンプが必要な場合、または UTC に揃えたログを診断出力と一致させたい場合は、UTC エンベロープを使用(
envelopeTimezone: "utc")します。 - Gateway ホストがあるゾーンにあり、ユーザーが別のゾーンにいる場合で、ホスト移行に関係なくエンベロープをユーザーのゾーンで表示したい場合は、固定 IANA ゾーンを使用(例:
"Europe/Vienna")します。 - タイムスタンプの文脈が会話に役立たない場合は、
envelopeTimestamp: "off"を設定します。これにより、エンベロープ、直接のエージェントプロンプト接頭辞、埋め込みモデル入力接頭辞から絶対タイムスタンプが削除されます。
完全な動作リファレンス、プロバイダーごとの例、経過時間フォーマットについては、日付と時刻 を参照してください。
関連
Was this useful?