---
read_when:
    - คุณต้องการทำความเข้าใจว่าเอเจนต์ของคุณ "อยู่" ที่ไหน
    - คุณคาดว่าจะได้รับบริบทเดียวกันไม่ว่าจะเขียนผ่าน Telegram, WhatsApp หรือเว็บ
    - คุณต้องการให้เอเจนต์ทราบว่าเกิดอะไรขึ้นในกลุ่มและเธรดย่อย
summary: 'บทสนทนาต่อเนื่องหนึ่งรายการในทุกช่องทางของคุณ: ค่าเริ่มต้นของเอเจนต์ส่วนตัว'
title: เซสชันหลัก
x-i18n:
    generated_at: "2026-07-19T18:13:02Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: fb77382ebdce269a05a03ab6fa39b44b1e9f1856166f1d9cb79111dccb547f69
    source_path: concepts/main-session.md
    workflow: 16
---

OpenClaw คือเอเจนต์ส่วนตัวเป็นหลัก เมื่อพร้อมใช้งานทันที ทุกข้อความโดยตรงที่คุณ
ส่งถึงเอเจนต์ — ไม่ว่าจะจาก Telegram, WhatsApp, iMessage, DM ของ Slack, เว็บแอป หรือที่ใดก็ตาม —
จะรวมอยู่ใน **บทสนทนาต่อเนื่องเดียว** ซึ่งก็คือเซสชันหลัก ถามบางอย่างผ่าน
โทรศัพท์ แล้วถามต่อจากแล็ปท็อป เอเจนต์ก็จะมีบริบทเดียวกันในทั้งสอง
ที่ มีสมองเพียงหนึ่งเดียว และที่นี่คือพื้นที่ที่เอเจนต์ใช้คิด

ภายใต้ระบบ เซสชันหลักคือเซสชันทั่วไปที่มีคีย์
`agent:<agentId>:main` (ตัวอย่างเช่น `agent:main:main`) สิ่งที่ทำให้เซสชันนี้พิเศษ
คือขอบเขต DM เริ่มต้นจะรวมข้อความโดยตรงทั้งหมดไว้ในเซสชันนี้ และ
ส่วนอื่นของระบบจะถือว่าเซสชันนี้เป็นรากของเอเจนต์: Heartbeat จะปลุกเซสชันนี้
งานเบื้องหลังจะรายงานกลับมายังเซสชันนี้ และกิจกรรมจากที่อื่นจะไหลมารวมที่นี่

## หน้าหลัก

ในเว็บแอป เซสชันหลักคือหน้า **หน้าหลัก** ซึ่งเป็นรายการแรกใน
แถบด้านข้าง แถวข้อมูลประจำตัวด้านบนคือเอเจนต์ของคุณ (คลิกเพื่อเปิดเมนู
เอเจนต์) ส่วนหน้าหลักคือที่ที่คุณสนทนากับเอเจนต์ เซสชันที่แยกแขนงจากบทสนทนา
หลักจะปรากฏใต้ **เธรด** แชตกลุ่มจะอยู่ใต้ **กลุ่ม** และ
เซสชันการเขียนโค้ด/CLI จะอยู่ใต้ **การเขียนโค้ด**

## สิ่งที่ไหลเข้าสู่เซสชันหลัก

เซสชันหลักไม่ได้เป็นเพียงบันทึกการแชต แต่เป็นพื้นที่ที่โลกของเอเจนต์
มาบรรจบกัน:

- **กิจกรรมกลุ่ม** เซสชันกลุ่มและห้องจะยังคงแยกจากกัน (ดูด้านล่าง) แต่
  ภายใต้ขอบเขต DM เริ่มต้น เซสชันหลักจะติดตามเซสชันเหล่านั้นโดยอัตโนมัติ
  กิจกรรมจะเข้าคิวเป็นการแจ้งเตือนแบบกระชับ โดยรวมต่อบทสนทนาและไม่
  ปลุกหนึ่งครั้งต่อหนึ่งข้อความ และเอเจนต์จะเห็นกิจกรรมเหล่านี้ในครั้งถัดไปที่ทำงาน: เมื่อ
  คุณส่งข้อความถัดไปหรือเมื่อถึง Heartbeat ตามกำหนดการ เอเจนต์ยังสามารถอ่าน
  เซสชันที่ติดตามได้ด้วย ดังนั้นคำถามว่า "ฉันพลาดอะไรในกลุ่มครอบครัวไปบ้าง?" จึงใช้งานได้
- **งานเบื้องหลัง** เอเจนต์ย่อยและเซสชันที่สร้างขึ้นจะประกาศผลลัพธ์
  กลับไปยังเซสชันที่เริ่มต้นงาน ดังนั้นงานที่เอเจนต์เริ่มจาก
  หน้าหลักจะรายงานกลับไปยังหน้าหลัก
- **Heartbeat** Heartbeat ตามกำหนดการจะกำหนดเป้าหมายไปยังเซสชันหลัก ซึ่งเป็นสิ่งที่
  เปลี่ยนการแจ้งเตือนในคิวให้กลายเป็นการรับรู้ แม้ว่าคุณจะยังไม่ได้เขียนอะไรเลย

## หน่วยความจำระหว่างการรีเซ็ตและบทสนทนา

บทสนทนาต่อเนื่องถูกจำกัดด้วยหน้าต่างบริบทของโมเดล ดังนั้น
ความต่อเนื่องจึงมาจากชั้นต่าง ๆ ที่อยู่รอบบทสนทนา:

- `MEMORY.md` ซึ่งเป็นหน่วยความจำระยะยาวที่เอเจนต์คัดสรร จะถูกโหลดเข้าไปในทุก
  เซสชันใหม่ บันทึกรายวัน (`memory/YYYY-MM-DD.md`) สามารถค้นหาได้เมื่อต้องการ
  และบันทึกล่าสุดจะถูกป้อนกลับเป็นบริบทอีกครั้งหลัง `/new` หรือ `/reset` ก่อน Compaction
  เอเจนต์จะบันทึกข้อเท็จจริงที่ต้องเก็บถาวรลงในบันทึกรายวัน เพื่อให้บทสนทนา
  ที่ยาวนานไม่ทำให้ข้อมูลเหล่านั้นสูญหายไปโดยไม่มีการแจ้งเตือน
- **การเรียกคืนหน่วยความจำข้ามบทสนทนา** ช่วยให้เอเจนต์เรียกคืนเนื้อหาจาก
  เซสชันส่วนตัวอื่น ๆ ได้ ในการตั้งค่าส่วนบุคคล — เมื่อ
  `session.dmScope` ส่วนกลางแปลงค่าเป็น `main` โดยไม่มีการแทนที่ DM รายการเชื่อมโยง — คุณลักษณะนี้
  จะเปิดใช้งานโดยค่าเริ่มต้น ส่วนการแยก DM ใด ๆ ที่กำหนดค่าไว้จะปิดคุณลักษณะนี้ เว้นแต่คุณ
  จะเลือกเปิดใช้อย่างชัดเจน ดู [การกำหนดค่าหน่วยความจำ](/th/reference/memory-config)

## เซสชันต่อเนื่องพร้อมประวัติที่คงทน

เซสชันหลักจะดำเนินต่อไปผ่านการรีเซ็ตและ Compaction แทนที่จะ
ให้โมเดลแบกรับประวัติทั้งหมดพร้อมกัน:

- โดยค่าเริ่มต้นจะไม่มีการรีเซ็ตอัตโนมัติ Compaction จะจำกัดบริบทที่ใช้งาน
  พร้อมรักษาเซสชันต่อเนื่องไว้ การรีเซ็ตรายวันและเมื่อไม่มีการใช้งาน
  ต้องเลือกเปิดใช้ (ดู [การจัดการเซสชัน](/th/concepts/session)) เมื่อใช้ `/new` และ `/reset`
  ส่วนท้ายของบทสนทนาที่สิ้นสุดจะถูกบันทึกลงในบันทึกหน่วยความจำรายวัน และ
  เซสชันถัดไปจะป้อนบันทึกล่าสุดกลับเป็นบริบทอีกครั้ง การรีเซ็ตจะกำหนด ID เซสชันที่ใช้งานใหม่ แต่
  ยังคงให้ค้นหาทรานสคริปต์ SQLite ก่อนหน้าได้ภายใต้คีย์เซสชันหลัก
  เดิม
- เมื่อบทสนทนาเข้าใกล้ขีดจำกัดหน้าต่างบริบท Compaction จะสรุป
  และดำเนินต่อในที่เดิม โดยประวัติทรานสคริปต์จะยังคงอยู่ในพื้นที่จัดเก็บเซสชัน
- รายการเซสชันจะแสดงบทสนทนาที่ใช้งานอยู่ในปัจจุบัน ไม่ใช่ ID เซสชัน
  ในอดีตทั้งหมดที่อยู่เบื้องหลัง
- เมื่อฐานข้อมูลจริง, WAL และอาร์ติแฟกต์เซสชัน
  ของพื้นที่จัดเก็บต่อเอเจนต์มีขนาดเกินงบประมาณดิสก์ (ค่าเริ่มต้น 10 GB) OpenClaw จะสกัดประวัติ
  ที่เก่าที่สุดซึ่งไม่มีการอ้างอิงไปยังไฟล์เก็บถาวรแบบบีบอัดที่ผ่านการตรวจสอบ ก่อนลบแถว
  ในฐานข้อมูล เซสชันที่ใช้งานอยู่ มีการกำหนดเส้นทาง และอยู่ระหว่างดำเนินการจะไม่ถูกลบเพราะข้อจำกัดงบประมาณ

## เมื่อต้องการแยกเซสชัน

เซสชันหลักที่ใช้ร่วมกันเป็นค่าเริ่มต้นที่เหมาะสมสำหรับเอเจนต์ที่มีเพียงคุณเท่านั้นที่
สนทนาด้วย หากมีหลายคนส่งข้อความถึงเอเจนต์ได้ ให้แยก DM:

```json5
{
  session: {
    dmScope: "per-channel-peer",
  },
}
```

เมื่อใช้ขอบเขตแบบแยก ผู้ส่งแต่ละรายจะได้รับเซสชันของตนเอง การติดตามกลุ่ม
จากเซสชันหลักจะถูกปิดใช้งาน และการเรียกคืนหน่วยความจำข้ามบทสนทนา
จะปิดเป็นค่าเริ่มต้น `openclaw security audit` แนะนำให้แยกเซสชันเมื่อตรวจพบ
ผู้ส่ง DM หลายราย เมทริกซ์ขอบเขตทั้งหมด การเชื่อมโยงข้อมูลประจำตัว และการแทนที่
ต่อเส้นทางมีอธิบายไว้ใน [การจัดการเซสชัน](/th/concepts/session) และ
[การกำหนดเส้นทางช่องทาง](/th/channels/channel-routing)

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

- [การจัดการเซสชัน](/th/concepts/session) — การกำหนดเส้นทาง ขอบเขต และการรีเซ็ต
- [การกำหนดเส้นทางช่องทาง](/th/channels/channel-routing) — วิธีเลือกเอเจนต์และเซสชัน
- [หน่วยความจำ](/th/concepts/memory) — ชั้นหน่วยความจำที่คงทน
- [หลายเอเจนต์](/th/concepts/multi-agent) — การเรียกใช้เอเจนต์ที่แยกจากกันหลายตัว
