Concept internals
タイムゾーン
OpenClaw はタイムスタンプを標準化し、モデルがプロバイダーごとのローカル時計の混在ではなく、単一の基準時刻を参照できるようにします。タイムゾーンは、それぞれ異なる目的を持つ 3 つの箇所に表示されます。
3 つのタイムゾーン表示箇所
| 表示箇所 | 表示内容 | デフォルト | 設定方法 |
|---|---|---|---|
| メッセージエンベロープ | 受信したチャンネルメッセージをラップします:[Signal +1555 Sun 2026-01-18 00:19:42 PST] hello |
ホストのローカルタイムゾーン | agents.defaults.envelopeTimezone |
| ツールペイロード | チャンネルの readMessages 形式のツールは、プロバイダーの未加工時刻と正規化された timestampMs / timestampUtc を返します |
UTC フィールドは常に存在 | 設定不可。プロバイダー固有のタイムスタンプを保持します |
| システムプロンプト | タイムゾーンのみを含む小さな「現在の日付と時刻」ブロック(キャッシュの安定性を保つため、時計の値は含みません) | userTimezone 未設定時はホストタイムゾーン |
agents.defaults.userTimezone |
システムプロンプトは、ターン間でプロンプトキャッシュを安定させるため、意図的に現在時刻を省略しています。エージェントが現在時刻を必要とする場合は、session_status を呼び出します。
ユーザータイムゾーンの設定
{ agents: { defaults: { userTimezone: "America/Chicago", }, },}userTimezone が未設定の場合、OpenClaw は実行時に Intl.DateTimeFormat().resolvedOptions().timeZone を使用してホストのタイムゾーンを解決します(設定への書き込みは行いません)。agents.defaults.timeFormat(auto | 12 | 24)は、エンベロープおよび後続の表示箇所における 12 時間制/24 時間制の表示を制御しますが、システムプロンプトのセクションには影響しません。
エンベロープのタイムゾーン値
agents.defaults.envelopeTimezone には次の値を指定できます。
"local"(デフォルト)または"host"- ホストマシンのタイムゾーン。"utc"または"gmt"- UTC。"user"- 解決されたagents.defaults.userTimezone(未設定の場合はホストのタイムゾーンにフォールバック)。- 任意の明示的な IANA タイムゾーン文字列(例:
"Europe/Vienna")。
オーバーライドする場合
"utc"を使用:異なる地域のホスト間でタイムスタンプを安定させる場合、または UTC 基準の診断/ログ出力と一致させる場合。"user"を使用:Gateway ホストがどのタイムゾーンで実行されていても、エンベロープを設定済みのユーザータイムゾーンに合わせる場合。- 固定の IANA タイムゾーンを使用:Gateway ホストのタイムゾーンとは異なるタイムゾーンで、ホストの移行にかかわらずエンベロープを常に表示する場合。
envelopeTimestamp: "off"を設定:タイムスタンプのコンテキストが会話に不要な場合。これにより、エンベロープ、エージェントへの直接プロンプトのプレフィックス、埋め込まれたモデル入力のプレフィックスから絶対タイムスタンプが削除されます。
動作の完全なリファレンス、プロバイダーごとの例、経過時間の書式設定については、日付と時刻を参照してください。
関連項目
Was this useful?