Fundamentals
พรอมต์ระบบ
OpenClaw สร้างพรอมต์ระบบของตนเองสำหรับการเรียกใช้เอเจนต์ทุกครั้ง โดยไม่มีพรอมต์เริ่มต้นขณะรันไทม์
การประกอบพรอมต์มีสามชั้น:
buildAgentSystemPromptเรนเดอร์พรอมต์จากอินพุตที่ระบุอย่างชัดเจน โดยยังคงเป็นตัวเรนเดอร์บริสุทธิ์และไม่อ่านการกำหนดค่าส่วนกลางโดยตรงresolveAgentSystemPromptConfigแก้ค่าตัวควบคุมพรอมต์ที่อิงการกำหนดค่า (การแสดงชื่อเจ้าของ คำแนะนำ TTS นามแฝงโมเดล โหมดการอ้างอิงหน่วยความจำ และโหมดการมอบหมายงานให้เอเจนต์ย่อย) สำหรับเอเจนต์ที่ระบุ- อะแดปเตอร์รันไทม์ (แบบฝัง, CLI, ตัวอย่างคำสั่ง/การส่งออก, Compaction) รวบรวมข้อมูลสด (เครื่องมือ สถานะแซนด์บ็อกซ์ ความสามารถของช่องทาง ไฟล์บริบท และส่วนเสริมพรอมต์จากผู้ให้บริการ) แล้วเรียกใช้ส่วนเชื่อมต่อพรอมต์ที่กำหนดค่าไว้
แนวทางนี้ช่วยให้พื้นผิวพรอมต์สำหรับการส่งออก/ดีบักสอดคล้องกับการเรียกใช้จริง โดยไม่รวมรายละเอียดรันไทม์ทั้งหมดไว้ในตัวสร้างขนาดใหญ่เพียงตัวเดียว
Plugin ของผู้ให้บริการสามารถเพิ่มคำแนะนำที่คำนึงถึงแคชได้โดยไม่ต้องแทนที่พรอมต์ที่ OpenClaw เป็นเจ้าของ รันไทม์ของผู้ให้บริการสามารถ:
- แทนที่หนึ่งในสามส่วนหลักที่มีชื่อกำกับ:
interaction_style,tool_call_style,execution_bias - แทรก คำนำหน้าคงที่ เหนือขอบเขตแคชพรอมต์
- แทรก คำต่อท้ายแบบไดนามิก ใต้ขอบเขตแคชพรอมต์
ใช้ส่วนเสริมที่ผู้ให้บริการเป็นเจ้าของสำหรับการปรับแต่งเฉพาะตระกูลโมเดล สงวนฮุกเดิม before_prompt_build ไว้สำหรับความเข้ากันได้หรือการเปลี่ยนแปลงพรอมต์ที่เป็นส่วนกลางอย่างแท้จริง
โอเวอร์เลย์ตระกูล OpenAI/Codex GPT-5 ที่รวมมาให้ (resolveGpt5SystemPromptContribution) ใช้กลไกนี้ ได้แก่ สัญญาพฤติกรรม stablePrefix (นโยบายการดำเนินงาน วินัยการใช้เครื่องมือ สัญญาเอาต์พุต และสัญญาการทำงานให้เสร็จสมบูรณ์) พร้อมการเขียนทับ interaction_style แบบไม่บังคับเพื่อให้น้ำเสียงเป็นมิตรมากขึ้น กลไกนี้ใช้กับรหัสโมเดล gpt-5* ใด ๆ ที่กำหนดเส้นทางผ่าน Plugin ของ OpenAI หรือ Codex และควบคุมโดย agents.defaults.promptOverlays.gpt5.personality ("friendly"/"on" หรือ "off")
โครงสร้าง
พรอมต์มีขนาดกะทัดรัดและประกอบด้วยส่วนที่กำหนดไว้ตายตัว:
- เครื่องมือ: คำเตือนว่าแหล่งข้อมูลจริงคือเครื่องมือที่มีโครงสร้าง พร้อมแนวทางการใช้เครื่องมือขณะรันไทม์ เมื่อเปิดใช้เครื่องมือทดลอง
update_plan(tools.experimental.planTool) คำอธิบายของเครื่องมือจะเพิ่มข้อกำหนดว่า ให้ใช้เฉพาะงานหลายขั้นตอนที่ไม่ใช่งานเล็กน้อย ให้มีขั้นตอนสถานะin_progressได้สูงสุดหนึ่งขั้นตอน และไม่ต้องใช้กับงานง่าย ๆ ที่มีเพียงขั้นตอนเดียว - แนวโน้มการดำเนินงาน: ลงมือทำคำขอที่ดำเนินการได้ภายในรอบปัจจุบัน ทำต่อจนเสร็จหรือถูกขัดขวาง กู้สถานการณ์จากผลลัพธ์เครื่องมือที่ไม่เพียงพอ ตรวจสอบสถานะที่เปลี่ยนแปลงได้แบบสด และยืนยันความถูกต้องก่อนสรุปผล
- ความปลอดภัย: คำเตือนสั้น ๆ เพื่อป้องกันพฤติกรรมแสวงหาอำนาจหรือหลีกเลี่ยงการกำกับดูแล
- Skills (เมื่อพร้อมใช้งาน): บอกโมเดลถึงวิธีโหลดคำสั่งของ Skills เมื่อต้องการ
- การควบคุม OpenClaw: ให้ใช้เครื่องมือ
gatewayเป็นหลักสำหรับงานกำหนดค่า/รีสตาร์ต และห้ามสร้างคำสั่ง CLI ขึ้นเอง - การอัปเดต OpenClaw ด้วยตนเอง: ตรวจสอบการกำหนดค่าอย่างปลอดภัยด้วย
config.schema.lookupแก้ไขด้วยconfig.patchแทนที่การกำหนดค่าทั้งหมดด้วยconfig.applyและเรียกใช้update.runเฉพาะเมื่อผู้ใช้ร้องขออย่างชัดเจน เครื่องมือgatewayที่เอเจนต์ใช้งานจะปฏิเสธการเขียนtools.exec.ask/tools.exec.securityใหม่ รวมถึงนามแฝงเดิมtools.bash.*ที่ถูกทำให้เป็นมาตรฐานไปยังพาธที่ได้รับการปกป้องเหล่านั้น - พื้นที่ทำงาน: ไดเรกทอรีทำงาน (
agents.defaults.workspace) - เอกสารประกอบ: พาธเอกสาร/ซอร์สภายในเครื่องและเวลาที่ควรอ่าน
- ไฟล์พื้นที่ทำงาน (แทรกเข้ามา): ระบุว่าไฟล์บูตสแตรปถูกรวมไว้ด้านล่าง
- แซนด์บ็อกซ์ (เมื่อเปิดใช้): รันไทม์ที่อยู่ในแซนด์บ็อกซ์ พาธแซนด์บ็อกซ์ และความพร้อมใช้งานของการเรียกใช้คำสั่งด้วยสิทธิ์ระดับสูง
- วันที่และเวลาปัจจุบัน: เฉพาะเขตเวลา (คงที่สำหรับแคช โดยนาฬิกาสดมาจาก
session_status) - ข้อกำหนดเอาต์พุตของผู้ช่วย: ไวยากรณ์แบบกะทัดรัดสำหรับไฟล์แนบ ข้อความเสียง และแท็กตอบกลับ
- Heartbeat: พรอมต์ Heartbeat และพฤติกรรมการตอบรับ เมื่อเปิดใช้ Heartbeat สำหรับเอเจนต์เริ่มต้น
- รันไทม์: โฮสต์ ระบบปฏิบัติการ Node โมเดล รากของรีโพซิทอรี (เมื่อตรวจพบ) และระดับการคิด (หนึ่งบรรทัด)
- การให้เหตุผล: ระดับการมองเห็นปัจจุบัน พร้อมคำแนะนำเกี่ยวกับตัวสลับ
/reasoning
เนื้อหาคงที่ขนาดใหญ่ (รวมถึง บริบทโครงการ) จะอยู่เหนือขอบเขตแคชพรอมต์ภายใน ส่วนที่เปลี่ยนแปลงในแต่ละรอบ (คำแนะนำแบบฝังของ UI ควบคุม, การส่งข้อความ, เสียง, บริบทแชตกลุ่ม, ปฏิกิริยา, Heartbeat, รันไทม์) จะถูกต่อท้ายใต้ขอบเขตดังกล่าว เพื่อให้แบ็กเอนด์ภายในเครื่องที่มีแคชคำนำหน้าสามารถนำคำนำหน้าพื้นที่ทำงานส่วนที่คงที่กลับมาใช้ซ้ำข้ามรอบของช่องทางได้ คำอธิบายเครื่องมือควรหลีกเลี่ยงการฝังชื่อช่องทางปัจจุบันเมื่อสคีมาที่รับรองมีรายละเอียดรันไทม์ดังกล่าวอยู่แล้ว
ส่วนเครื่องมือยังมีแนวทางสำหรับงานที่ใช้เวลานาน:
- ใช้ cron สำหรับการติดตามผลในอนาคต (
check back laterการแจ้งเตือน และงานที่เกิดซ้ำ) แทนลูปพักของexecกลเม็ดหน่วงเวลาด้วยyieldMsหรือการโพลprocessซ้ำ ๆ - ใช้
exec/processเฉพาะกับคำสั่งที่เริ่มทำงานทันทีและทำต่อในเบื้องหลัง - เมื่อเปิดใช้การปลุกอัตโนมัติเมื่องานเสร็จ ให้เริ่มคำสั่งเพียงครั้งเดียวและพึ่งพาเส้นทางการปลุกแบบพุช
- ใช้
processสำหรับบันทึก สถานะ อินพุต หรือการแทรกแซงคำสั่งที่กำลังทำงาน - สำหรับงานขนาดใหญ่ ให้ใช้
sessions_spawnเป็นหลัก การทำงานเสร็จของเอเจนต์ย่อยเป็นแบบพุชและจะแจ้งกลับไปยังผู้ร้องขอโดยอัตโนมัติ - ห้ามโพล
subagents list/sessions_listวนซ้ำเพียงเพื่อรอให้งานเสร็จ
agents.defaults.subagents.delegationMode (ค่าเริ่มต้น "suggest") สามารถเพิ่มความเข้มงวดของแนวทางนี้ได้ ค่า "prefer" จะเพิ่มส่วนเฉพาะ การมอบหมายงานให้เอเจนต์ย่อย เพื่อบอกเอเจนต์หลักให้ทำหน้าที่เป็นผู้ประสานงานที่ตอบสนองรวดเร็ว และส่งงานใด ๆ ที่ซับซ้อนกว่าการตอบโดยตรงผ่าน sessions_spawn การตั้งค่านี้มีผลเฉพาะกับพรอมต์เท่านั้น โดยนโยบายเครื่องมือยังคงควบคุมว่า sessions_spawn พร้อมใช้งานหรือไม่
ข้อจำกัดด้านความปลอดภัยในพรอมต์ระบบเป็นเพียงคำแนะนำ ไม่ใช่การบังคับใช้ สำหรับการบังคับใช้อย่างเคร่งครัด ให้ใช้นโยบายเครื่องมือ การอนุมัติการเรียกใช้คำสั่ง แซนด์บ็อกซ์ และรายการอนุญาตของช่องทาง ทั้งนี้ ผู้ดำเนินการสามารถปิดข้อจำกัดในพรอมต์ได้ตามการออกแบบ
ในช่องทางที่มีการ์ด/ปุ่มอนุมัติแบบเนทีฟ พรอมต์จะบอกเอเจนต์ให้พึ่งพา UI ดังกล่าวก่อน และให้รวมคำสั่ง /approve แบบดำเนินการเองเฉพาะเมื่อผลลัพธ์เครื่องมือระบุว่าไม่สามารถอนุมัติผ่านแชตได้ หรือการอนุมัติด้วยตนเองเป็นช่องทางเดียวเท่านั้น
โหมดพรอมต์
OpenClaw เรนเดอร์พรอมต์ระบบที่มีขนาดเล็กกว่าสำหรับเอเจนต์ย่อย รันไทม์จะตั้งค่า promptMode สำหรับการเรียกใช้แต่ละครั้ง (ไม่ใช่การกำหนดค่าที่ผู้ใช้มองเห็น):
full(ค่าเริ่มต้น): รวมทุกส่วนข้างต้นminimal: ใช้สำหรับเอเจนต์ย่อย โดยละเว้นส่วนพรอมต์หน่วยความจำ (รวมมาในชื่อ การเรียกคืนความทรงจำ), การอัปเดต OpenClaw ด้วยตนเอง, นามแฝงโมเดล, ข้อมูลประจำตัวผู้ใช้, ข้อกำหนดเอาต์พุตของผู้ช่วย, การส่งข้อความ, การตอบกลับแบบเงียบ และ Heartbeat ส่วนเครื่องมือ ความปลอดภัย, Skills (เมื่อระบุมา), พื้นที่ทำงาน, แซนด์บ็อกซ์, วันที่และเวลาปัจจุบัน (เมื่อทราบ), รันไทม์ และบริบทที่แทรกเข้ามายังคงพร้อมใช้งานnone: ส่งคืนเฉพาะบรรทัดข้อมูลประจำตัวพื้นฐาน
ภายใต้ promptMode=minimal พรอมต์เพิ่มเติมที่แทรกเข้ามาจะใช้ป้ายกำกับ บริบทเอเจนต์ย่อย แทน บริบทแชตกลุ่ม
สำหรับการเรียกใช้การตอบกลับอัตโนมัติของช่องทาง OpenClaw จะละเว้นส่วนทั่วไป การตอบกลับแบบเงียบ เมื่อบริบทแบบตรง แบบกลุ่ม หรือแบบใช้เฉพาะเครื่องมือส่งข้อความเป็นเจ้าของสัญญาการตอบกลับที่มองเห็นอยู่แล้ว เฉพาะโหมดกลุ่ม/ช่องทางอัตโนมัติแบบเดิมเท่านั้นที่แสดง NO_REPLY ส่วนแชตโดยตรงและการตอบกลับที่ใช้เฉพาะเครื่องมือส่งข้อความจะข้ามคำแนะนำโทเค็นแบบเงียบ
สแนปช็อตพรอมต์
OpenClaw เก็บสแนปช็อตพรอมต์ที่คอมมิตไว้สำหรับเส้นทางปกติของรันไทม์ Codex ภายใต้ test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/ โดยเรนเดอร์พารามิเตอร์เธรด/รอบของเซิร์ฟเวอร์แอปที่เลือก พร้อมสแต็กชั้นพรอมต์ที่ส่งให้โมเดลซึ่งสร้างขึ้นใหม่ สำหรับรอบการสนทนาโดยตรงของ Telegram กลุ่ม Discord และ Heartbeat ได้แก่ ฟิกซ์เจอร์พรอมต์โมเดล Codex gpt-5.5 ที่ตรึงไว้ ข้อความนักพัฒนาสำหรับสิทธิ์ในเส้นทางปกติของ Codex คำสั่งนักพัฒนาของ OpenClaw คำสั่งโหมดการทำงานร่วมกันเฉพาะรอบเมื่อ OpenClaw เป็นผู้จัดหา อินพุตของผู้ใช้ในรอบนั้น และการอ้างอิงไปยังข้อกำหนดเครื่องมือแบบไดนามิก
รีเฟรชฟิกซ์เจอร์พรอมต์โมเดล Codex ที่ตรึงไว้ด้วย pnpm prompt:snapshots:sync-codex-model โดยค่าเริ่มต้น คำสั่งจะค้นหา $CODEX_HOME/models_cache.json จากนั้น ~/.codex/models_cache.json และต่อด้วยรูปแบบเช็กเอาต์ของผู้ดูแล ~/code/codex/codex-rs/models-manager/models.json หากไม่พบไฟล์ใด คำสั่งจะออกโดยไม่เปลี่ยนแปลงฟิกซ์เจอร์ที่คอมมิตไว้ ส่ง --catalog <path> เพื่อรีเฟรชจากไฟล์ models_cache.json หรือ models.json ที่ระบุ
สแนปช็อตเหล่านี้ไม่ใช่การจับคำขอ OpenAI แบบดิบที่ตรงกันทุกไบต์ Codex สามารถเพิ่มบริบทพื้นที่ทำงานที่รันไทม์เป็นเจ้าของ (AGENTS.md บริบทสภาพแวดล้อม ความทรงจำ คำสั่งของแอป/Plugin และคำสั่งโหมดการทำงานร่วมกันเริ่มต้นที่มีมาให้) หลังจาก OpenClaw ส่งพารามิเตอร์เธรดและรอบแล้ว
สร้างใหม่ด้วย pnpm prompt:snapshots:gen และตรวจสอบความคลาดเคลื่อนด้วย pnpm prompt:snapshots:check โดย CI จะเรียกใช้การตรวจสอบความคลาดเคลื่อนร่วมกับชาร์ดขอบเขตเพิ่มเติม เพื่อให้การเปลี่ยนแปลงพรอมต์และการอัปเดตสแนปช็อตรวมอยู่ใน PR เดียวกัน
การแทรกไฟล์บูตสแตรปของพื้นที่ทำงาน
ไฟล์บูตสแตรปจะถูกค้นหาจากพื้นที่ทำงานที่ใช้งานอยู่และกำหนดเส้นทางไปยังพื้นผิวพรอมต์ที่ตรงกับอายุการใช้งานของไฟล์:
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(เฉพาะพื้นที่ทำงานที่สร้างใหม่)MEMORY.mdเมื่อมีอยู่
บนฮาร์เนส Codex แบบเนทีฟ OpenClaw จะหลีกเลี่ยงการใส่ไฟล์พื้นที่ทำงานที่คงที่ซ้ำในทุกรอบของผู้ใช้ Codex โหลด AGENTS.md ผ่านกลไกค้นหาเอกสารโครงการของตนเอง TOOLS.md จะถูกส่งต่อเป็นคำสั่งนักพัฒนา Codex ที่สืบทอดได้ ส่วน SOUL.md, IDENTITY.md และ USER.md จะถูกส่งต่อเป็นคำสั่งนักพัฒนาสำหรับการทำงานร่วมกันเฉพาะรอบ เพื่อไม่ให้เอเจนต์ย่อย Codex แบบเนทีฟสืบทอดไฟล์เหล่านี้ เนื้อหา HEARTBEAT.md จะไม่ถูกแทรกโดยตรง แต่รอบ Heartbeat จะได้รับหมายเหตุโหมดการทำงานร่วมกันที่ชี้ไปยังไฟล์เมื่อไฟล์มีอยู่และไม่ว่างเปล่า เนื้อหา MEMORY.md จะไม่ถูกวางในทุกรอบของ Codex แบบเนทีฟเช่นกัน เมื่อเครื่องมือหน่วยความจำพร้อมใช้งานสำหรับพื้นที่ทำงาน รอบของ Codex จะได้รับหมายเหตุสั้น ๆ เกี่ยวกับหน่วยความจำพื้นที่ทำงาน ซึ่งชี้นำโมเดลไปยัง memory_search หรือ memory_get หากปิดใช้เครื่องมือ ไม่สามารถค้นหาหน่วยความจำได้ หรือพื้นที่ทำงานที่ใช้งานอยู่แตกต่างจากพื้นที่ทำงานหน่วยความจำของเอเจนต์ MEMORY.md จะย้อนกลับไปใช้เส้นทางบริบทประจำรอบแบบจำกัดตามปกติ ส่วน BOOTSTRAP.md ยังคงมีบทบาทเป็นบริบทประจำรอบตามปกติ
บนฮาร์เนสที่ไม่ใช่ Codex ไฟล์บูตสแตรปจะถูกรวมเข้ากับพรอมต์ OpenClaw ตามเงื่อนไขเดิม HEARTBEAT.md จะถูกละเว้นในการเรียกใช้ปกติเมื่อปิดใช้ Heartbeat สำหรับเอเจนต์เริ่มต้น หรือ agents.defaults.heartbeat.includeSystemPromptSection เป็น false ควรรักษาไฟล์ที่แทรกให้กระชับ โดยเฉพาะ MEMORY.md ที่ไม่ใช่ Codex ซึ่งควรเป็นบทสรุประยะยาวที่คัดสรรแล้ว และเก็บบันทึกรายวันแบบละเอียดไว้ใน memory/*.md เพื่อเรียกคืนเมื่อต้องการผ่าน memory_search / memory_get ไฟล์ MEMORY.md ที่ไม่ใช่ Codex และมีขนาดใหญ่เกินไปจะเพิ่มการใช้พรอมต์ และอาจถูกแทรกเพียงบางส่วนตามขีดจำกัดไฟล์บูตสแตรปด้านล่าง
ไฟล์ขนาดใหญ่จะถูกตัดทอนพร้อมเครื่องหมายกำกับ:
| ขีดจำกัด | คีย์การกำหนดค่า | ค่าเริ่มต้น |
|---|---|---|
| จำนวนอักขระสูงสุดต่อไฟล์ | agents.defaults.bootstrapMaxChars |
20000 |
| จำนวนรวมของทุกไฟล์ | agents.defaults.bootstrapTotalMaxChars |
60000 |
คำเตือนการตัดทอน (off|once|always) |
agents.defaults.bootstrapPromptTruncationWarning |
always |
ไฟล์ที่ไม่มีอยู่จะแทรกเครื่องหมายสั้น ๆ ว่าไม่พบไฟล์ จำนวนแบบดิบ/ที่แทรกโดยละเอียดจะยังคงอยู่ในข้อมูลวินิจฉัย เช่น /context, /status, doctor และบันทึก
สำหรับไฟล์หน่วยความจำ การตัดทอนไม่ใช่การสูญเสียข้อมูล เพราะไฟล์ยังคงสมบูรณ์อยู่บนดิสก์ บน Codex แบบเนทีฟ MEMORY.md จะถูกอ่านเมื่อต้องการผ่านเครื่องมือหน่วยความจำเมื่อพร้อมใช้งาน และใช้พรอมต์สำรองแบบจำกัดในกรณีอื่น บนฮาร์เนสอื่น โมเดลจะเห็นเฉพาะสำเนาที่แทรกแบบย่อจนกว่าจะอ่านหรือค้นหาหน่วยความจำโดยตรง หาก MEMORY.md ถูกตัดทอนซ้ำ ๆ ให้กลั่นเนื้อหาเป็นบทสรุปถาวรที่สั้นลง ย้ายประวัติโดยละเอียดไปยัง memory/*.md หรือเพิ่มขีดจำกัดบูตสแตรปโดยตั้งใจ
เซสชันของตัวแทนย่อยจะแทรกเฉพาะ AGENTS.md และ TOOLS.md เท่านั้น (ไฟล์บูตสแตรปอื่น ๆ จะถูกกรองออกเพื่อให้บริบทของตัวแทนย่อยมีขนาดเล็ก)
ฮุกภายในสามารถดักขั้นตอนนี้ผ่านเหตุการณ์ agent:bootstrap เพื่อแก้ไขหรือแทนที่ไฟล์บูตสแตรปที่แทรกเข้ามา (ตัวอย่างเช่น สลับ SOUL.md เป็นบุคลิกทางเลือก)
หากต้องการให้รูปแบบการสื่อสารไม่ดูกว้าง ๆ ทั่วไป ให้เริ่มจาก คู่มือบุคลิกภาพ SOUL.md
หากต้องการตรวจสอบว่าไฟล์ที่แทรกแต่ละไฟล์มีสัดส่วนต่อบริบทมากเพียงใด (ข้อมูลดิบเทียบกับข้อมูลที่แทรก การตัดทอน และโอเวอร์เฮดของสคีมาเครื่องมือ) ให้ใช้ /context list หรือ /context detail ดูข้อมูลเพิ่มเติมที่ บริบท
การจัดการเวลา
ส่วน วันที่และเวลาปัจจุบัน จะปรากฏเฉพาะเมื่อทราบเขตเวลาของผู้ใช้ และจะระบุเฉพาะ เขตเวลา เท่านั้น (ไม่มีนาฬิกาที่เปลี่ยนแปลงแบบไดนามิกหรือรูปแบบเวลา) เพื่อให้แคชพรอมต์คงที่
ใช้ session_status เมื่อตัวแทนต้องการเวลาปัจจุบัน โดยการ์ดสถานะจะมีบรรทัดประทับเวลา เครื่องมือเดียวกันนี้ยังสามารถตั้งค่าการแทนที่โมเดลสำหรับแต่ละเซสชันได้ตามต้องการ (model=default จะล้างค่านี้)
กำหนดค่าด้วย:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
ดูรายละเอียดพฤติกรรมทั้งหมดที่ เขตเวลา และ วันที่และเวลา
Skills
เมื่อมี Skills ที่มีสิทธิ์ใช้งาน OpenClaw จะแทรกรายการ <available_skills> แบบกระชับ (formatSkillsForPrompt) ซึ่งมี พาธไฟล์ และเครื่องหมาย <version>sha256:...</version> ที่สร้างจากเนื้อหาสำหรับแต่ละ Skill พรอมต์จะสั่งให้โมเดลใช้ read เพื่อโหลด SKILL.md จากตำแหน่งที่ระบุไว้ (พื้นที่ทำงาน ตำแหน่งที่ระบบจัดการ หรือที่รวมมากับระบบ) และให้อ่าน Skill ซ้ำเมื่อค่า <version> แตกต่างจากเทิร์นก่อนหน้า หากไม่มี Skills ที่มีสิทธิ์ใช้งาน ระบบจะไม่แสดงส่วน Skills
เทิร์น Codex แบบเนทีฟจะได้รับรายการนี้เป็นคำสั่งสำหรับนักพัฒนาด้านการทำงานร่วมกันที่มีขอบเขตเฉพาะเทิร์น แทนอินพุตจากผู้ใช้ในแต่ละเทิร์น ยกเว้นเทิร์น Cron แบบเบาที่จะคงพรอมต์ตามกำหนดการไว้ตรงตามต้นฉบับ ส่วนระบบควบคุมการทำงานอื่น ๆ จะยังใช้ส่วนพรอมต์ตามปกติ
ตำแหน่งสามารถชี้ไปยัง Skill ที่ซ้อนอยู่ได้ เช่น skills/personal/foo/SKILL.md การซ้อนมีไว้เพื่อจัดระเบียบเท่านั้น โดยพรอมต์จะใช้ชื่อ Skill แบบแบนจาก frontmatter ของ SKILL.md
การพิจารณาสิทธิ์ครอบคลุมเกณฑ์เมทาดาทาของ Skill การตรวจสอบสภาพแวดล้อม/การกำหนดค่ารันไทม์ และรายการอนุญาต Skills ที่มีผลของตัวแทน เมื่อมีการกำหนดค่า agents.defaults.skills หรือ agents.list[].skills Skills ที่รวมมากับ Plugin จะมีสิทธิ์ใช้งานเฉพาะเมื่อ Plugin เจ้าของเปิดใช้งานอยู่ ซึ่งช่วยให้ Plugin เครื่องมือสามารถนำเสนอคู่มือการปฏิบัติงานเชิงลึกได้โดยไม่ต้องฝังคำแนะนำทั้งหมดนั้นไว้ในคำอธิบายเครื่องมือทุกคำอธิบาย
<available_skills> <skill> <name>...</name> <description>...</description> <location>...</location> <version>sha256:...</version> </skill></available_skills>วิธีนี้ช่วยให้พรอมต์พื้นฐานมีขนาดเล็ก ขณะเดียวกันก็ยังรองรับการใช้ Skill แบบเจาะจง การกำหนดขนาดอยู่ภายใต้การดูแลของระบบย่อย Skills ซึ่งแยกจากการกำหนดขนาดทั่วไปสำหรับการอ่าน/แทรกข้อมูลของรันไทม์:
| ขอบเขต | งบประมาณพรอมต์ Skills | งบประมาณข้อความตัดตอนของรันไทม์ |
|---|---|---|
| ส่วนกลาง | skills.limits.maxSkillsPromptChars |
agents.defaults.contextLimits.* |
| ต่อตัวแทน | agents.list[].skillsLimits.maxSkillsPromptChars |
agents.list[].contextLimits.* |
งบประมาณข้อความตัดตอนของรันไทม์ครอบคลุม memory_get ผลลัพธ์เครื่องมือแบบสด และการรีเฟรช AGENTS.md หลัง Compaction
เอกสารประกอบ
ส่วน เอกสารประกอบ จะชี้ไปยังเอกสารในเครื่องเมื่อมีให้ใช้งาน (docs/ ในเช็กเอาต์ Git หรือเอกสารของแพ็กเกจ npm ที่รวมมากับระบบ) มิฉะนั้นจะใช้ https://docs.openclaw.ai เป็นทางเลือกสำรอง นอกจากนี้ยังระบุตำแหน่งซอร์สของ OpenClaw โดยเช็กเอาต์ Git จะแสดงรูทซอร์สในเครื่อง ส่วนการติดตั้งแพ็กเกจจะแสดง URL ซอร์ส GitHub พร้อมคำแนะนำให้ตรวจสอบซอร์สที่นั่นเมื่อเอกสารไม่ครบถ้วนหรือล้าสมัย
พรอมต์กำหนดให้เอกสารเป็นแหล่งข้อมูลหลักสำหรับความรู้เกี่ยวกับ OpenClaw เอง ก่อนที่โมเดลจะทำความเข้าใจวิธีการทำงานของ OpenClaw (หน่วยความจำ/บันทึกรายวัน เซสชัน เครื่องมือ Gateway การกำหนดค่า คำสั่ง และบริบทโปรเจกต์) และสั่งให้โมเดลถือว่า AGENTS.md บริบทโปรเจกต์ บันทึกพื้นที่ทำงาน/โปรไฟล์/หน่วยความจำ และ memory_search เป็นบริบทคำสั่งหรือหน่วยความจำของผู้ใช้ ไม่ใช่ความรู้ด้านการออกแบบ/การนำ OpenClaw ไปใช้ หากเอกสารไม่กล่าวถึงหรือล้าสมัย โมเดลควรแจ้งให้ทราบและตรวจสอบซอร์ส นอกจากนี้ยังสั่งให้โมเดลเรียกใช้ openclaw status ด้วยตนเองเมื่อทำได้ และถามผู้ใช้เฉพาะเมื่อไม่มีสิทธิ์เข้าถึง
สำหรับการกำหนดค่าโดยเฉพาะ ระบบจะชี้ตัวแทนไปยังการดำเนินการ config.schema.lookup ของเครื่องมือ gateway เพื่อดูเอกสารและข้อจำกัดระดับฟิลด์ที่แม่นยำ จากนั้นจึงไปยัง docs/gateway/configuration.md และ docs/gateway/configuration-reference.md สำหรับคำแนะนำที่ครอบคลุมยิ่งขึ้น