---
read_when:
    - การแก้ไขข้อความพรอมต์ระบบ รายการเครื่องมือ หรือส่วนเวลา/Heartbeat
    - การเปลี่ยนแปลงลักษณะการทำงานของการเริ่มต้นเวิร์กสเปซหรือการแทรก Skills
summary: พรอมต์ระบบของ OpenClaw ประกอบด้วยอะไรบ้างและถูกประกอบขึ้นอย่างไร
title: พรอมต์ระบบ
x-i18n:
    generated_at: "2026-07-12T16:08:46Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 1aabd41b5d4b51ed139d47b506017322c240bb1002bae901886d5f7991c0dc5e
    source_path: concepts/system-prompt.md
    workflow: 16
---

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 และมีขนาดใหญ่เกินไปจะเพิ่มการใช้พรอมต์ และอาจถูกแทรกเพียงบางส่วนตามขีดจำกัดไฟล์บูตสแตรปด้านล่าง

<Note>
ไฟล์รายวัน `memory/*.md` **ไม่ใช่** ส่วนหนึ่งของบริบทโครงการบูตสแตรปตามปกติ ในรอบทั่วไป ไฟล์เหล่านี้จะถูกเข้าถึงเมื่อต้องการผ่าน `memory_search` / `memory_get` จึงไม่ใช้พื้นที่หน้าต่างบริบท เว้นแต่โมเดลจะอ่านอย่างชัดเจน รอบ `/new` และ `/reset` ที่ไม่มีอาร์กิวเมนต์เป็นข้อยกเว้น โดยรันไทม์สามารถเติมหน่วยความจำรายวันล่าสุดไว้ด้านหน้าเป็นบล็อกบริบทเริ่มต้นแบบใช้ครั้งเดียวสำหรับรอบแรกนั้น
</Note>

ไฟล์ขนาดใหญ่จะถูกตัดทอนพร้อมเครื่องหมายกำกับ:

| ขีดจำกัด                                      | คีย์การกำหนดค่า                                   | ค่าเริ่มต้น |
| -------------------------------------------- | -------------------------------------------------- | -------- |
| จำนวนอักขระสูงสุดต่อไฟล์                     | `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](/th/concepts/soul)

หากต้องการตรวจสอบว่าไฟล์ที่แทรกแต่ละไฟล์มีสัดส่วนต่อบริบทมากเพียงใด (ข้อมูลดิบเทียบกับข้อมูลที่แทรก การตัดทอน และโอเวอร์เฮดของสคีมาเครื่องมือ) ให้ใช้ `/context list` หรือ `/context detail` ดูข้อมูลเพิ่มเติมที่ [บริบท](/th/concepts/context)

## การจัดการเวลา

ส่วน **วันที่และเวลาปัจจุบัน** จะปรากฏเฉพาะเมื่อทราบเขตเวลาของผู้ใช้ และจะระบุเฉพาะ **เขตเวลา** เท่านั้น (ไม่มีนาฬิกาที่เปลี่ยนแปลงแบบไดนามิกหรือรูปแบบเวลา) เพื่อให้แคชพรอมต์คงที่

ใช้ `session_status` เมื่อตัวแทนต้องการเวลาปัจจุบัน โดยการ์ดสถานะจะมีบรรทัดประทับเวลา เครื่องมือเดียวกันนี้ยังสามารถตั้งค่าการแทนที่โมเดลสำหรับแต่ละเซสชันได้ตามต้องการ (`model=default` จะล้างค่านี้)

กำหนดค่าด้วย:

- `agents.defaults.userTimezone`
- `agents.defaults.timeFormat` (`auto` | `12` | `24`)

ดูรายละเอียดพฤติกรรมทั้งหมดที่ [เขตเวลา](/th/concepts/timezone) และ [วันที่และเวลา](/th/date-time)

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

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

- [รันไทม์ของตัวแทน](/th/concepts/agent)
- [พื้นที่ทำงานของตัวแทน](/th/concepts/agent-workspace)
- [กลไกบริบท](/th/concepts/context-engine)
