Concept internals
เขตเวลา
OpenClaw กำหนดรูปแบบการประทับเวลาให้เป็นมาตรฐาน เพื่อให้โมเดลเห็น เวลาอ้างอิงเดียว แทนการผสมเวลาท้องถิ่นจากผู้ให้บริการแต่ละราย มีสามส่วนที่แสดงเขตเวลา โดยแต่ละส่วนมีวัตถุประสงค์เฉพาะ:
ส่วนแสดงเขตเวลาสามส่วน
| ส่วนแสดงผล | สิ่งที่แสดง | ค่าเริ่มต้น | กำหนดค่าผ่าน |
|---|---|---|---|
| ซองข้อความ | ครอบข้อความขาเข้าจากช่องทาง: [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 จะตรวจหาเขตเวลาของโฮสต์ขณะทำงานผ่าน 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"เมื่อบริบทการประทับเวลาไม่มีประโยชน์ต่อการสนทนา การตั้งค่านี้จะลบการประทับเวลาแบบสัมบูรณ์ออกจากซองข้อความ คำนำหน้าพรอมต์โดยตรงของตัวแทน และคำนำหน้าอินพุตโมเดลที่ฝังอยู่
สำหรับข้อมูลอ้างอิงพฤติกรรมทั้งหมด ตัวอย่างสำหรับผู้ให้บริการแต่ละราย และการจัดรูปแบบเวลาที่ผ่านไป โปรดดู วันที่และเวลา
เนื้อหาที่เกี่ยวข้อง
- วันที่และเวลา - พฤติกรรมและตัวอย่างทั้งหมดของซองข้อความ/เครื่องมือ/พรอมต์
- Heartbeat - ช่วงเวลาทำงานใช้เขตเวลาในการจัดกำหนดการ
- งาน Cron - นิพจน์ cron ใช้เขตเวลาในการจัดกำหนดการ