ข้ามไปยังเนื้อหา
CliffCompaction จากแล็บ Tim Dettmers — proxy ย่อ context ให้ Claude Code และ Codex แบบไม่สรุปความ ตัดทิ้งอย่างเดียว อ้างลดค่าใช้จ่ายได้สูงสุด 50%
เครื่องมือนักพัฒนา

CliffCompaction จากแล็บ Tim Dettmers — proxy ย่อ context ให้ Claude Code และ Codex แบบไม่สรุปความ ตัดทิ้งอย่างเดียว อ้างลดค่าใช้จ่ายได้สูงสุด 50%

อ่าน 5 นาที ที่มา: arXiv / dlab

เมื่อ 22 กันยายน 2026 Trang Nguyen, Eulrang Cho, Bingqing Chen และ Tim Dettmers เผยแพร่งานวิจัย “CliffCompaction: Cost-Efficient Compaction for Long-Horizon Coding Agents” บน arXiv และในวันรุ่งขึ้น (23 ก.ย. 03:40 UTC) แพ็กเกจ cliffcompaction 0.1.0 ก็ขึ้น PyPI ภายใต้ใบอนุญาต MIT มันคือเทคนิค auto-compaction หรือการย่อ context อัตโนมัติสำหรับ coding agent ที่ทำเป็น API proxy ชี้ base URL ของ agent มาที่ proxy ตัวนี้ได้เลยโดยไม่ต้องแก้ตัว agent ใช้ได้ทั้ง Claude Code, Codex CLI และ scaffold อื่นที่คุยผ่าน API ของ Anthropic หรือ OpenAI

ข่าวนี้มีบริบทต่อจาก dlab Open Source Week ที่ Dettmers ประกาศล่วงหน้าบนบล็อกเมื่อ 21 ก.ย. ในโพสต์นั้นเขาเขียนว่าใช้ CliffCompaction ในแล็บมาหลายเดือน และมองว่ามัน “considerably more powerful than the auto-compaction in Claude Code or Codex” เท่าที่เราตรวจสอบได้ ณ วันที่ 25 ก.ย. นี่เป็น ชิ้นเดียวจากรายการในโพสต์นั้นที่มีโค้ดให้ใช้จริงแล้ว และเครื่องมือนี้เพิ่งออกมาได้เพียง 2–3 วัน

ทำงานอย่างไร: ตัดทิ้ง ไม่เขียนใหม่

แนวคิดหลักคือปล่อยให้ context ขยายไปตามปกติจนถึงเกณฑ์ที่ตั้งไว้ แล้วจึงย่อทีเดียว ทำให้ความยาว context ตกฮวบเป็น “หน้าผา” (cliff) ทุกครั้งที่ย่อ งานวิจัยระบุว่ามี 3 ข้อที่ต่างจากการย่อด้วย LLM ทั่วไป

  • ไม่สรุปความ ใช้กฎตายตัวแทน ผลลัพธ์ของ tool ที่ยาวเกิน 500 ตัวอักษรจะถูกทิ้ง ส่วนที่สั้นกว่านั้น (เช่นผล grep หรือ exit code) เก็บไว้ ส่วน tool call จะเหลือแค่ signature บรรทัดเดียว (ชื่อ tool กับอาร์กิวเมนต์) ถ้า agent ต้องการข้อมูลเดิมก็เรียก tool ซ้ำได้ ส่วน system prompt กับข้อความแรกของผู้ใช้ (ตัวโจทย์) และ turn ล่าสุดจำนวนหนึ่งจะคงไว้ครบ
  • ไม่ย่อสิ่งที่เคยย่อแล้ว (“We never compact a compaction”) เมื่อถึงรอบย่อครั้งใหม่ บล็อกที่ย่อไว้ครั้งก่อนจะถูกทิ้งทั้งก้อน แล้วย่อเฉพาะส่วนที่เพิ่มเข้ามาหลังรอบก่อน ต่างจากการสรุปซ้อนสรุปที่ข้อมูลเพี้ยนสะสมไปเรื่อย ๆ
  • ถนอม prompt cache เพราะ context ไม่ถูกแตะเลยระหว่างสองรอบย่อ cache จึงใช้ได้ตลอดช่วงนั้นและเสียเฉพาะตอนย่อ งานวิจัยชี้ว่าค่า cache read คือต้นทุนใหญ่ที่สุดของ session ยาว และ CliffCompaction ลดส่วนนี้ได้ “by up to 90%”

ผู้เขียนยอมรับตรง ๆ ว่านี่คือการ แลก recall กับ precision ข้อมูลที่เก่ากว่าสองรอบย่อจะหายไปโดยตรง ไม่มีการเก็บความจำระยะยาว สิ่งที่เหลืออยู่ได้ก็เพราะส่งผลต่อสิ่งที่ agent ทำในรอบถัดมา

ตัวเลขจากงานวิจัย

  • Terminal-Bench 2.0 (scaffold Terminus-2): Kimi K2.6 ที่เกณฑ์ 32K และ 16K ได้ 61.42% สูงกว่าแบบ full context ที่ได้ 59.16% ที่ 16K ถ้าใช้ LLM summarization ในตัวของ Terminus-2 จะได้ 55.45% ส่วน GLM 5.1 ขยับจาก 49.83% เป็น 53.20% (32K) และ 54.33% (16K)
  • Claude Code บน Terminal-Bench 2.1: ที่ peak context เฉลี่ยราว 45K ได้ 76.69% เทียบกับ auto-compaction ของ Claude Code เองที่ 70.97% และค่าเริ่มต้น 200K ที่ 73.03% แต่ต้องอ่านให้ละเอียด การทดลองนี้รัน GLM 5.3 Flash ผ่าน Claude Code ไม่ได้ใช้โมเดล Claude
  • Test-time scaling: รัน Kimi K2.6 สามรอบพร้อม CliffCompaction ครบทั้ง Terminal-Bench ใช้เงิน $58.01 ซึ่งถูกกว่ารัน GPT 5.3 Codex หนึ่งรอบ และทำคะแนนได้เท่า Opus 4.7 ถ้าไม่ใช้ CliffCompaction การรันสามรอบจะใช้ $91.65 บทคัดย่อสรุปว่าได้ “over 10 percentage points on Terminal-Bench for less than the cost of two full-context runs”
  • KernelBench (continual learning): session ที่ยาวรวมกันเกินล้านโทเคนเร่งความเร็ว CUDA kernel ได้ 2.23 เท่า เมื่อผ่านไป 200 steps และ 3.58 เท่า เมื่อผ่านไป 400 steps

ส่วนข้อจำกัด ผู้เขียนระบุไว้เองว่าประโยชน์ “depend on the scaffold and on the task” และคุ้มเฉพาะงานตั้งแต่ปานกลางถึงยาว งานนี้ยังไม่ได้เทียบกับวิธีที่เทรนโมเดลให้จัดการ context เอง หรือระบบ external memory

ลองใช้งาน

uv tool install cliffcompaction     # หรือ pip install cliffcompaction (Python 3.11+)
cliff enable                        # ติดตั้ง daemon (systemd --user / launchd) ค่าเริ่มต้นสำหรับ Claude Code
cliff run --shadow -- claude        # โหมดสังเกตการณ์ บันทึกว่าจะย่ออะไรโดยไม่แก้จริง

cliff run -- claude จะเปิด proxy เฉพาะคำสั่งนั้นแล้วปิดเมื่อเลิกใช้ ส่วน Codex CLI ต้องเพิ่ม provider ใน ~/.codex/config.toml เกณฑ์เริ่มต้นคือ 200,000 โทเคน ซึ่ง README บอกว่าเหมาะกับโมเดล context 1M ส่วนโมเดล 200–250K ควรตั้ง 100,000–128,000 README ยังเตือนให้ ปิด compaction ของ scaffold เอง เพราะ scaffold บางตัวเขียน history ทับของเดิม ทำให้การจับคู่ prefix ของ proxy ใช้ไม่ได้ ถ้า proxy ทำงานผิดพลาดก็จะ “fail-open” คือส่งคำขอต่อไปโดยไม่แก้

มีจุดหนึ่งที่เวอร์ชันแพ็กเกจต่างจากงานวิจัย ในงานวิจัย “ความคิด” ของ agent ถูกตัดเหลือ 300 ตัวอักษร แต่ใน README ค่าเริ่มต้นคือ เก็บข้อความของ assistant และ thinking ไว้เต็ม (ปรับได้ด้วย --thought-max-chars)

มุมมอง AI Curator

ไอเดียนี้ เรียบง่ายจนน่าแปลกใจว่าได้ผล ข้อสรุปเชิงปฏิบัติที่สำคัญคือ context ของ agent ราว 84% เป็นผลลัพธ์กับการเรียก tool (ตัวเลขจากการวัดบน GLM 5.1 ในงานวิจัย) ซึ่ง agent เรียกดูใหม่เมื่อไหร่ก็ได้ การเสียเงินอ่าน cache ของไฟล์ที่เปิดดูไปเมื่อชั่วโมงก่อนซ้ำทุก request จึงสิ้นเปลืองจริง สำหรับทีมไทยที่ใช้ Claude Code หรือ Codex ผ่าน API แบบจ่ายตามโทเคน ถ้าตัวเลข “สูงสุด 50%” ใช้ได้จริงกับงานของทีม บิลเดือนละ 30,000 บาทอาจเหลือราวครึ่งหนึ่ง แต่คำว่า “สูงสุด” สำคัญ และผู้ใช้แผน subscription จะไม่ได้เห็นผลเป็นเงินโดยตรง

แต่ต้องระวังจุดที่ผู้เขียนเลือกแลกไว้เอง เราเคยรายงาน งานวิจัยที่พบว่าคำสั่งของผู้ใช้หายไปหลังการย่อ context CliffCompaction เก็บข้อความของผู้ใช้ไว้ครบในรอบย่อปัจจุบันก็จริง แต่เมื่อย่อไปแล้วสองรอบ คำสั่งที่พิมพ์ไว้กลางทางจะหายไปทั้งหมด มีแค่ system prompt กับโจทย์แรกที่อยู่รอด ข้อห้ามสำคัญอย่าง “ห้ามแตะ production” จึงควรเขียนไว้ใน system prompt หรือไฟล์คำสั่งที่โหลดตั้งแต่ต้น session อย่าไปพิมพ์ไว้กลาง session และควรเริ่มจากโหมด --shadow ก่อน นอกจากนี้ ตัวเลขเด่นส่วนใหญ่ในงานวิจัยมาจาก Kimi กับ GLM ไม่ใช่ Claude หรือ GPT ที่ทีมไทยส่วนใหญ่ใช้จริง

สำหรับ Open Source Week ที่เหลือ โพสต์ของ Dettmers สัญญาไว้อีกหลายอย่าง ได้แก่ agent harness, Qwen 3.6 35B-A3B แบบ 1.5 บิตที่วิ่ง 450 tokens/s บน Mac, การรัน Qwen 3.8 Flash Next 125B บน GPU 24 GB ใบเดียว และระบบวิจัยอัตโนมัติที่รันแบบ local ทั้งหมด ยังไม่มีโค้ดให้ตรวจสอบ เราจะเขียนถึงเมื่อปล่อยจริง ไม่ใช่จากคำโปรย ส่วน CliffCompaction ที่ออกมาก่อนก็มีทั้งงานวิจัย โค้ด MIT และตัวเลขที่ตรวจสอบย้อนกลับได้ ถือว่าเริ่มต้นได้ดี

แหล่งข่าว

บทความนี้เรียบเรียงจากแหล่งข่าวต้นทาง — arXiv / dlab

เนื้อหาบน blog นี้สร้างโดย AI โดยมีการกำกับบรรณาธิการจากมนุษย์

อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา

Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
เครื่องมือนักพัฒนา

Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ

Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2

· อ่าน 5 นาที
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
เครื่องมือนักพัฒนา

กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง

ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง

· อ่าน 4 นาที
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
เครื่องมือนักพัฒนา

Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้

รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog

· อ่าน 4 นาที