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, หรือการ polling process ซ้ำ ๆ
  • ใช้ 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.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.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.userTimezone
  • agents.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 เครื่องมือสามารถเปิดเผยคู่มือการทำงานที่ลึกขึ้นได้โดยไม่ต้องฝัง คำแนะนำทั้งหมดนั้นไว้โดยตรงในคำอธิบายเครื่องมือทุกตัว

Code
<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 เพื่อคำแนะนำที่กว้างขึ้น

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page