---
read_when:
    - การเปลี่ยนแปลงรันไทม์ของเอเจนต์ การบูตสแตรปเวิร์กสเปซ หรือพฤติกรรมของเซสชัน
summary: รันไทม์ของเอเจนต์ สัญญาของเวิร์กสเปซ และการบูตสแตรปเซสชัน
title: รันไทม์ของเอเจนต์
x-i18n:
    generated_at: "2026-06-27T17:25:30Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 2fb4d3f0bb6e8aa2a23d00f5def5eb0ffa152bc75f82a12c40ac7ed00776011c
    source_path: concepts/agent.md
    workflow: 16
---

OpenClaw เรียกใช้ **รันไทม์เอเจนต์แบบฝังตัวเดียว** - หนึ่งโปรเซสเอเจนต์ต่อ
Gateway พร้อมเวิร์กสเปซ ไฟล์บูตสแตรป และที่เก็บเซสชันของตัวเอง หน้านี้
ครอบคลุมสัญญาของรันไทม์นั้น: เวิร์กสเปซต้องมีอะไรบ้าง ไฟล์ใดถูกฉีดเข้าไป
และเซสชันบูตสแตรปกับสิ่งนั้นอย่างไร

## เวิร์กสเปซ (จำเป็น)

OpenClaw ใช้ไดเรกทอรีเวิร์กสเปซเอเจนต์เดียว (`agents.defaults.workspace`) เป็นไดเรกทอรีทำงาน (`cwd`) **เพียงแห่งเดียว** ของเอเจนต์สำหรับเครื่องมือและบริบท

แนะนำ: ใช้ `openclaw setup` เพื่อสร้าง `~/.openclaw/openclaw.json` หากยังไม่มี และเริ่มต้นไฟล์เวิร์กสเปซ

ผังเวิร์กสเปซฉบับเต็ม + คู่มือสำรองข้อมูล: [เวิร์กสเปซเอเจนต์](/th/concepts/agent-workspace)

หากเปิดใช้ `agents.defaults.sandbox` เซสชันที่ไม่ใช่เซสชันหลักสามารถแทนที่ค่านี้ด้วย
เวิร์กสเปซรายเซสชันภายใต้ `agents.defaults.sandbox.workspaceRoot` (ดู
[การกำหนดค่า Gateway](/th/gateway/configuration))

## ไฟล์บูตสแตรป (ถูกฉีด)

ภายใน `agents.defaults.workspace` OpenClaw คาดหวังไฟล์ที่ผู้ใช้แก้ไขได้เหล่านี้:

- `AGENTS.md` - คำแนะนำการปฏิบัติงาน + "หน่วยความจำ"
- `SOUL.md` - บุคลิก ขอบเขต น้ำเสียง
- `TOOLS.md` - บันทึกเครื่องมือที่ผู้ใช้ดูแลเอง (เช่น `imsg`, `sag`, แบบแผน)
- `BOOTSTRAP.md` - พิธีเริ่มใช้งานครั้งแรกแบบครั้งเดียว (ลบหลังทำเสร็จ)
- `IDENTITY.md` - ชื่อ/บรรยากาศ/อีโมจิของเอเจนต์
- `USER.md` - โปรไฟล์ผู้ใช้ + วิธีเรียกที่ต้องการ

ในเทิร์นแรกของเซสชันใหม่ OpenClaw จะฉีดเนื้อหาของไฟล์เหล่านี้เข้าไปใน Project Context ของพรอมป์ระบบ

ไฟล์ว่างจะถูกข้าม ไฟล์ขนาดใหญ่จะถูกตัดแต่งและตัดทอนพร้อมเครื่องหมาย เพื่อให้พรอมป์กระชับอยู่เสมอ (อ่านไฟล์เพื่อดูเนื้อหาทั้งหมด)

หากไฟล์หายไป OpenClaw จะฉีดบรรทัดเครื่องหมาย "ไฟล์หายไป" เพียงบรรทัดเดียว (และ `openclaw setup` จะสร้างเทมเพลตเริ่มต้นที่ปลอดภัย)

`BOOTSTRAP.md` จะถูกสร้างเฉพาะสำหรับ **เวิร์กสเปซใหม่เอี่ยม** (ไม่มีไฟล์บูตสแตรปอื่นอยู่) ขณะที่ยังค้างอยู่ OpenClaw จะคงไฟล์นี้ไว้ใน Project Context และเพิ่มคำแนะนำบูตสแตรปในพรอมป์ระบบสำหรับพิธีเริ่มต้น แทนที่จะคัดลอกเข้าไปในข้อความผู้ใช้ หากคุณลบไฟล์นี้หลังทำพิธีเสร็จแล้ว ไฟล์ไม่ควรถูกสร้างใหม่เมื่อรีสตาร์ทภายหลัง

หลังจากสังเกตเห็นเวิร์กสเปซแล้ว OpenClaw จะคงเครื่องหมายรับรองไดเรกทอรีสถานะสำหรับพาธเวิร์กสเปซไว้ด้วย หากเวิร์กสเปซที่เพิ่งได้รับการรับรองหายไปหรือถูกล้าง การเริ่มต้นจะปฏิเสธการเพาะ `BOOTSTRAP.md` ใหม่แบบเงียบ ๆ ให้กู้คืนเวิร์กสเปซหรือใช้การรีเซ็ตการเริ่มใช้งานแบบเต็ม เพื่อให้ล้างเวิร์กสเปซและเครื่องหมายพร้อมกัน

หากต้องการปิดการสร้างไฟล์บูตสแตรปทั้งหมด (สำหรับเวิร์กสเปซที่เตรียมไว้ล่วงหน้า) ให้ตั้งค่า:

```json5
{ agents: { defaults: { skipBootstrap: true } } }
```

## เครื่องมือในตัว

เครื่องมือหลัก (read/exec/edit/write และเครื่องมือระบบที่เกี่ยวข้อง) พร้อมใช้งานเสมอ
ภายใต้นโยบายเครื่องมือ `apply_patch` เป็นทางเลือกและถูกควบคุมด้วย
`tools.exec.applyPatch` `TOOLS.md` **ไม่ได้** ควบคุมว่ามีเครื่องมือใดอยู่บ้าง แต่เป็น
คำแนะนำว่าคุณต้องการให้ _ใช้_ เครื่องมือเหล่านั้นอย่างไร

## Skills

OpenClaw โหลด Skills จากตำแหน่งเหล่านี้ (ลำดับความสำคัญสูงสุดก่อน):

- เวิร์กสเปซ: `<workspace>/skills`
- Skills เอเจนต์ของโปรเจกต์: `<workspace>/.agents/skills`
- Skills เอเจนต์ส่วนตัว: `~/.agents/skills`
- ที่จัดการ/ในเครื่อง: `~/.openclaw/skills`
- ที่รวมมากับแพ็กเกจ (มาพร้อมกับการติดตั้ง)
- โฟลเดอร์ Skills เพิ่มเติม: `skills.load.extraDirs`

ราก Skills สามารถมีโฟลเดอร์แบบจัดกลุ่ม เช่น
`<workspace>/skills/personal/foo/SKILL.md`; Skills ยังคงถูกเปิดเผยด้วยชื่อ frontmatter
แบบแบน เช่น `foo`

Skills สามารถถูกควบคุมด้วย config/env (ดู `skills` ใน [การกำหนดค่า Gateway](/th/gateway/configuration))

## ขอบเขตรันไทม์

รันไทม์เอเจนต์แบบฝังตัวเป็นของ OpenClaw: การค้นหาโมเดล การต่อสายเครื่องมือ
การประกอบพรอมป์ การจัดการเซสชัน และการส่งผ่านช่องทางใช้พื้นผิวรันไทม์แบบบูรณาการเดียวร่วมกัน

## เซสชัน

ทรานสคริปต์เซสชันถูกเก็บเป็น JSONL ที่:

- `~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl`

ID เซสชันมีความเสถียรและถูกเลือกโดย OpenClaw
โฟลเดอร์เซสชันเดิมจากเครื่องมืออื่นจะไม่ถูกอ่าน

## การชี้นำขณะสตรีม

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

`/queue steer` คือพฤติกรรมเริ่มต้นของการรันที่ทำงานอยู่ `/queue followup` และ
`/queue collect` ทำให้ข้อความรอเทิร์นภายหลังแทนการชี้นำ
`/queue interrupt` จะยกเลิกการรันที่ทำงานอยู่แทน ดู [คิว](/th/concepts/queue)
และ [คิวการชี้นำ](/th/concepts/queue-steering) สำหรับพฤติกรรมของคิวและขอบเขต

การสตรีมแบบบล็อกส่งบล็อกผู้ช่วยที่เสร็จสมบูรณ์ทันทีเมื่อแต่ละบล็อกเสร็จ; โดย
**ปิดเป็นค่าเริ่มต้น** (`agents.defaults.blockStreamingDefault: "off"`)
ปรับขอบเขตผ่าน `agents.defaults.blockStreamingBreak` (`text_end` เทียบกับ `message_end`; ค่าเริ่มต้นคือ text_end)
ควบคุมการแบ่งชิ้นบล็อกแบบอ่อนด้วย `agents.defaults.blockStreamingChunk` (ค่าเริ่มต้นคือ
800-1200 ตัวอักษร; ให้ความสำคัญกับการแบ่งย่อหน้า จากนั้นขึ้นบรรทัดใหม่; ประโยคเป็นลำดับสุดท้าย)
รวมชิ้นที่สตรีมด้วย `agents.defaults.blockStreamingCoalesce` เพื่อลด
สแปมบรรทัดเดี่ยว (รวมตามช่วงว่างก่อนส่ง) ช่องทางที่ไม่ใช่ Telegram ต้องใช้
`*.blockStreaming: true` อย่างชัดเจนเพื่อเปิดใช้การตอบกลับแบบบล็อก
สรุปเครื่องมือแบบละเอียดจะถูกปล่อยเมื่อเครื่องมือเริ่มทำงาน (ไม่มี debounce); Control UI
สตรีมเอาต์พุตเครื่องมือผ่านอีเวนต์เอเจนต์เมื่อมี
รายละเอียดเพิ่มเติม: [การสตรีม + การแบ่งชิ้น](/th/concepts/streaming)

## การอ้างอิงโมเดล

การอ้างอิงโมเดลใน config (เช่น `agents.defaults.model` และ `agents.defaults.models`) ถูกแยกโดยตัดที่ `/` **ตัวแรก**

- ใช้ `provider/model` เมื่อกำหนดค่าโมเดล
- หาก ID โมเดลเองมี `/` (สไตล์ OpenRouter) ให้ใส่คำนำหน้า provider (ตัวอย่าง: `openrouter/moonshotai/kimi-k2`)
- หากคุณละ provider ไว้ OpenClaw จะลอง alias ก่อน จากนั้นลองจับคู่ configured-provider
  ที่ไม่ซ้ำสำหรับ ID โมเดลนั้นแบบตรงตัว และหลังจากนั้นเท่านั้นจึงถอยกลับ
  ไปยัง provider เริ่มต้นที่กำหนดค่าไว้ หาก provider นั้นไม่เปิดเผยโมเดลเริ่มต้น
  ที่กำหนดค่าไว้อีกต่อไป OpenClaw จะถอยกลับไปยัง provider/model
  ที่กำหนดค่าไว้ตัวแรกแทนการแสดงค่าเริ่มต้น provider ที่ถูกลบและล้าสมัย

## การกำหนดค่า (ขั้นต่ำ)

อย่างน้อย ให้ตั้งค่า:

- `agents.defaults.workspace`
- `channels.whatsapp.allowFrom` (แนะนำอย่างยิ่ง)

---

_ถัดไป: [แชทกลุ่ม](/th/channels/group-messages)_ 🦞

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

- [เวิร์กสเปซเอเจนต์](/th/concepts/agent-workspace)
- [การกำหนดเส้นทางหลายเอเจนต์](/th/concepts/multi-agent)
- [การจัดการเซสชัน](/th/concepts/session)
