日期與時間

OpenClaw 預設使用主機本地時間作為傳輸時間戳記使用者時區僅出現在系統提示詞中。供應商時間戳記原樣保留,讓工具維持其原生語意(目前時間可透過 session_status 取得)。

訊息信封(預設使用本地時間)

收到的訊息會加上時間戳記(精確到分鐘):

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

無論供應商的時區為何,信封時間戳記預設使用主機本地時間

你可以覆蓋這個行為:

{
  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] hello

使用者時區:

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

啟用已過時間:

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

系統提示詞:目前日期與時間

當使用者時區已知時,系統提示詞會包含一個獨立的目前日期與時間區段,其中只放時區(不含時鐘或時間格式),以維持提示詞快取的穩定性:

Time zone: America/Chicago

當 Agent 需要取得目前時間時,使用 session_status 工具;其狀態卡片中包含時間戳記。

系統事件行(預設使用本地時間)

插入 Agent 上下文的排隊系統事件,會以與訊息信封相同的時區選擇規則加上時間戳記前綴(預設:主機本地時間)。

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

設定使用者時區與格式

{
  agents: {
    defaults: {
      userTimezone: "America/Chicago",
      timeFormat: "auto", // auto | 12 | 24
    },
  },
}
  • userTimezone 設定提示詞上下文中的使用者本地時區
  • timeFormat 控制提示詞中的12 小時/24 小時制auto 跟隨作業系統偏好。

時間格式偵測(auto)

timeFormat: "auto" 時,OpenClaw 會檢查作業系統偏好(macOS/Windows),退回語系格式。偵測結果按程序快取,避免重複呼叫系統 API。

工具酬載與連接器(原始供應商時間 + 正規化欄位)

頻道工具回傳供應商原生時間戳記,並額外附加正規化欄位以確保一致性:

  • timestampMs:UTC 紀元毫秒
  • timestampUtc:ISO 8601 UTC 字串

原始供應商欄位原樣保留,不會遺失資料。

  • Slack:來自 API 的類紀元字串
  • Discord:UTC ISO 時間戳記
  • Telegram/WhatsApp:供應商專屬的數值或 ISO 時間戳記

如需本地時間,請在下游使用已知時區進行轉換。

相關文件