Sessions and memory

การพรูนเซสชัน

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

เหตุใดจึงสำคัญ

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

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

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

  1. รอให้ cache TTL หมดอายุ (ค่าเริ่มต้น 5 นาที)
  2. ค้นหาผลลัพธ์เครื่องมือเก่าสำหรับการพรูนตามปกติ (ข้อความสนทนาจะไม่ถูกแตะต้อง)
  3. Soft-trim ผลลัพธ์ที่มีขนาดใหญ่เกินไป -- เก็บส่วนต้นและส่วนท้ายไว้ แล้วแทรก ...
  4. Hard-clear ส่วนที่เหลือ -- แทนที่ด้วย placeholder
  5. รีเซ็ต TTL เพื่อให้คำขอติดตามผลนำ cache ใหม่กลับมาใช้ซ้ำ

การล้างข้อมูลภาพแบบเดิม

OpenClaw ยังสร้างมุมมอง replay แบบ idempotent แยกต่างหากสำหรับเซสชันที่ เก็บ image block ดิบหรือ media marker สำหรับการเติมพรอมป์ไว้ในประวัติ

  • ระบบจะเก็บ3 turn ที่เสร็จสมบูรณ์ล่าสุดไว้แบบ byte-for-byte เพื่อให้ prompt cache prefix สำหรับการติดตามผลล่าสุดยังคงเสถียร
  • ในมุมมอง replay image block เก่าที่ประมวลผลแล้วจากประวัติ user หรือ toolResult สามารถถูกแทนที่ด้วย [image data removed - already processed by model]
  • การอ้างอิงสื่อแบบข้อความที่เก่ากว่า เช่น [media attached: ...], [Image: source: ...] และ media://inbound/... สามารถถูกแทนที่ด้วย [media reference removed - already processed by model] ตัวทำเครื่องหมายไฟล์แนบของ turn ปัจจุบัน จะยังคงอยู่เพื่อให้ vision model ยังเติมภาพใหม่ได้
  • ทรานสคริปต์เซสชันดิบจะไม่ถูกเขียนทับ ดังนั้นตัวแสดงประวัติยังคง แสดงรายการข้อความต้นฉบับและภาพของรายการเหล่านั้นได้
  • สิ่งนี้แยกจากการพรูน cache-TTL ตามปกติ โดยมีไว้เพื่อหยุดไม่ให้ payload ภาพที่ซ้ำกันหรือ media ref เก่าทำให้ prompt cache ใช้งานไม่ได้ใน turn ถัดไป

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

OpenClaw จะเปิดใช้การพรูนอัตโนมัติสำหรับโปรไฟล์ Anthropic:

ประเภทโปรไฟล์ เปิดใช้การพรูน Heartbeat
การยืนยันตัวตน Anthropic แบบ OAuth/token (รวมถึงการใช้ Claude CLI ซ้ำ) ใช่ 1 ชั่วโมง
API key ใช่ 30 นาที

หากคุณตั้งค่าที่ชัดเจนไว้ OpenClaw จะไม่เขียนทับค่าเหล่านั้น

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

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

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

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

การพรูนเทียบกับ Compaction

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

ทั้งสองอย่างเสริมกัน -- การพรูนช่วยให้เอาต์พุตเครื่องมือกระชับระหว่าง รอบของ Compaction

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

  • Compaction -- การลดบริบทด้วยการสรุป
  • Gateway Configuration -- ตัวเลือกคอนฟิกการพรูนทั้งหมด (contextPruning.*)

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