---
read_when:
    - การแก้ไขข้อความพรอมป์ต์ระบบ รายการเครื่องมือ หรือส่วนเวลา/Heartbeat
    - การเปลี่ยนแปลงพฤติกรรมการบูตสแตรปพื้นที่ทำงานหรือการแทรก Skills
summary: พรอมป์ระบบของ OpenClaw มีอะไรบ้างและประกอบขึ้นอย่างไร
title: พรอมป์ระบบ
x-i18n:
    generated_at: "2026-05-10T19:35:31Z"
    model: gpt-5.5
    provider: openai
    source_hash: 7aa3db4f53ffe5c11fd85159044344b56cd11c3bdb1a5a5de7638b21fb813135
    source_path: concepts/system-prompt.md
    workflow: 16
---

OpenClaw สร้างพรอมป์ระบบแบบกำหนดเองสำหรับการรันเอเจนต์ทุกครั้ง พรอมป์นี้เป็นของ **OpenClaw** และไม่ได้ใช้พรอมป์เริ่มต้นของ pi-coding-agent

พรอมป์ถูกประกอบโดย OpenClaw และฉีดเข้าในการรันเอเจนต์แต่ละครั้ง

การประกอบพรอมป์มีสามชั้น:

- `buildAgentSystemPrompt` เรนเดอร์พรอมป์จากอินพุตที่ระบุชัดเจน ควร
  คงเป็นตัวเรนเดอร์บริสุทธิ์ และไม่ควรอ่าน config ส่วนกลางโดยตรง
- `resolveAgentSystemPromptConfig` แก้ค่าปุ่มปรับพรอมป์ที่อิงจาก config เช่น
  การแสดงเจ้าของ คำใบ้ TTS นามแฝงโมเดล โหมดการอ้างอิงหน่วยความจำ และโหมดการมอบหมาย
  ให้ sub-agent สำหรับเอเจนต์หนึ่งๆ
- อะแดปเตอร์ runtime (embedded, CLI, พรีวิวคำสั่ง/ส่งออก, compaction) รวบรวม
  ข้อเท็จจริงสด เช่น tools, สถานะ sandbox, ความสามารถของ channel, ไฟล์บริบท,
  และส่วนพรอมป์ที่ provider เพิ่มเข้ามา จากนั้นเรียก prompt facade ที่กำหนดค่าไว้

วิธีนี้ทำให้พื้นผิวพรอมป์สำหรับส่งออก/ดีบักสอดคล้องกับการรันจริง โดยไม่
เปลี่ยนรายละเอียดเฉพาะ runtime ทุกอย่างให้กลายเป็น builder ขนาดใหญ่ตัวเดียว

Plugin ผู้ให้บริการสามารถเพิ่มคำแนะนำพรอมป์ที่ตระหนักถึง cache ได้โดยไม่แทนที่
พรอมป์ทั้งหมดที่ OpenClaw เป็นเจ้าของ runtime ของผู้ให้บริการสามารถ:

- แทนที่ส่วนหลักที่มีชื่อจำนวนเล็กน้อย (`interaction_style`,
  `tool_call_style`, `execution_bias`)
- ฉีด **prefix ที่เสถียร** เหนือขอบเขต prompt cache
- ฉีด **suffix แบบไดนามิก** ใต้ขอบเขต prompt cache

ใช้ส่วนเสริมที่ผู้ให้บริการเป็นเจ้าของสำหรับการปรับแต่งเฉพาะตระกูลโมเดล ให้คงการกลายพรอมป์
`before_prompt_build` แบบเดิมไว้สำหรับความเข้ากันได้หรือการเปลี่ยนแปลงพรอมป์
ระดับ global จริงๆ ไม่ใช่พฤติกรรมปกติของผู้ให้บริการ

โอเวอร์เลย์ตระกูล OpenAI GPT-5 ทำให้กฎการดำเนินการหลักมีขนาดเล็ก และเพิ่ม
คำแนะนำเฉพาะโมเดลสำหรับการยึดบุคลิก การตอบแบบกระชับ วินัยในการใช้ tool,
parallel lookup, ความครอบคลุมของผลลัพธ์, การตรวจสอบ, บริบทที่ขาดหาย และ
สุขอนามัยของ terminal-tool

## โครงสร้าง

พรอมป์ตั้งใจให้กระชับและใช้ส่วนที่ตายตัว:

- **เครื่องมือ**: คำเตือนว่า structured-tool เป็นแหล่งความจริง พร้อมคำแนะนำการใช้ tool ใน runtime
- **อคติการดำเนินการ**: คำแนะนำติดตามงานแบบกระชับ: ลงมือภายในเทิร์นเมื่อคำขอทำได้,
  ทำต่อจนเสร็จหรือถูกบล็อก, กู้คืนจากผลลัพธ์ tool ที่อ่อน, ตรวจสอบสถานะที่เปลี่ยนได้แบบสด,
  และตรวจสอบก่อนสรุปขั้นสุดท้าย
- **ความปลอดภัย**: คำเตือน guardrail สั้นๆ เพื่อหลีกเลี่ยงพฤติกรรมแสวงหาอำนาจหรือการเลี่ยงการกำกับดูแล
- **Skills** (เมื่อพร้อมใช้งาน): บอกโมเดลว่าจะโหลดคำสั่งของ Skills ตามต้องการอย่างไร
- **การควบคุม OpenClaw**: บอกโมเดลให้ใช้ tool `gateway` สำหรับงาน
  config/restart และหลีกเลี่ยงการแต่งคำสั่ง CLI ขึ้นเอง
- **การอัปเดตตัวเองของ OpenClaw**: วิธีตรวจสอบ config อย่างปลอดภัยด้วย
  `config.schema.lookup`, patch config ด้วย `config.patch`, แทนที่ config ทั้งหมด
  ด้วย `config.apply`, และรัน `update.run` เฉพาะเมื่อผู้ใช้ร้องขออย่างชัดเจนเท่านั้น
  tool `gateway` สำหรับเจ้าของเท่านั้นยังปฏิเสธการเขียนทับ
  `tools.exec.ask` / `tools.exec.security` รวมถึงนามแฝงเดิม `tools.bash.*`
  ที่ normalize ไปยัง exec paths ที่ได้รับการป้องกันเหล่านั้น
- **Workspace**: ไดเรกทอรีทำงาน (`agents.defaults.workspace`)
- **เอกสาร**: path ภายในเครื่องไปยัง OpenClaw docs/source และควรอ่านเมื่อใด
- **ไฟล์ Workspace (ฉีดเข้าไป)**: ระบุว่าไฟล์ bootstrap ถูกรวมไว้ด้านล่าง
- **Sandbox** (เมื่อเปิดใช้งาน): ระบุ runtime ที่อยู่ใน sandbox, path ของ sandbox และมี elevated exec หรือไม่
- **วันที่และเวลาปัจจุบัน**: เฉพาะเขตเวลา (เสถียรต่อ cache; นาฬิกาสดมาจาก `session_status`)
- **คำสั่งเอาต์พุตของ Assistant**: ไวยากรณ์แบบกระชับสำหรับ attachment, voice-note และ reply tag
- **Heartbeat**: พรอมป์ heartbeat และพฤติกรรม ack เมื่อเปิดใช้ heartbeat สำหรับเอเจนต์เริ่มต้น
- **Runtime**: host, OS, node, model, repo root (เมื่อตรวจพบ), thinking level (หนึ่งบรรทัด)
- **Reasoning**: ระดับ visibility ปัจจุบัน + คำใบ้สวิตช์ /reasoning

OpenClaw เก็บเนื้อหาขนาดใหญ่ที่เสถียร รวมถึง **บริบทโปรเจกต์** ไว้เหนือ
ขอบเขต prompt cache ภายใน ส่วนของ channel/session ที่ผันผวน เช่น
คำแนะนำสำหรับ Control UI embed, **การส่งข้อความ**, **เสียง**, **บริบทแชทกลุ่ม**,
**Reactions**, **Heartbeat**, และ **Runtime** จะถูกต่อท้ายใต้ขอบเขตนั้น
เพื่อให้ backend ภายในเครื่องที่มี prefix cache สามารถใช้ prefix workspace ที่เสถียรซ้ำ
ข้ามเทิร์นของ channel ได้ คำอธิบาย tool ก็ควรหลีกเลี่ยงการฝังชื่อ
channel ปัจจุบันเช่นกัน เมื่อ schema ที่ยอมรับมีรายละเอียด runtime นั้นอยู่แล้ว

ส่วนเครื่องมือยังมีคำแนะนำ runtime สำหรับงานที่ทำงานนาน:

- ใช้ cron สำหรับการติดตามผลในอนาคต (`check back later`, การแจ้งเตือน, งานที่เกิดซ้ำ)
  แทนลูป sleep ของ `exec`, เทคนิคหน่วงเวลา `yieldMs`, หรือการ polling `process`
  ซ้ำๆ
- ใช้ `exec` / `process` เฉพาะสำหรับคำสั่งที่เริ่มตอนนี้และทำงานต่อ
  ใน background
- เมื่อเปิดการปลุกเมื่อเสร็จสิ้นอัตโนมัติ ให้เริ่มคำสั่งครั้งเดียวและพึ่งพา
  เส้นทางปลุกแบบ push-based เมื่อมีเอาต์พุตหรือเกิดความล้มเหลว
- ใช้ `process` สำหรับ logs, status, input, หรือการแทรกแซงเมื่อจำเป็นต้อง
  ตรวจสอบคำสั่งที่กำลังทำงานอยู่
- ถ้างานใหญ่กว่า ให้ใช้ `sessions_spawn`; การเสร็จสิ้นของ sub-agent เป็นแบบ
  push-based และประกาศกลับไปยังผู้ร้องขอโดยอัตโนมัติ
- อย่า poll `subagents list` / `sessions_list` ในลูปเพียงเพื่อรอ
  การเสร็จสิ้น

`agents.defaults.subagents.delegationMode` สามารถทำให้คำแนะนำนี้เข้มขึ้นได้
โหมดเริ่มต้น `suggest` คงการสะกิดพื้นฐานไว้ `prefer` เพิ่มส่วนเฉพาะ
**การมอบหมายให้ Sub-Agent** ที่บอกให้เอเจนต์หลักทำหน้าที่เป็นผู้ประสานงาน
ที่ตอบสนองไว และผลักงานที่ซับซ้อนกว่าการตอบตรงๆ ผ่าน
`sessions_spawn` นี่เป็นเพียงพรอมป์เท่านั้น; policy ของ tool ยังควบคุมว่า
`sessions_spawn` พร้อมใช้งานหรือไม่

เมื่อเปิดใช้ tool ทดลอง `update_plan` ส่วนเครื่องมือยังบอกโมเดลให้ใช้
เฉพาะกับงานหลายขั้นตอนที่ไม่ง่ายเกินไป คงขั้นตอน `in_progress` ไว้เพียงหนึ่งเดียว
และหลีกเลี่ยงการทำซ้ำแผนทั้งหมดหลังการอัปเดตแต่ละครั้ง

Safety guardrails ในพรอมป์ระบบเป็นเพียงคำแนะนำ สิ่งเหล่านี้ชี้นำพฤติกรรมของโมเดลแต่ไม่บังคับใช้นโยบาย ใช้ policy ของ tool, การอนุมัติ exec, sandboxing และ allowlist ของ channel สำหรับการบังคับใช้แบบแข็ง; ผู้ปฏิบัติการสามารถปิดสิ่งเหล่านี้ได้ตามการออกแบบ

ใน channel ที่มีการ์ด/ปุ่มอนุมัติแบบ native พรอมป์ runtime ตอนนี้บอกให้
เอเจนต์พึ่งพา UI อนุมัติแบบ native นั้นก่อน ควรรวมคำสั่งแบบ manual
`/approve` เฉพาะเมื่อผลลัพธ์ tool บอกว่า chat approvals ไม่พร้อมใช้งานหรือ
การอนุมัติแบบ manual เป็นเส้นทางเดียวเท่านั้น

## โหมดพรอมป์

OpenClaw สามารถเรนเดอร์พรอมป์ระบบที่เล็กลงสำหรับ sub-agent ได้ runtime ตั้งค่า
`promptMode` สำหรับการรันแต่ละครั้ง (ไม่ใช่ config ที่แสดงต่อผู้ใช้):

- `full` (ค่าเริ่มต้น): รวมทุกส่วนด้านบน
- `minimal`: ใช้สำหรับ sub-agent; ละเว้น **Memory Recall**, **การอัปเดตตัวเองของ OpenClaw**,
  **นามแฝงโมเดล**, **ตัวตนผู้ใช้**, **คำสั่งเอาต์พุตของ Assistant**,
  **การส่งข้อความ**, **การตอบแบบเงียบ**, และ **Heartbeat** เครื่องมือ, **ความปลอดภัย**,
  **Skills** เมื่อส่งมา, Workspace, Sandbox, วันที่และเวลาปัจจุบัน (เมื่อ
  ทราบ), Runtime และบริบทที่ฉีดเข้าไปยังคงพร้อมใช้งาน
- `none`: ส่งคืนเฉพาะบรรทัดตัวตนพื้นฐาน

เมื่อ `promptMode=minimal` พรอมป์เพิ่มเติมที่ฉีดเข้ามาจะติดป้ายว่า **บริบท Subagent**
แทน **บริบทแชทกลุ่ม**

สำหรับการรัน auto-reply ของ channel, OpenClaw สามารถละเว้นส่วน **การตอบแบบเงียบ**
ทั่วไปได้ เมื่อบริบท direct/group chat มีพฤติกรรม `NO_REPLY` เฉพาะบทสนทนา
ที่ resolve แล้วอยู่แล้ว วิธีนี้หลีกเลี่ยงการทำกลไก token ซ้ำทั้งในพรอมป์ระบบ global
และบริบท channel

## สแนปช็อตพรอมป์

OpenClaw เก็บสแนปช็อตพรอมป์ที่ commit แล้วสำหรับ happy path ของ Codex runtime ไว้ใต้
`test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/` สแนปช็อตเหล่านี้เรนเดอร์
พารามิเตอร์ thread/turn ของ app-server ที่เลือก พร้อมกับ stack ชั้นพรอมป์ที่ผูกกับโมเดล
ซึ่งสร้างใหม่สำหรับเทิร์น Telegram direct, Discord group และ heartbeat stack นั้นรวมถึง
fixture พรอมป์โมเดล Codex `gpt-5.5` แบบ pin ที่สร้างจากรูปทรง catalog/cache ของโมเดล Codex,
ข้อความ developer เรื่อง permission สำหรับ happy-path ของ Codex, คำสั่ง developer ของ OpenClaw,
คำสั่ง collaboration-mode ที่มีขอบเขตตามเทิร์นเมื่อ OpenClaw จัดให้, อินพุตเทิร์นผู้ใช้,
และการอ้างอิงถึง specs ของ tool แบบไดนามิก

รีเฟรช fixture พรอมป์โมเดล Codex ที่ pin ไว้ด้วย
`pnpm prompt:snapshots:sync-codex-model` โดยค่าเริ่มต้น สคริปต์จะมองหา
runtime cache ของ Codex ที่ `$CODEX_HOME/models_cache.json` จากนั้น
`~/.codex/models_cache.json` และหลังจากนั้นจึง fallback ไปยัง convention checkout Codex
ของ maintainer ที่ `~/code/codex/codex-rs/models-manager/models.json` หาก
ไม่มีแหล่งข้อมูลเหล่านี้ คำสั่งจะออกโดยไม่เปลี่ยน fixture ที่ commit แล้ว
ส่ง `--catalog <path>` เพื่อรีเฟรชจากไฟล์ `models_cache.json`
หรือ `models.json` ที่ระบุ

สแนปช็อตเหล่านี้ยังไม่ใช่การจับคำขอ OpenAI ดิบแบบ byte-for-byte Codex
สามารถเพิ่มบริบท workspace ที่ runtime เป็นเจ้าของ เช่น `AGENTS.md`, บริบท environment,
memories, คำสั่ง app/plugin และคำสั่ง collaboration-mode Default ในตัว
ภายใน Codex runtime หลังจาก OpenClaw ส่งพารามิเตอร์ thread และ turn แล้ว

สร้างใหม่ด้วย `pnpm prompt:snapshots:gen` และตรวจสอบ drift ด้วย
`pnpm prompt:snapshots:check` CI รันการตรวจสอบ drift ใน boundary shard เพิ่มเติม
เพื่อให้การเปลี่ยนพรอมป์และการอัปเดตสแนปช็อตยังคงแนบอยู่กับ PR เดียวกัน

## การฉีด bootstrap ของ Workspace

ไฟล์ bootstrap ถูกตัดให้สั้นและต่อท้ายใต้ **บริบทโปรเจกต์** เพื่อให้โมเดลเห็นตัวตนและบริบทโปรไฟล์โดยไม่ต้องอ่านอย่างชัดเจน:

- `AGENTS.md`
- `SOUL.md`
- `TOOLS.md`
- `IDENTITY.md`
- `USER.md`
- `HEARTBEAT.md`
- `BOOTSTRAP.md` (เฉพาะบน workspace ใหม่เอี่ยม)
- `MEMORY.md` เมื่อมีอยู่

ไฟล์ทั้งหมดเหล่านี้ถูก **ฉีดเข้าไปใน context window** ในทุกเทิร์น เว้นแต่
จะมี gate เฉพาะไฟล์ใช้บังคับ `HEARTBEAT.md` จะถูกละเว้นในการรันปกติเมื่อ
ปิดใช้ heartbeat สำหรับเอเจนต์เริ่มต้น หรือ
`agents.defaults.heartbeat.includeSystemPromptSection` เป็น false ให้ไฟล์ที่ฉีดเข้าไป
กระชับ โดยเฉพาะ `MEMORY.md` `MEMORY.md` ตั้งใจให้เป็น
สรุประยะยาวที่คัดสรรแล้ว; บันทึกรายวันแบบละเอียดควรอยู่ใน `memory/*.md` ซึ่ง
`memory_search` และ `memory_get` สามารถดึงมาเมื่อต้องการ ไฟล์
`MEMORY.md` ที่ใหญ่เกินไปเพิ่มการใช้พรอมป์และอาจถูกฉีดเข้าไปเพียงบางส่วนเพราะ
ขีดจำกัดไฟล์ bootstrap ด้านล่าง

เมื่อ session รันบน native Codex harness, Codex โหลด `AGENTS.md`
ผ่านการค้นพบ project-doc ของตัวเอง OpenClaw ยังคง resolve ไฟล์ bootstrap ที่เหลือ
และส่งต่อเป็นคำสั่ง config ของ Codex ดังนั้น `SOUL.md`,
`TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`, และ
`MEMORY.md` ยังคงมีบทบาทเป็นบริบท workspace เดิมโดยไม่ทำซ้ำ
`AGENTS.md`

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

ไฟล์ขนาดใหญ่จะถูก truncate พร้อม marker ขนาดสูงสุดต่อไฟล์ถูกควบคุมโดย
`agents.defaults.bootstrapMaxChars` (ค่าเริ่มต้น: 12000) เนื้อหา bootstrap
ทั้งหมดที่ฉีดเข้ามารวมทุกไฟล์ถูกจำกัดโดย `agents.defaults.bootstrapTotalMaxChars`
(ค่าเริ่มต้น: 60000) ไฟล์ที่หายไปจะฉีด marker สั้นๆ ว่าไฟล์หายไป เมื่อเกิดการ truncate
OpenClaw สามารถฉีดประกาศเตือนใน system-prompt แบบกระชับได้; ควบคุมสิ่งนี้ด้วย
`agents.defaults.bootstrapPromptTruncationWarning` (`off`, `once`, `always`;
ค่าเริ่มต้น: `once`) จำนวนดิบ/ที่ฉีดโดยละเอียดจะอยู่ใน diagnostics เช่น
`/context`, `/status`, doctor และ logs

สำหรับไฟล์ memory การ truncate ไม่ใช่การสูญเสียข้อมูล: ไฟล์ยังคงอยู่ครบถ้วนบนดิสก์
แต่โมเดลเห็นเฉพาะสำเนาที่ฉีดเข้ามาซึ่งถูกย่อ จนกว่าจะอ่านหรือค้นหา
memory โดยตรง หาก `MEMORY.md` ถูก truncate ซ้ำๆ ให้กลั่นเป็น
สรุปถาวรที่สั้นลงและย้ายประวัติแบบละเอียดไปยัง `memory/*.md` หรือ
เพิ่มขีดจำกัด bootstrap โดยตั้งใจ

session ของ sub-agent ฉีดเฉพาะ `AGENTS.md` และ `TOOLS.md` (ไฟล์ bootstrap อื่นๆ
ถูกกรองออกเพื่อให้บริบทของ sub-agent เล็ก)

internal hooks สามารถ intercept ขั้นตอนนี้ผ่าน `agent:bootstrap` เพื่อกลายหรือแทนที่
ไฟล์ bootstrap ที่ฉีดเข้าไป (เช่น สลับ `SOUL.md` เป็น persona ทางเลือก)

หากคุณต้องการทำให้เอเจนต์ฟังดูเฉพาะตัวมากขึ้น ให้เริ่มด้วย
[คู่มือบุคลิกภาพ 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/date-time) สำหรับรายละเอียดพฤติกรรมทั้งหมด

## Skills

เมื่อมี Skills ที่เข้าเกณฑ์ OpenClaw จะฉีด **รายการ Skills ที่พร้อมใช้งาน** แบบกะทัดรัด
(`formatSkillsForPrompt`) ซึ่งมี **พาธไฟล์** สำหรับแต่ละ Skill
พรอมป์จะสั่งให้โมเดลใช้ `read` เพื่อโหลด SKILL.md ในตำแหน่งที่ระบุ
(พื้นที่ทำงาน, แบบจัดการ, หรือที่รวมมาในแพ็กเกจ) หากไม่มี Skills ที่เข้าเกณฑ์
ส่วน Skills จะถูกละไว้

เกณฑ์คุณสมบัติรวมถึงเกตเมทาดาทาของ Skill, การตรวจสอบสภาพแวดล้อม/การกำหนดค่ารันไทม์,
และรายการอนุญาต Skill ของเอเจนต์ที่มีผลเมื่อกำหนดค่า `agents.defaults.skills` หรือ
`agents.list[].skills`

Skills ที่รวมมากับ Plugin จะเข้าเกณฑ์เฉพาะเมื่อ Plugin ที่เป็นเจ้าของเปิดใช้งานอยู่
สิ่งนี้ช่วยให้ Plugin เครื่องมือเปิดเผยคู่มือการดำเนินงานที่ลึกขึ้นโดยไม่ต้องฝังคำแนะนำ
ทั้งหมดนั้นไว้โดยตรงในคำอธิบายเครื่องมือทุกตัว

```
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>
```

สิ่งนี้ทำให้พรอมป์พื้นฐานมีขนาดเล็ก ขณะยังคงเปิดใช้ Skills แบบเจาะจงได้

งบประมาณของรายการ Skills อยู่ภายใต้ระบบย่อย Skills:

- ค่าเริ่มต้นทั่วระบบ: `skills.limits.maxSkillsPromptChars`
- การแทนที่ต่อเอเจนต์: `agents.list[].skillsLimits.maxSkillsPromptChars`

ข้อความตัดตอนรันไทม์แบบมีขอบเขตทั่วไปใช้พื้นผิวอีกแบบหนึ่ง:

- `agents.defaults.contextLimits.*`
- `agents.list[].contextLimits.*`

การแยกนี้ทำให้การกำหนดขนาด Skills แยกจากการกำหนดขนาดการอ่าน/การฉีดรันไทม์ เช่น
`memory_get`, ผลลัพธ์เครื่องมือสด, และการรีเฟรช AGENTS.md หลัง Compaction

## เอกสารประกอบ

พรอมป์ระบบมีส่วน **เอกสารประกอบ** เมื่อมีเอกสารภายในเครื่องพร้อมใช้งาน
ส่วนนี้จะชี้ไปยังไดเรกทอรีเอกสาร OpenClaw ภายในเครื่อง (`docs/` ใน Git checkout หรือเอกสารแพ็กเกจ npm
ที่รวมมา) หากเอกสารภายในเครื่องไม่พร้อมใช้งาน จะย้อนกลับไปใช้
[https://docs.openclaw.ai](https://docs.openclaw.ai)

ส่วนเดียวกันยังมีตำแหน่งซอร์สของ OpenClaw ด้วย Git checkout จะเปิดเผยรูทซอร์สภายในเครื่อง
เพื่อให้เอเจนต์ตรวจสอบโค้ดได้โดยตรง การติดตั้งแพ็กเกจจะมี URL ซอร์ส GitHub
และบอกให้เอเจนต์ตรวจสอบซอร์สที่นั่นเมื่อเอกสารไม่สมบูรณ์หรือล้าสมัย
พรอมป์ยังระบุถึงมิเรอร์เอกสารสาธารณะ, Discord ชุมชน, และ ClawHub
([https://clawhub.ai](https://clawhub.ai)) สำหรับการค้นพบ Skills โดยบอกให้โมเดล
ปรึกษาเอกสารก่อนสำหรับพฤติกรรม, คำสั่ง, การกำหนดค่า, หรือสถาปัตยกรรมของ OpenClaw และให้
รัน `openclaw status` เองเมื่อทำได้ (ถามผู้ใช้เฉพาะเมื่อไม่มีสิทธิ์เข้าถึง)
สำหรับการกำหนดค่าโดยเฉพาะ ส่วนนี้จะชี้เอเจนต์ไปยังการกระทำเครื่องมือ `gateway`
`config.schema.lookup` สำหรับเอกสารและข้อจำกัดระดับฟิลด์ที่แม่นยำ จากนั้นไปยัง
`docs/gateway/configuration.md` และ `docs/gateway/configuration-reference.md`
สำหรับคำแนะนำที่กว้างขึ้น

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

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