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

xml
<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 สำหรับคำแนะนำที่ครอบคลุมยิ่งขึ้น

เนื้อหาที่เกี่ยวข้อง

Was this useful?
On this page

On this page