Fundamentals
พรอมป์ระบบ
OpenClaw สร้างพรอมป์ระบบแบบกำหนดเองสำหรับการรันเอเจนต์ทุกครั้ง พรอมป์นี้ OpenClaw เป็นเจ้าของ และไม่ใช้พรอมป์เริ่มต้นของรันไทม์.
พรอมป์ถูกประกอบโดย OpenClaw และถูกฉีดเข้าไปในการรันเอเจนต์แต่ละครั้ง.
การประกอบพรอมป์มีสามชั้น:
buildAgentSystemPromptเรนเดอร์พรอมป์จากอินพุตที่ระบุชัดเจน ควร คงเป็นตัวเรนเดอร์บริสุทธิ์และไม่ควรอ่านค่าคอนฟิกส่วนกลางโดยตรง.resolveAgentSystemPromptConfigแก้ไขค่าควบคุมพรอมป์ที่อิงคอนฟิก เช่น ชื่อแสดงของเจ้าของ, คำใบ้ TTS, นามแฝงโมเดล, โหมดการอ้างอิงหน่วยความจำ และโหมด การมอบหมายเอเจนต์ย่อยสำหรับเอเจนต์เฉพาะตัว.- อะแดปเตอร์รันไทม์ (แบบฝัง, CLI, ตัวอย่างคำสั่ง/ส่งออก, Compaction) รวบรวม ข้อเท็จจริงสด เช่น เครื่องมือ, สถานะแซนด์บ็อกซ์, ความสามารถของช่องทาง, ไฟล์บริบท, และส่วนเสริมพรอมป์จากผู้ให้บริการ จากนั้นเรียกใช้พรอมป์ facade ที่กำหนดค่าไว้.
สิ่งนี้ทำให้พื้นผิวพรอมป์สำหรับส่งออก/ดีบักสอดคล้องกับการรันจริงโดยไม่ เปลี่ยนรายละเอียดเฉพาะรันไทม์ทุกอย่างให้เป็นตัวสร้างขนาดใหญ่ตัวเดียว.
Plugin ผู้ให้บริการสามารถเพิ่มคำแนะนำพรอมป์ที่รับรู้แคชได้โดยไม่แทนที่ พรอมป์ทั้งหมดที่ OpenClaw เป็นเจ้าของ รันไทม์ผู้ให้บริการสามารถ:
- แทนที่ชุดเล็กของส่วนแกนหลักที่ตั้งชื่อไว้ (
interaction_style,tool_call_style,execution_bias) - ฉีด คำนำหน้าที่เสถียร ไว้เหนือขอบเขตแคชพรอมป์
- ฉีด คำต่อท้ายแบบไดนามิก ไว้ใต้ขอบเขตแคชพรอมป์
ใช้ส่วนเสริมที่ผู้ให้บริการเป็นเจ้าของสำหรับการปรับแต่งเฉพาะตระกูลโมเดล เก็บการกลายพรอมป์แบบเดิม
before_prompt_build ไว้สำหรับความเข้ากันได้หรือการเปลี่ยนแปลงพรอมป์ทั่วทั้งระบบจริง ๆ
ไม่ใช่พฤติกรรมผู้ให้บริการตามปกติ.
โอเวอร์เลย์ตระกูล OpenAI GPT-5 ทำให้กฎการดำเนินการแกนหลักสั้น และเพิ่ม คำแนะนำเฉพาะโมเดลสำหรับการยึดบุคลิก, เอาต์พุตที่กระชับ, วินัยในการใช้เครื่องมือ, การค้นหาแบบขนาน, ความครอบคลุมของสิ่งส่งมอบ, การตรวจสอบ, บริบทที่ขาดหาย และ สุขอนามัยของเครื่องมือเทอร์มินัล.
โครงสร้าง
พรอมป์ถูกตั้งใจให้กะทัดรัดและใช้ส่วนคงที่:
- เครื่องมือ: ตัวเตือนแหล่งความจริงของเครื่องมือแบบมีโครงสร้าง รวมถึงคำแนะนำการใช้เครื่องมือของรันไทม์.
- อคติการดำเนินการ: คำแนะนำการทำต่อให้เสร็จแบบกะทัดรัด: ลงมือภายในเทิร์นกับ คำขอที่ดำเนินการได้, ดำเนินต่อจนเสร็จหรือถูกบล็อก, ฟื้นตัวจากผลลัพธ์เครื่องมือที่อ่อน, ตรวจสอบสถานะที่เปลี่ยนแปลงได้แบบสด, และตรวจสอบยืนยันก่อนสรุปขั้นสุดท้าย.
- ความปลอดภัย: ตัวเตือนแนวป้องกันสั้น ๆ เพื่อหลีกเลี่ยงพฤติกรรมแสวงหาอำนาจหรือการเลี่ยงการกำกับดูแล.
- Skills (เมื่อมี): บอกโมเดลวิธีโหลดคำสั่งของ Skills ตามต้องการ.
- การควบคุม OpenClaw: บอกโมเดลให้เลือกใช้เครื่องมือ
gatewayสำหรับ งานคอนฟิก/รีสตาร์ท และหลีกเลี่ยงการแต่งคำสั่ง CLI ขึ้นมาเอง. - การอัปเดตตัวเองของ OpenClaw: วิธีตรวจสอบคอนฟิกอย่างปลอดภัยด้วย
config.schema.lookup, แพตช์คอนฟิกด้วยconfig.patch, แทนที่คอนฟิกทั้งหมด ด้วยconfig.apply, และรันupdate.runเฉพาะเมื่อผู้ใช้ร้องขออย่างชัดเจน เท่านั้น เครื่องมือgatewayที่เอเจนต์เห็นยังปฏิเสธการเขียนทับtools.exec.ask/tools.exec.securityรวมถึงนามแฝงเดิมtools.bash.*ที่ normalize ไปยังพาธ exec ที่ได้รับการป้องกันเหล่านั้น. - เวิร์กสเปซ: ไดเรกทอรีทำงาน (
agents.defaults.workspace). - เอกสาร: พาธในเครื่องไปยังเอกสาร/ซอร์สของ OpenClaw และเวลาที่ควรอ่าน.
- ไฟล์เวิร์กสเปซ (ฉีดเข้าไป): ระบุว่าไฟล์บูตสแตรปถูกรวมไว้ด้านล่าง.
- แซนด์บ็อกซ์ (เมื่อเปิดใช้): ระบุรันไทม์แบบแซนด์บ็อกซ์, พาธแซนด์บ็อกซ์, และมี exec แบบยกระดับหรือไม่.
- วันที่และเวลาปัจจุบัน: เขตเวลาเท่านั้น (เสถียรต่อแคช; นาฬิกาสดมาจาก
session_status). - คำสั่งเอาต์พุตของผู้ช่วย: ไวยากรณ์แนบไฟล์, โน้ตเสียง, และแท็กตอบกลับแบบกะทัดรัด.
- Heartbeats: พรอมป์ Heartbeat และพฤติกรรม ack เมื่อเปิดใช้ Heartbeat สำหรับเอเจนต์เริ่มต้น.
- รันไทม์: โฮสต์, OS, Node, โมเดล, ราก repo (เมื่อตรวจพบ), ระดับการคิด (หนึ่งบรรทัด).
- การให้เหตุผล: ระดับการมองเห็นปัจจุบัน + คำใบ้สลับ /reasoning.
OpenClaw เก็บเนื้อหาเสถียรขนาดใหญ่ รวมถึง บริบทโปรเจกต์ ไว้เหนือ ขอบเขตแคชพรอมป์ภายใน ส่วนช่องทาง/เซสชันที่ผันผวน เช่น คำแนะนำฝัง Control UI, การส่งข้อความ, เสียง, บริบทแชตกลุ่ม, รีแอ็กชัน, Heartbeats, และ รันไทม์ จะถูกต่อท้ายใต้ขอบเขตนั้น เพื่อให้แบ็กเอนด์ในเครื่องที่มีแคชคำนำหน้าสามารถใช้คำนำหน้าเวิร์กสเปซที่เสถียรซ้ำ ข้ามเทิร์นของช่องทางได้ คำอธิบายเครื่องมือก็ควรหลีกเลี่ยงการฝังชื่อช่องทางปัจจุบันเช่นกัน เมื่อสคีมาที่รับอยู่มีรายละเอียดรันไทม์นั้นอยู่แล้ว.
ส่วนเครื่องมือยังรวมคำแนะนำรันไทม์สำหรับงานที่รันนาน:
- ใช้ Cron สำหรับการติดตามผลในอนาคต (
check back later, การเตือนความจำ, งานซ้ำ) แทนลูป sleep ของexec, เทคนิคหน่วงyieldMs, หรือการ pollingprocessซ้ำ ๆ - ใช้
exec/processเฉพาะสำหรับคำสั่งที่เริ่มตอนนี้และยังทำงานต่อ ในเบื้องหลัง - เมื่อเปิดใช้การปลุกเมื่อเสร็จสิ้นอัตโนมัติ ให้เริ่มคำสั่งครั้งเดียวและพึ่งพา เส้นทางปลุกแบบ push เมื่อมันปล่อยเอาต์พุตหรือทำงานล้มเหลว
- ใช้
processสำหรับล็อก, สถานะ, อินพุต, หรือการแทรกแซงเมื่อคุณต้อง ตรวจสอบคำสั่งที่กำลังรันอยู่ - หากงานใหญ่กว่า ให้เลือกใช้
sessions_spawn; การเสร็จสิ้นของเอเจนต์ย่อยเป็นแบบ push และประกาศกลับไปยังผู้ร้องขอโดยอัตโนมัติ - อย่า polling
subagents list/sessions_listในลูปเพียงเพื่อรอ ให้เสร็จสิ้น
agents.defaults.subagents.delegationMode สามารถทำให้คำแนะนำนี้เข้มขึ้นได้ โหมดเริ่มต้น
suggest คงแรงกระตุ้นพื้นฐานไว้ prefer เพิ่มส่วนเฉพาะ
การมอบหมายเอเจนต์ย่อย ที่บอกให้เอเจนต์หลักทำตัวเป็นผู้ประสานงานที่ตอบสนองไว
และผลักงานใด ๆ ที่ซับซ้อนกว่าการตอบกลับโดยตรงผ่าน
sessions_spawn นี่เป็นเรื่องของพรอมป์เท่านั้น; นโยบายเครื่องมือยังคงควบคุมว่า
sessions_spawn พร้อมใช้งานหรือไม่.
เมื่อเปิดใช้เครื่องมือทดลอง update_plan ส่วนเครื่องมือยังบอก
โมเดลให้ใช้มันเฉพาะกับงานหลายขั้นตอนที่ไม่ธรรมดา, คงขั้นตอน
in_progress ไว้หนึ่งขั้นตอนพอดี, และหลีกเลี่ยงการทำซ้ำแผนทั้งหมดหลังการอัปเดตแต่ละครั้ง.
แนวป้องกันด้านความปลอดภัยในพรอมป์ระบบเป็นคำแนะนำเท่านั้น มันชี้นำพฤติกรรมโมเดลแต่ไม่ได้บังคับใช้นโยบาย ใช้นโยบายเครื่องมือ, การอนุมัติ exec, แซนด์บ็อกซ์, และ allowlist ของช่องทางสำหรับการบังคับใช้จริง; ผู้ปฏิบัติงานสามารถปิดสิ่งเหล่านี้ได้ตามการออกแบบ.
บนช่องทางที่มีการ์ด/ปุ่มอนุมัติ native พรอมป์รันไทม์ตอนนี้บอกให้
เอเจนต์พึ่งพา UI อนุมัติ native นั้นก่อน ควรรวมคำสั่ง
/approve แบบแมนนวลเฉพาะเมื่อผลลัพธ์เครื่องมือบอกว่าการอนุมัติผ่านแชตไม่พร้อมใช้งานหรือ
การอนุมัติแบบแมนนวลเป็นเส้นทางเดียวเท่านั้น.
โหมดพรอมป์
OpenClaw สามารถเรนเดอร์พรอมป์ระบบที่เล็กลงสำหรับเอเจนต์ย่อย รันไทม์ตั้งค่า
promptMode สำหรับการรันแต่ละครั้ง (ไม่ใช่คอนฟิกที่ผู้ใช้เห็น):
full(ค่าเริ่มต้น): รวมทุกส่วนข้างต้น.minimal: ใช้สำหรับเอเจนต์ย่อย; ละเว้น การเรียกคืนหน่วยความจำ, การอัปเดตตัวเองของ OpenClaw, นามแฝงโมเดล, ตัวตนผู้ใช้, คำสั่งเอาต์พุตของผู้ช่วย, การส่งข้อความ, การตอบกลับแบบเงียบ, และ Heartbeats เครื่องมือ, ความปลอดภัย, Skills เมื่อส่งมา, เวิร์กสเปซ, แซนด์บ็อกซ์, วันที่และเวลาปัจจุบัน (เมื่อ ทราบ), รันไทม์, และบริบทที่ฉีดเข้าไปยังคงพร้อมใช้งาน.none: ส่งกลับเฉพาะบรรทัดตัวตนพื้นฐาน.
เมื่อ promptMode=minimal, พรอมป์ที่ฉีดเพิ่มจะติดป้ายว่า บริบทเอเจนต์ย่อย
แทน บริบทแชตกลุ่ม.
สำหรับการรันตอบกลับอัตโนมัติของช่องทาง OpenClaw ละเว้นส่วน การตอบกลับแบบเงียบ
ทั่วไปเมื่อบริบทแบบ direct, กลุ่ม, หรือเฉพาะเครื่องมือข้อความเป็นเจ้าของสัญญาการตอบกลับที่มองเห็นได้.
เฉพาะโหมดกลุ่ม/ช่องทางอัตโนมัติแบบเก่าเท่านั้นที่ควรแสดง NO_REPLY; แชต direct
และการตอบกลับเฉพาะเครื่องมือข้อความจะไม่ได้รับคำแนะนำโทเคนแบบเงียบ.
สแนปช็อตพรอมป์
OpenClaw เก็บสแนปช็อตพรอมป์ที่ commit แล้วสำหรับเส้นทางปกติที่คาดว่าจะสำเร็จของรันไทม์ Codex ไว้ใต้
test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/ มันเรนเดอร์
พารามิเตอร์เธรด/เทิร์นของ app-server ที่เลือก รวมถึงสแต็กชั้นพรอมป์ที่ผูกกับโมเดลซึ่งสร้างขึ้นใหม่
สำหรับเทิร์น Telegram direct, กลุ่ม Discord, และ Heartbeat สแต็กนั้น
รวม fixture พรอมป์โมเดล Codex gpt-5.5 ที่ปักหมุดซึ่งสร้างจากรูปทรงแค็ตตาล็อก/แคชโมเดลของ Codex,
ข้อความผู้พัฒนาเกี่ยวกับสิทธิ์ของเส้นทางปกติที่คาดว่าจะสำเร็จของ Codex,
คำสั่งผู้พัฒนาของ OpenClaw, คำสั่งโหมดการทำงานร่วมกันตามขอบเขตเทิร์น
เมื่อ OpenClaw จัดหาให้, อินพุตเทิร์นผู้ใช้, และการอ้างอิงไปยังสเปกเครื่องมือแบบไดนามิก.
รีเฟรช fixture พรอมป์โมเดล Codex ที่ปักหมุดด้วย
pnpm prompt:snapshots:sync-codex-model โดยค่าเริ่มต้น สคริปต์จะมองหา
แคชรันไทม์ของ Codex ที่ $CODEX_HOME/models_cache.json, จากนั้น
~/.codex/models_cache.json, และหลังจากนั้นเท่านั้นจึง fallback ไปยังแบบแผน checkout Codex
ของผู้ดูแลที่ ~/code/codex/codex-rs/models-manager/models.json หาก
ไม่มีแหล่งใดอยู่ คำสั่งจะออกโดยไม่เปลี่ยน fixture ที่ commit ไว้
ส่ง --catalog <path> เพื่อรีเฟรชจากไฟล์ models_cache.json
หรือ models.json ที่ระบุ.
สแนปช็อตเหล่านี้ยังคงไม่ใช่การจับคำขอ OpenAI ดิบแบบไบต์ต่อไบต์ Codex
สามารถเพิ่มบริบทเวิร์กสเปซที่รันไทม์เป็นเจ้าของ เช่น AGENTS.md, บริบทสภาพแวดล้อม,
ความทรงจำ, คำสั่งแอป/Plugin, และคำสั่งโหมดการทำงานร่วมกัน Default
ในตัว ภายในรันไทม์ Codex หลังจาก OpenClaw ส่งพารามิเตอร์เธรดและเทิร์นแล้ว.
สร้างใหม่ด้วย pnpm prompt:snapshots:gen และตรวจสอบ drift ด้วย
pnpm prompt:snapshots:check CI รันการตรวจสอบ drift ใน shard ขอบเขตเพิ่มเติม
เพื่อให้การเปลี่ยนแปลงพรอมป์และการอัปเดตสแนปช็อตยังคงผูกกับ PR เดียวกัน.
การฉีดบูตสแตรปเวิร์กสเปซ
ไฟล์บูตสแตรปถูก resolve จากเวิร์กสเปซที่ใช้งานอยู่ จากนั้นถูกส่งต่อไปยัง พื้นผิวพรอมป์ที่ตรงกับอายุการใช้งานของไฟล์:
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(เฉพาะบนเวิร์กสเปซใหม่เอี่ยม)MEMORY.mdเมื่อมีอยู่
บนฮาร์เนส Codex native OpenClaw หลีกเลี่ยงการทำซ้ำไฟล์เวิร์กสเปซที่เสถียร
ในทุกเทิร์นผู้ใช้ Codex โหลด AGENTS.md ผ่านการค้นพบเอกสารโปรเจกต์
ของตัวเอง SOUL.md, IDENTITY.md, TOOLS.md, และ USER.md ถูกส่งต่อเป็น
คำสั่งผู้พัฒนา Codex รายการ Skills แบบกะทัดรัดของ OpenClaw ก็ถูกส่งต่อ
เป็นคำสั่งผู้พัฒนาการทำงานร่วมกันตามขอบเขตเทิร์นเช่นกัน เนื้อหา HEARTBEAT.md
ไม่ถูกฉีดเข้าไป; เทิร์น Heartbeat จะได้รับโน้ตโหมดการทำงานร่วมกันที่ชี้ไปยังไฟล์
เมื่อไฟล์มีอยู่และไม่ว่างเปล่า เนื้อหา MEMORY.md จากเวิร์กสเปซเอเจนต์
ที่กำหนดค่าไว้จะไม่ถูกวางลงในทุกเทิร์น Codex native; เมื่อเครื่องมือหน่วยความจำ
พร้อมใช้งานสำหรับเวิร์กสเปซนั้น เทิร์น Codex จะได้รับโน้ตหน่วยความจำเวิร์กสเปซขนาดเล็กใน
คำสั่งผู้พัฒนาการทำงานร่วมกันตามขอบเขตเทิร์น และควรใช้ memory_search
หรือ memory_get เมื่อหน่วยความจำถาวรเกี่ยวข้อง หากเครื่องมือถูกปิดใช้งาน, การค้นหาหน่วยความจำ
ไม่พร้อมใช้งาน, หรือเวิร์กสเปซที่ใช้งานอยู่ต่างจากเวิร์กสเปซหน่วยความจำของเอเจนต์,
MEMORY.md จะ fallback ไปยังเส้นทางบริบทเทิร์นแบบมีขอบเขตตามปกติ เนื้อหา
BOOTSTRAP.md ที่ใช้งานอยู่ยังคงบทบาทบริบทเทิร์นตามปกติไว้ในตอนนี้.
บนฮาร์เนสที่ไม่ใช่ Codex ไฟล์บูตสแตรปยังคงถูกประกอบเข้าไปใน
พรอมป์ OpenClaw ตาม gate ที่มีอยู่ HEARTBEAT.md ถูกละเว้นบน
การรันปกติเมื่อ Heartbeat ถูกปิดใช้งานสำหรับเอเจนต์เริ่มต้น หรือ
agents.defaults.heartbeat.includeSystemPromptSection เป็น false เก็บไฟล์ที่ฉีดเข้าไป
ให้กระชับ โดยเฉพาะ MEMORY.md ที่ไม่ใช่ Codex MEMORY.md ตั้งใจให้คงเป็น
สรุประยะยาวที่คัดสรรแล้ว; โน้ตรายวันโดยละเอียดควรอยู่ใน memory/*.md ซึ่ง
memory_search และ memory_get สามารถดึงขึ้นมาตามต้องการได้ ไฟล์
MEMORY.md ที่ไม่ใช่ Codex ขนาดใหญ่เกินไปจะเพิ่มการใช้พรอมป์ และอาจถูกฉีดบางส่วน
เพราะข้อจำกัดไฟล์บูตสแตรปด้านล่าง.
ไฟล์ขนาดใหญ่จะถูกตัดทอนพร้อมเครื่องหมายกำกับ ขนาดสูงสุดต่อไฟล์ควบคุมด้วย
agents.defaults.bootstrapMaxChars (ค่าเริ่มต้น: 20000) เนื้อหา bootstrap
ทั้งหมดที่ฉีดเข้ามาจากหลายไฟล์ถูกจำกัดด้วย agents.defaults.bootstrapTotalMaxChars
(ค่าเริ่มต้น: 60000) ไฟล์ที่หายไปจะฉีดเครื่องหมายไฟล์หายแบบสั้น เมื่อเกิดการตัดทอน
OpenClaw สามารถฉีดประกาศเตือนแบบกระชับในพรอมป์ระบบได้ ควบคุมสิ่งนี้ด้วย
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
ค่าเริ่มต้น: always) จำนวนดิบ/ที่ฉีดเข้ามาแบบละเอียดจะอยู่ใน diagnostics เช่น
/context, /status, doctor และบันทึก
สำหรับไฟล์หน่วยความจำ การตัดทอนไม่ใช่การสูญหายของข้อมูล: ไฟล์ยังคงสมบูรณ์อยู่บนดิสก์
บน Codex แบบเนทีฟ MEMORY.md จะถูกอ่านตามต้องการผ่านเครื่องมือหน่วยความจำเมื่อ
พร้อมใช้งาน พร้อม fallback ของพรอมป์แบบมีขอบเขตเมื่อเครื่องมือทำงานไม่ได้ บน
harness อื่น โมเดลจะเห็นเฉพาะสำเนาที่ฉีดเข้ามาแบบย่อจนกว่าจะอ่านหรือค้นหา
หน่วยความจำโดยตรง หาก MEMORY.md ถูกตัดทอนซ้ำๆ ที่นั่น ให้กลั่นเป็นสรุปถาวร
ที่สั้นลงและย้ายประวัติแบบละเอียดไปไว้ใน memory/*.md หรือเพิ่มขีดจำกัด
bootstrap โดยตั้งใจ
เซสชันซับเอเจนต์จะฉีดเฉพาะ AGENTS.md และ TOOLS.md (ไฟล์ bootstrap อื่น
จะถูกกรองออกเพื่อให้บริบทของซับเอเจนต์มีขนาดเล็ก)
hook ภายในสามารถดักขั้นตอนนี้ผ่าน agent:bootstrap เพื่อแก้ไขหรือแทนที่
ไฟล์ bootstrap ที่ฉีดเข้ามา (ตัวอย่างเช่น สลับ SOUL.md เป็น persona ทางเลือก)
หากคุณต้องการทำให้เอเจนต์ฟังดูทั่วไปน้อยลง ให้เริ่มจาก คู่มือบุคลิกภาพ SOUL.md
หากต้องการตรวจสอบว่าไฟล์ที่ฉีดแต่ละไฟล์มีส่วนร่วมมากเท่าใด (ดิบเทียบกับที่ฉีด, การตัดทอน, รวมถึง overhead ของสคีมาเครื่องมือ) ให้ใช้ /context list หรือ /context detail ดู บริบท
การจัดการเวลา
พรอมป์ระบบจะมีส่วน วันที่และเวลาปัจจุบัน โดยเฉพาะเมื่อทราบเขตเวลาของผู้ใช้ เพื่อให้แคชของพรอมป์เสถียร ตอนนี้ส่วนนี้จึงรวมเฉพาะ เขตเวลา เท่านั้น (ไม่มีนาฬิกาไดนามิกหรือรูปแบบเวลา)
ใช้ session_status เมื่อเอเจนต์ต้องการเวลาปัจจุบัน การ์ดสถานะจะมีบรรทัด timestamp
เครื่องมือเดียวกันนี้ยังสามารถตั้งค่า model override ต่อเซสชันได้แบบไม่บังคับ
(model=default จะล้างค่า)
กำหนดค่าด้วย:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
ดูรายละเอียดพฤติกรรมทั้งหมดที่ วันที่และเวลา
Skills
เมื่อมี Skills ที่เข้าเงื่อนไข OpenClaw จะฉีด รายการ Skills ที่พร้อมใช้งาน
แบบกะทัดรัด (formatSkillsForPrompt) ซึ่งรวม พาธไฟล์ และเครื่องหมาย
<version> ที่ได้จากเนื้อหาสำหรับแต่ละ skill พรอมป์จะสั่งให้โมเดลใช้ read
เพื่อโหลด SKILL.md จากตำแหน่งที่ระบุไว้ (workspace, managed หรือ bundled)
และให้อ่าน skill ซ้ำเมื่อ <version> แตกต่างจากเทิร์นก่อนหน้า หากไม่มี
Skills ที่เข้าเงื่อนไข ส่วน Skills จะถูกละไว้
เทิร์นของ Codex แบบเนทีฟจะได้รับรายการนี้เป็นคำสั่ง developer สำหรับการร่วมมือ ที่มีขอบเขตเฉพาะเทิร์น แทนอินพุตผู้ใช้รายเทิร์น ยกเว้นเทิร์น cron แบบเบาที่ คงพรอมป์ที่ตั้งเวลาไว้ให้เหมือนเดิมทุกประการ harness อื่นจะคงส่วนพรอมป์ปกติไว้
ตำแหน่งสามารถชี้ไปยัง skill ที่ซ้อนอยู่ เช่น
skills/personal/foo/SKILL.md การซ้อนมีไว้เพื่อการจัดระเบียบเท่านั้น พรอมป์ยังคง
ใช้ชื่อ skill แบบแบนจาก frontmatter ของ SKILL.md
การเข้าเงื่อนไขรวมถึง gate ของเมทาดาทา skill, การตรวจสอบสภาพแวดล้อม/การกำหนดค่า
ขณะรัน และ allowlist ของ skill ของเอเจนต์ที่มีผลเมื่อกำหนดค่า
agents.defaults.skills หรือ agents.list[].skills
Skills ที่ bundle มากับ Plugin จะเข้าเงื่อนไขเฉพาะเมื่อ Plugin เจ้าของถูกเปิดใช้งาน สิ่งนี้ทำให้ Plugin เครื่องมือสามารถเปิดเผยคู่มือการทำงานที่ลึกขึ้นได้โดยไม่ต้องฝัง คำแนะนำทั้งหมดนั้นไว้โดยตรงในคำอธิบายเครื่องมือทุกตัว
<available_skills> <skill> <name>...</name> <description>...</description> <location>...</location> <version>sha256:...</version> </skill></available_skills>สิ่งนี้ทำให้พรอมป์พื้นฐานมีขนาดเล็ก ขณะยังคงเปิดใช้ Skills แบบเจาะจงเป้าหมายได้
งบประมาณรายการ Skills เป็นของระบบย่อย Skills:
- ค่าเริ่มต้นแบบรวม:
skills.limits.maxSkillsPromptChars - override ต่อเอเจนต์:
agents.list[].skillsLimits.maxSkillsPromptChars
ข้อความตัดตอนของรันไทม์ทั่วไปแบบมีขอบเขตใช้ surface อื่น:
agents.defaults.contextLimits.*agents.list[].contextLimits.*
การแยกนี้ทำให้การกำหนดขนาดของ Skills แยกจากการกำหนดขนาดการอ่าน/การฉีดของรันไทม์
เช่น memory_get, ผลลัพธ์เครื่องมือสด และการรีเฟรช AGENTS.md หลัง Compaction
เอกสารประกอบ
พรอมป์ระบบมีส่วน เอกสารประกอบ เมื่อเอกสารในเครื่องพร้อมใช้งาน ส่วนนี้จะชี้ไปยัง
ไดเรกทอรีเอกสาร OpenClaw ในเครื่อง (docs/ ใน Git checkout หรือเอกสารในแพ็กเกจ
npm ที่ bundle มา) หากเอกสารในเครื่องไม่พร้อมใช้งาน จะ fallback ไปที่
https://docs.openclaw.ai
ส่วนเดียวกันนี้ยังรวมตำแหน่งซอร์สของ OpenClaw ด้วย Git checkout จะเปิดเผย root
ของซอร์สในเครื่องเพื่อให้เอเจนต์ตรวจสอบโค้ดได้โดยตรง การติดตั้งแพ็กเกจจะมี URL
ซอร์ส GitHub และบอกให้เอเจนต์ตรวจสอบซอร์สที่นั่นเมื่อเอกสารไม่สมบูรณ์หรือล้าสมัย
พรอมป์ยังระบุ mirror เอกสารสาธารณะ, Discord ชุมชน และ ClawHub
(https://clawhub.ai) สำหรับการค้นหา Skills โดยวางกรอบให้
เอกสารเป็นแหล่งอ้างอิงหลักสำหรับความรู้เกี่ยวกับ OpenClaw เอง ก่อนที่โมเดลจะเข้าใจว่า
OpenClaw ทำงานอย่างไร ซึ่งรวมถึงหน่วยความจำ/บันทึกรายวัน, เซสชัน, เครื่องมือ,
Gateway, config, คำสั่ง หรือบริบทโปรเจกต์ พรอมป์บอกให้โมเดลใช้เอกสารในเครื่อง
(หรือ mirror เอกสารเมื่อเอกสารในเครื่องไม่พร้อมใช้งาน) ก่อน และให้ถือว่า
AGENTS.md, บริบทโปรเจกต์, บันทึก workspace/profile/memory และ memory_search
เป็นบริบทคำสั่งหรือหน่วยความจำผู้ใช้ แทนที่จะเป็นความรู้ด้านการออกแบบหรือการนำไปใช้
ของ OpenClaw หากเอกสารไม่มีข้อมูลหรือล้าสมัย โมเดลควรระบุเช่นนั้นและตรวจสอบซอร์ส
พรอมป์ยังบอกให้โมเดลรัน openclaw status เองเมื่อเป็นไปได้ และถามผู้ใช้เฉพาะเมื่อ
ไม่มีสิทธิ์เข้าถึง
สำหรับการกำหนดค่าโดยเฉพาะ จะชี้เอเจนต์ไปยัง action ของเครื่องมือ gateway
ชื่อ config.schema.lookup เพื่อดูเอกสารและข้อจำกัดระดับฟิลด์ที่ถูกต้อง จากนั้นไปที่
docs/gateway/configuration.md และ docs/gateway/configuration-reference.md
เพื่อคำแนะนำที่กว้างขึ้น