Knowledge Hub

Agent สามชั้น: Opus ตัดสิน Sonnet สร้าง Haiku อ่าน

แทนที่จะให้โมเดลเรือธงตัวเดียวทำทุกอย่าง ให้ส่งแต่ละงานไปยังชั้นที่ถูกที่สุดที่ทำได้ดี Opus 5.5 วางแผนและตัดสิน Sonnet 5.5 สร้าง Haiku 5.5 อ่านและย่อ ผลลัพธ์ tool และ prefix เดิมที่ cache ไว้ช่วยลดต้นทุนอีกชั้น ส่วนงานที่ส่ง จ่าย หรือลบต้องรอคนอนุมัติ

AI Agentsอ่าน 11 นาทีเผยแพร่ 14 ตุลาคม 2569

แก่นของเรื่อง

แนวคิดหลัก. อย่าให้โมเดลที่แพงที่สุดทำงานทุกอย่าง ส่งแต่ละงานไปยังชั้นที่ถูกที่สุดที่ทำงานนั้นได้ดี: อ่าน จัดเรียง และย่อไปที่ Haiku 5.5, สร้างและเขียนโค้ดไปที่ Sonnet 5.5, วางแผน ตัดสิน และกรณีไม่แน่ใจอยู่ที่ Opus 5.5 งานที่ล้มเหลวให้ยกขึ้นทีละชั้น ไม่ข้ามด้านข้าง และงานที่ส่ง จ่าย หรือลบรอคนอนุมัติ

ทำไมถึงได้ผล. สองกลไกคูณกัน กลไกแรก ราคาต่อโทเคนต่างกันตามชั้น (ตารางราคาทางการด้านล่าง) กลไกที่สอง ผลลัพธ์ดิบของ tool มักยาวมาก ถ้า Haiku ย่อให้เหลือไม่กี่ร้อยโทเคนก่อน Opus จะอ่านเฉพาะส่วนที่ย่อแล้ว และส่วนต้นของบริบท (system prompt กับรายการ tool) ที่เหมือนกันทุกเทิร์นถูก cache อ่านซ้ำได้ในราคาเศษหนึ่งส่วนยี่สิบของ input ปกติ

20% ที่สำคัญที่สุดในทางปฏิบัติ

ลำดับ สิ่งที่ทำ เหตุผล
ทำก่อน ทำให้ prefix (system prompt + รายการ tool) เหมือนเดิมทุกเทิร์น ลดต้นทุนทั้งหมดได้มากที่สุดด้วยแรงน้อยที่สุด และพังได้ด้วยจุดเดียวเช่น timestamp
ทำต่อ ใส่เพดานจำนวนเทิร์นและจำนวนครั้งที่ลองซ้ำ งานที่ติดจะหยุดและรายงาน ไม่วนลูปเผาเงิน
ทำต่อ ให้ Haiku ย่อผลลัพธ์ tool ก่อนถึงโมเดลบน ตัดโทเคนที่ชั้นแพงต้องอ่าน
รอได้ ปรับกฎส่งงานละเอียดต่อชนิดงาน เริ่มจากสามกลุ่มหยาบก็พอ

ช่วยให้ดีขึ้นอย่างไร

สถานการณ์ ไม่ใช้วิธีนี้ ใช้วิธีนี้ วัดอย่างไร หลักฐาน
ต้นทุน agent รัน 50 เทิร์น $22.42 $2.37 เมื่อ cache prefix ดอลลาร์ต่อการรัน วัดแล้ว ตามภาพ (ตัวอย่างที่ภาพให้ ไม่ได้ระบุขนาดบริบทที่ใช้ จึงคำนวณซ้ำไม่ได้)
ราคาอ่าน input ที่ซ้ำ $4.00 ต่อล้านโทเคน $0.20 ต่อล้านโทเคน (cache read) ดอลลาร์ต่อล้านโทเคน วัดแล้ว ตรงกับตารางราคาทางการของ Anthropic
ผลลัพธ์ tool ที่โมเดลบนต้องอ่าน ผลดิบทั้งหมด ผลที่ย่อแล้ว ไม่เกิน 300 โทเคน โทเคนที่ Opus อ่านต่อ tool call วัดแล้ว เพดาน 300 จากภาพ ต้นทุนที่ลดดูตัวอย่างด้านล่าง
งานติดวนลูป วนจนกว่าจะมีคนเห็น หยุดที่ 20 เทิร์นหรือลองซ้ำ 2 ครั้งต่อ tool แล้วรายงาน จำนวนเทิร์นที่เสียไปก่อนหยุด ตีความ (ภาพกำหนดเพดาน ไม่มีผลวัดว่าลดความเสียหายได้เท่าไร)
คุณภาพงานเมื่อชั้นถูกอ่านแทน Opus อ่านเอง Haiku ย่อให้ อัตราที่ข้อมูลสำคัญ (path, ตัวเลข, error) ยังอยู่ครบหลังย่อ ยังไม่ทดสอบ

ลองใช้

กฎส่งงานเป็นโค้ด (ถอดจากภาพ)

route(task):
  read · sort · condense  -> haiku-5.5
  build · write · code    -> sonnet-5.5
  plan · judge · unclear  -> opus-5.5
escalate: haiku -> sonnet -> opus -> you
caps: 20 turns · 2 retries per tool

คำนวณซ้ำ 1: cache prefix (ตัวอย่างประกอบ ตัวเลขของเราเอง)

ราคาทางการของ Opus 5.5 ต่อล้านโทเคน: input $4, เขียน cache (5 นาที) $5, อ่าน cache $0.20, output $20 สมมติ prefix 100,000 โทเคน และรัน 50 เทิร์น ไม่นับ output และข้อความใหม่ในแต่ละเทิร์น

วิธี คำนวณ รวม
ไม่ cache 50 เทิร์น x 100,000 โทเคน x $4 / 1,000,000 = 50 x $0.40 $20.00
cache $0.50 + 49 x $0.02 = $0.50 + $0.98 $1.48

ที่มาของ $0.50: เขียนครั้งแรก 100,000 x $5 / 1,000,000 ส่วน $0.02: อ่านซ้ำแต่ละเทิร์น 100,000 x $0.20 / 1,000,000

อัตราส่วน 20.00 / 1.48 ประมาณ 13.5 เท่า ตัวอย่างของภาพได้ 22.42 / 2.37 ประมาณ 9.5 เท่า ต่างกันเพราะภาพนับ output และข้อความใหม่ด้วย และเราไม่ทราบขนาดบริบทที่ภาพใช้

คำนวณซ้ำ 2: ให้ Haiku อ่านแทน Opus (ตัวอย่างประกอบ)

สมมติงานหนึ่งอ่านผลลัพธ์ tool 40 ชิ้น ชิ้นละ 5,000 โทเคน (รวม 200,000) ราคาทางการต่อล้านโทเคน: Opus 5.5 input $4, Haiku 5.5 input $0.10 และ output $0.50 (สำหรับ prompt ไม่เกิน 100,000 โทเคน) Haiku ย่อแต่ละชิ้นเหลือ 300 โทเคน (เพดานในภาพ) รวม 12,000 โทเคน ไม่นับผล cache

วิธี คำนวณ รวม
Opus อ่านดิบ 200,000 x $4 / 1,000,000 $0.800
Haiku อ่านดิบ 200,000 x $0.10 / 1,000,000 $0.020
Haiku เขียนสรุป 12,000 x $0.50 / 1,000,000 $0.006
Opus อ่านสรุป 12,000 x $4 / 1,000,000 $0.048
รวมแบบสามชั้น 0.020 + 0.006 + 0.048 $0.074

อัตราส่วน 0.800 / 0.074 ประมาณ 10.8 เท่า ตัวอย่างนี้ไม่ได้วัดว่าสรุปของ Haiku เก็บข้อมูลที่ Opus ต้องใช้ไว้ครบหรือไม่

เมื่อไรควรและไม่ควรใช้

เงื่อนไข ใช้ ไม่ใช้
ลักษณะงาน มีผลลัพธ์ tool ยาวและซ้ำ บริบทใหญ่ หลายเทิร์น งานสั้นไม่กี่เทิร์น บริบทเล็ก
ผลของความผิดพลาด ตรวจผลได้ด้วยการทดสอบหรือมีคนอนุมัติปลายทาง ผลเสียแรงและไม่มีจุดตรวจ
เงื่อนไขก่อนเริ่ม prefix คงที่ได้ (ไม่มีเวลาหรือค่าสุ่มใน prefix) prefix ต้องเปลี่ยนทุกเทิร์น cache ไม่ติด
ความต้องการเฉพาะ ผลลัพธ์ที่ต้องเก็บ path ตัวเลข และ error ตรงตัวย่อได้ ต้องการการเรียบเรียงใหม่ที่ละเอียดอ่อนทุกบรรทัด

ก้าวแรกที่เล็กที่สุดและวิธีตรวจว่าได้ผล

  1. ตรวจ prefix ก่อน: ลบสิ่งที่เปลี่ยนทุกเทิร์น (เวลา, id สุ่ม) ออกจาก system prompt และรายการ tool
  2. เปิด cache แล้วดูจำนวนโทเคนที่ถูกอ่านจาก cache ในผลตอบกลับของ API ว่าไม่เป็นศูนย์
  3. เทียบต้นทุนต่อรันเดิมกับหลังแก้ ในงานเดียวกัน 10 รัน
  4. เกณฑ์ผ่านที่ตั้งก่อนรัน (ค่าที่เราเลือกเอง): สัดส่วนโทเคนที่อ่านจาก cache เกิน 80% ของ input ตั้งแต่เทิร์นที่สอง

ทดสอบความเข้าใจ

คำถาม คำตอบ คำตอบที่มักผิด
เพิ่ม timestamp ปัจจุบันไว้บรรทัดแรกของ system prompt จะเกิดอะไรขึ้นกับ cache prefix เปลี่ยนทุกเทิร์น ไม่มี cache hit ต้องจ่าย input เต็มราคา "แค่บรรทัดเดียว ส่วนที่เหลือยังติด" (เปลี่ยนตรงไหน ส่วนหลังจากนั้นไม่ติด)
งานของ Haiku ล้มเหลว จะยกไปที่ไหน ขึ้นไป Sonnet ทีละชั้น แล้ว Opus แล้วถึงคน ไม่ข้ามด้านข้าง "ลองใหม่กับ Haiku ตัวอื่นจนกว่าจะผ่าน"
ตาราง: เขียน cache $5 แพงกว่า input $4 แล้วคุ้มเมื่อไร คุ้มตั้งแต่อ่านซ้ำครั้งแรก: เขียนแพงกว่า $1 แต่อ่านซ้ำแต่ละครั้งประหยัด $3.80 "cache ถูกกว่าเสมอ" (ครั้งที่เขียนแพงกว่าราคาปกติ 1.25 เท่า)
ใครอนุมัติงาน "ส่งอีเมล" คน การส่ง จ่าย ลบ หรือเปิดสาธารณะรอการอนุมัติ ไม่ผ่านชั้นโมเดล "Opus อนุมัติเองได้เพราะเป็นชั้นตัดสิน"
ตัวอย่าง $22.42 เป็น $2.37 พิสูจน์ว่า cache ลดได้ 9.5 เท่าทุกงานหรือไม่ ไม่ เป็นตัวอย่างหนึ่ง อัตราส่วนขึ้นกับขนาด prefix สัดส่วน output และจำนวนเทิร์น "ใช่ ได้ 9.5 เท่าเสมอ"
ทำไมต้องตั้งเพดาน 20 เทิร์น และลอง 2 ครั้งต่อ tool ให้งานที่ติดหยุดและรายงาน ไม่วนจ่ายเงินต่อโดยไม่มีใครเห็น "เพราะ 20 เทิร์นพอสำหรับทุกงาน"

ภาพอ้างอิงและสิ่งที่อ่านได้จากภาพ

แผนภาพ agent สามชั้นกับตารางราคา

ภาพเป็นหน้าเอกสารเดียว มีแผนภาพ (Fig. 1) ย่อหน้า 4 ส่วน บล็อกกฎส่งงาน และตารางราคา ส่วนที่ถูกไฮไลต์ในภาพคือประโยค "The fix is routing each task to the cheapest tier that can do it well."

แผนภาพตามภาพ (ทิศทางลูกศรเป็นการตีความ)

flowchart LR
    U["task from you"] --> O["Opus 5.5: plans, decides"]
    O -->|route| S["Sonnet 5.5: builds, codes"]
    O -->|route| H["Haiku 5.5: reads, condenses"]
    H -->|"up to 300 tokens"| O
    H -.->|escalate on fail| S
    S --> TL["tools: files, web, tests"]
    H --> TL
    TL --> H
    O --> D["done check or turn cap"]
    D --> A["you approve: send, pay, delete"]
    P["cached prefix: system prompt + tools, identical every turn"] -.-> O

ข้อเท็จจริงที่อ่านได้จากภาพ

ส่วน สิ่งที่ภาพระบุ
ชั้น Opus 5.5 วางแผนและตัดสิน ได้ task จากคน
ชั้น Sonnet 5.5 สร้างและเขียนโค้ด
ชั้น Haiku 5.5 อ่าน จัดเรียง ย่อ ส่งกลับไม่เกิน 300 โทเคน
ทางยกระดับ haiku -> sonnet -> opus -> คน
เพดาน 20 เทิร์น และลองซ้ำ 2 ครั้งต่อ tool
ประตูมนุษย์ ส่ง, จ่าย, ลบ ต้องได้รับอนุมัติ
ราคา Opus 5.5 ต่อล้านโทเคน input $4.00 / cache read $0.20 / cache write $5.00 / output $20.00
ตัวคูณเทียบ input 1x / 0.05x / 1.25x / 5x ตามลำดับข้างบน
ตัวอย่างต้นทุน รัน 50 เทิร์น $22.42 เหลือ $2.37 เมื่อ cache prefix

ตรวจกับเอกสารทางการ

ข้อความในภาพ ผลตรวจ แหล่ง
ราคา Opus 5.5: $4, $5, $0.20, $20 ต่อล้านโทเคน ตรงกันทุกค่า Anthropic, หน้า Pricing
อ่านจาก cache ถูกลงเหลือ 0.05 เท่า ตรงกัน สำหรับ Opus 5.5 และ Sonnet 5.5 (รุ่นอื่นส่วนใหญ่เป็น 0.1 เท่า) Anthropic, หน้า Prompt caching
เปลี่ยน prefix ครั้งเดียว cache ล้ม ตรงกัน: เปลี่ยน tool definition หรือใส่ timestamp ใน prefix ทำให้ cache ไม่ติด Anthropic, หน้า Prompt caching
ตัวอย่าง $22.42 เป็น $2.37 ตรวจไม่ได้ ภาพไม่ระบุขนาดบริบท -
ความสามารถของ Haiku 5.5 ในการย่อโดยไม่ทำข้อมูลหาย ไม่มีในภาพและไม่ได้ตรวจ -

ราคาของ Sonnet 5.5 และ Haiku 5.5 ที่ใช้ในตัวอย่างคำนวณมาจากหน้า Pricing ของ Anthropic (Sonnet 5.5 input $2 และ output $10, Haiku 5.5 input $0.10 และ output $0.50 สำหรับ prompt ไม่เกิน 100,000 โทเคน) ภาพไม่ได้ระบุราคาของสองรุ่นนี้

ความเสี่ยงและข้อจำกัด

Warning การย่อผลลัพธ์ tool ด้วยโมเดลเล็กอาจตัดข้อมูลที่ชั้นบนต้องใช้ทิ้ง (path, เลขบรรทัด, ข้อความ error) ต้องทดสอบกับงานจริงก่อนไว้ใจ เพดาน 300 โทเคนเป็นความเสี่ยงโดยตรงเมื่อผลลัพธ์มีรายละเอียดเยอะ

ความเสี่ยง เกิดเมื่อ ลดอย่างไร
cache ไม่ติดโดยไม่รู้ตัว มีเวลา ค่าสุ่ม หรือรายการ tool ที่เปลี่ยนใน prefix ตรวจจำนวนโทเคนที่อ่านจาก cache ทุกรัน
prompt สั้นกว่าขั้นต่ำที่ cache ได้ prefix ต่ำกว่าเกณฑ์ (เอกสารของ Opus 5.5 ระบุขั้นต่ำ 512 โทเคน) ตรวจความยาว prefix
ชั้นถูกอ่านสรุปผิด Haiku ย่อแล้วข้อมูลหาย ให้เก็บ path ตัวเลข และ error ตรงตัว แล้วสุ่มเทียบกับผลดิบ
งานที่ล้มวนยกขึ้นถึง Opus เสมอ ชั้นล่างทำไม่ได้จริง นับอัตรายกระดับ ถ้าสูงแปลว่ากฎส่งงานผิดกลุ่ม
คนกดอนุมัติโดยไม่อ่าน ขอมากเกินไป ขออนุมัติเฉพาะ ส่ง จ่าย ลบ เปิดสาธารณะ

Decision / next steps

Recommendation เริ่มจากสองอย่างที่ไม่ต้องแตะคุณภาพงาน: ทำ prefix ให้คงที่และตรวจว่า cache ติด จากนั้นจึงใส่เพดานเทิร์น แล้วค่อยเพิ่มการให้ Haiku ย่อผลลัพธ์พร้อมทดสอบสุ่มเทียบกับผลดิบ

Sources

ตัวย่อที่ใช้ในหน้านี้

ตัวย่อ ชื่อเต็ม คืออะไร อ่านค่าอย่างไร
API Application Programming Interface ช่องทางให้โปรแกรมเรียกบริการอื่น ผลตอบกลับของ API มีจำนวนโทเคนที่อ่านจาก cache = ใช้ตรวจว่า cache ติด
x เท่า (ตัวคูณ) ตัวคูณเทียบกับราคา input ปกติ "0.05x" = ราคาเป็นห้าในร้อยของ input ปกติ

แถว API เป็นความรู้ทั่วไป ภาพไม่ได้นิยามไว้

ศัพท์เฉพาะ

คำ ความหมาย
tier (ชั้น) ระดับโมเดล: Opus 5.5, Sonnet 5.5, Haiku 5.5
prefix ส่วนต้นบริบทที่เหมือนกันทุกเทิร์น (system prompt + รายการ tool)
cache read / write อ่านจาก cache (ถูก) / เขียนเข้า cache ครั้งแรก (แพงกว่า input เล็กน้อย)
escalate ยกงานที่ล้มเหลวขึ้นชั้นถัดไป
turn cap เพดานจำนวนเทิร์นของงานหนึ่ง

Summary

  • ส่งแต่ละงานไปยังชั้นที่ถูกที่สุดที่ทำได้ดี: อ่านและย่อ Haiku, สร้าง Sonnet, ตัดสินและไม่แน่ใจ Opus
  • งานล้มยกขึ้นทีละชั้นถึงคน เพดาน 20 เทิร์น ลอง 2 ครั้งต่อ tool และงานส่ง จ่าย ลบ รอคนอนุมัติ
  • ตัวเลขราคา Opus 5.5 ในภาพตรงกับเอกสารทางการ ตัวอย่าง $22.42 เหลือ $2.37 ตรวจซ้ำไม่ได้ ใช้ตัวอย่างที่คำนวณซ้ำได้แทน
  • เริ่มที่ prefix คงที่และตรวจว่า cache ติด
ตัวเลขสำคัญ ค่า
อ่านจาก cache เทียบ input ปกติ (Opus 5.5) 0.05x
ตัวอย่างของเรา 50 เทิร์น ไม่ cache / cache $20.00 / $1.48
ตัวอย่างของเรา ให้ Haiku อ่านแทน Opus $0.800 / $0.074
เพดานต่องาน 20 เทิร์น, ลอง 2 ครั้งต่อ tool
Facebook

ความรู้ที่เกี่ยวข้อง