---
read_when:
    - คุณต้องการลดการเพิ่มขึ้นของบริบทจากผลลัพธ์ของเครื่องมือ
    - คุณต้องการทำความเข้าใจการเพิ่มประสิทธิภาพแคชพรอมต์ของ Anthropic
summary: ตัดผลลัพธ์เก่าของเครื่องมือออกเพื่อให้บริบทกระชับและการแคชมีประสิทธิภาพ
title: การตัดทอนเซสชัน
x-i18n:
    generated_at: "2026-07-12T16:06:37Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: dd5cb4582cb8d9d7265213abe1f5b5893634882b9f8b3ce1deef746293dd07db
    source_path: concepts/session-pruning.md
    workflow: 16
---

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

<Info>
การตัดแต่งเกิดขึ้นในหน่วยความจำเท่านั้น และไม่แก้ไขบันทึกเซสชันบนดิสก์ ประวัติทั้งหมดของคุณจะได้รับการเก็บรักษาไว้เสมอ
</Info>

## เหตุผลที่สำคัญ

เซสชันที่ยาวจะสะสมผลลัพธ์จากเครื่องมือจนทำให้หน้าต่างบริบทขยายตัว ซึ่งเพิ่มค่าใช้จ่ายและอาจบังคับให้เกิด [Compaction](/th/concepts/compaction) เร็วกว่าที่จำเป็น

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

## วิธีการทำงาน

การตัดแต่งทำงานในโหมด `cache-ttl` โดยจะดำเนินการต่อเมื่อผ่านทั้งการตรวจสอบเวลาและการตรวจสอบขนาดบริบท:

1. รอให้ TTL ของแคชหมดอายุ (ค่าเริ่มต้นคือ 5 นาทีเมื่อตั้งค่าด้วยตนเอง โปรดดูค่าเริ่มต้นอัตโนมัติของ Anthropic ที่ [ค่าเริ่มต้นอัจฉริยะ](#smart-defaults)) ก่อน TTL จะครบกำหนด ระบบจะข้ามการตัดแต่งทั้งหมดเพื่อคงการใช้แคชพรอมต์ซ้ำสำหรับรอบสนทนาที่เกิดขึ้นใกล้กัน
2. เมื่อ TTL หมดอายุแล้ว ให้ประมาณขนาดบริบททั้งหมดเทียบกับหน้าต่างบริบทของโมเดล หากอัตราส่วนต่ำกว่า `softTrimRatio` (ค่าเริ่มต้น 0.3) ระบบจะข้ามการตัดแต่งและปล่อยให้นาฬิกา TTL ทำงานต่อไป
3. **ตัดแบบนุ่มนวล** สำหรับผลลัพธ์จากเครื่องมือที่มีขนาดใหญ่เกินอัตราส่วน: เก็บส่วนต้นและส่วนท้ายไว้ (ค่าเริ่มต้นส่วนละ 1,500 อักขระ โดยจำกัดรวมกันไม่เกิน 4,000 อักขระ) และแทรก `...` ไว้ตรงกลาง
4. หากอัตราส่วนยังคงเท่ากับหรือสูงกว่า `hardClearRatio` (ค่าเริ่มต้น 0.5) และยังมีเนื้อหาจากเครื่องมือที่ตัดแต่งได้อย่างน้อย `minPrunableToolChars` (ค่าเริ่มต้น 50,000) อักขระ ให้ **ล้างทั้งหมด** สำหรับผลลัพธ์เหล่านั้น โดยแทนที่เนื้อหาด้วยข้อความตัวแทน (ค่าเริ่มต้น `[เนื้อหาผลลัพธ์เก่าจากเครื่องมือถูกล้างแล้ว]`)
5. รีเซ็ตนาฬิกา TTL เฉพาะเมื่อการตัดแต่งเปลี่ยนแปลงบริบทจริง เพื่อให้คำขอต่อเนื่องใช้แคชใหม่ซ้ำได้

มีกฎความปลอดภัยสองข้อที่ใช้เสมอโดยไม่ขึ้นกับเกณฑ์: รอบการตอบของผู้ช่วย `keepLastAssistants` ล่าสุด (ค่าเริ่มต้น 3 รอบ) จะไม่ถูกตัดแต่ง และเนื้อหาใด ๆ ก่อนข้อความแรกของผู้ใช้ในเซสชันจะไม่ถูกตัดแต่ง (เพื่อปกป้องการอ่านข้อมูลเริ่มต้น เช่น `SOUL.md`/`USER.md`)

มีเพียงข้อความ `toolResult` เท่านั้นที่มีสิทธิ์ถูกตัดแต่ง ส่วนข้อความสนทนาปกติจะไม่ถูกแก้ไข ใช้ `agents.defaults.contextPruning.tools.{allow,deny}` เพื่อกำหนดขอบเขตว่าชื่อเครื่องมือใดสามารถถูกตัดแต่งได้

## การล้างรูปภาพแบบเดิม

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

- ระบบจะเก็บรักษา **3 รอบที่เสร็จสมบูรณ์ล่าสุด** แบบตรงตามข้อมูลระดับไบต์ เพื่อให้คำนำหน้าของแคชพรอมต์สำหรับการติดตามผลล่าสุดคงที่ จำนวนนี้รวมรอบที่เสร็จสมบูรณ์ทั้งหมด ไม่ใช่เฉพาะรอบที่มีรูปภาพ ดังนั้นรอบที่มีเฉพาะข้อความก็ใช้พื้นที่ในช่วงนี้ด้วย
- ในมุมมองสำหรับเล่นซ้ำ บล็อกรูปภาพเก่าที่ประมวลผลแล้วจากประวัติ `user` หรือ `toolResult` จะถูกแทนที่ด้วย `[นำข้อมูลรูปภาพออกแล้ว - โมเดลประมวลผลเรียบร้อยแล้ว]`
- การอ้างอิงสื่อแบบข้อความเก่า เช่น `[แนบสื่อ: ...]`, `[รูปภาพ: แหล่งที่มา: ...]` และ `media://inbound/...` จะถูกแทนที่ด้วย `[นำการอ้างอิงสื่อออกแล้ว - โมเดลประมวลผลเรียบร้อยแล้ว]` เครื่องหมายไฟล์แนบของรอบปัจจุบันจะยังคงเดิม เพื่อให้โมเดลด้านการมองเห็นยังสามารถเติมข้อมูลรูปภาพใหม่ได้
- บันทึกเซสชันดิบจะไม่ถูกเขียนใหม่ ดังนั้นโปรแกรมดูประวัติยังคงแสดงรายการข้อความและรูปภาพต้นฉบับได้
- กระบวนการนี้แยกจากการตัดแต่งตาม TTL ของแคชตามปกติข้างต้น โดยมีไว้เพื่อป้องกันไม่ให้เพย์โหลดรูปภาพที่ซ้ำกันหรือการอ้างอิงสื่อที่ล้าสมัยทำให้แคชพรอมต์ใช้ไม่ได้ในรอบถัดไป

## ค่าเริ่มต้นอัจฉริยะ

Plugin Anthropic ที่มาพร้อมระบบจะกำหนดค่าการตัดแต่งและความถี่ของ Heartbeat โดยอัตโนมัติในครั้งแรกที่แก้ไขโปรไฟล์การตรวจสอบสิทธิ์ของ Anthropic (หรือ Claude CLI) แต่เฉพาะฟิลด์ที่คุณยังไม่ได้ตั้งค่าไว้อย่างชัดเจน:

| โหมดการตรวจสอบสิทธิ์                                | `contextPruning.mode` | `contextPruning.ttl` | `heartbeat.every` |
| ---------------------------------------- | --------------------- | -------------------- | ----------------- |
| OAuth/โทเค็น (รวมถึงการใช้ Claude CLI ซ้ำ) | `cache-ttl`           | `1h`                 | `1h`              |
| คีย์ API                                  | `cache-ttl`           | `1h`                 | `30m`             |

หากคุณตั้งค่า `agents.defaults.contextPruning.mode` หรือ `agents.defaults.heartbeat.every` ด้วยตนเอง OpenClaw จะไม่เขียนทับค่าเหล่านั้น ค่าเริ่มต้นอัตโนมัตินี้ทำงานเฉพาะกับการตรวจสอบสิทธิ์ในตระกูล Anthropic ส่วนผู้ให้บริการรายอื่นจะใช้การตัดแต่งเป็น `off` เว้นแต่คุณจะกำหนดค่าเอง

## เปิดหรือปิดใช้งาน

การตัดแต่งจะปิดใช้งานตามค่าเริ่มต้นสำหรับผู้ให้บริการที่ไม่ใช่ Anthropic หากต้องการเปิดใช้งาน:

```json5
{
  agents: {
    defaults: {
      contextPruning: { mode: "cache-ttl", ttl: "5m" },
    },
  },
}
```

หากต้องการปิดใช้งาน: ตั้งค่า `mode: "off"`

## การตัดแต่งเทียบกับ Compaction

|            | การตัดแต่ง                  | Compaction             |
| ---------- | ------------------ | ----------------------- |
| **ทำอะไร**   | ตัดผลลัพธ์จากเครื่องมือ | สรุปการสนทนา |
| **บันทึกหรือไม่** | ไม่ (ต่อคำขอ)   | ใช่ (ในบันทึก)     |
| **ขอบเขต**  | เฉพาะผลลัพธ์จากเครื่องมือ  | การสนทนาทั้งหมด     |

ทั้งสองกระบวนการทำงานเสริมกัน โดยการตัดแต่งช่วยให้ผลลัพธ์จากเครื่องมือมีขนาดกะทัดรัดระหว่างรอบ Compaction

## อ่านเพิ่มเติม

- [Compaction](/th/concepts/compaction): การลดบริบทด้วยการสรุป
- [การกำหนดค่า Gateway](/th/gateway/configuration): ตัวเลือกการกำหนดค่าการตัดแต่งทั้งหมด (`contextPruning.*`)

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

- [การจัดการเซสชัน](/th/concepts/session)
- [เครื่องมือเซสชัน](/th/concepts/session-tool)
- [กลไกบริบท](/th/concepts/context-engine)
