Courses
ในบทช่วยสอนนี้ จะทดสอบสถานการณ์: ไม่กี่นาทีหลังอัปเดตซอฟต์แวร์ HarborCart — ร้านค้าสมมติที่ใช้ในสถานการณ์นี้ — เริ่มพบการชำระเงินล้มเหลว บางลูกค้ารอนานเกิน 30 วินาที บางรายพบข้อผิดพลาดฝั่งเซิร์ฟเวอร์และไม่สามารถจ่ายเงินได้ ผู้ให้บริการชำระเงินเองก็มีเหตุขัดข้องสั้น ๆ ดูเหมือนเป็นสาเหตุที่ชัดเจน
แต่เหตุขัดข้องของผู้ให้บริการไม่อธิบายว่าทำไมหน้าตะกร้าและคำสั่งซื้อจึงล้มเหลวด้วย การหาจุดเชื่อมโยงที่ขาดหายต้องใช้บันทึกแอปพลิเคชัน กราฟ บันทึกรายการคำขอ และโค้ดที่เพิ่งเปลี่ยนแปลง บทช่วยสอนนี้ทดสอบว่า Claude Opus 5.5 สามารถติดตามหลักฐานนั้น ทดสอบคำอธิบายภายใต้เงื่อนไขที่ควบคุมได้ และรายงานเฉพาะสิ่งที่หลักฐานรองรับได้หรือไม่
ข้อมูลพื้นฐานเล็กน้อย: Claude Opus 5.5 เปิดตัวเมื่อต้นสัปดาห์ ก่อนจะเริ่มโปรเจกต์นี้ ภาพรวม Claude Opus 5.5 ของเราครอบคลุมการเปิดตัวและผลทดสอบ ดังนั้นบทช่วยสอนนี้จะโฟกัสที่ API และสร้างเอเจนต์สืบสวนหนึ่งตัวตั้งแต่คำขอแรกไปจนถึงรายงานที่ตรวจสอบแล้ว
จะครอบคลุมวิธีการ:
- เรียก Claude Opus 5.5 ครั้งแรกและอ่านบล็อกเนื้อหาตามชนิด
- มอบเครื่องมือแบบอ่านอย่างเดียวให้เอเจนต์ด้วย สคีมาที่เคร่งครัด
- ให้โค้ดของ Claude เองกรองล็อกและเทรซด้วย การเรียกใช้เครื่องมือแบบโปรแกรม
- ปฏิบัติต่อสกรีนช็อตเป็นสมมติฐานและตรวจสอบกับเมตริก
- ทดสอบสาเหตุรากด้วยการรีเพลย์แบบโต้แย้งข้อเท็จจริง
- เปรียบเทียบระดับ effort กับหลักฐานชุดเดียวกัน
- ส่งคืน รายงานแบบมีโครงสร้าง ที่อนุญาตให้ระบุว่า "inconclusive"
- คำนวณต้นทุนการสืบสวนจากบันทึกการใช้งาน API
TL;DR
ตัวสืบสวนของ HarborCart แยกการพุ่งของเกตเวย์ชำระเงินออกจากนโยบายรีไทรที่ขยายปัญหา แล้วทดสอบคำอธิบายนั้นก่อนส่งคืนรายงาน
- ความล้มเหลวของเกตเวย์เป็นตัวกระตุ้น ไม่ใช่สาเหตุรากทั้งหมด การคิดเงินซ้ำที่ถูกรีไทรจะยึดการเชื่อมต่อฐานข้อมูลไว้นานพอที่จะทำให้เอ็นด์พอยน์ต์ที่ไม่เคยเรียกเกตเวย์ล่มได้
- การสืบสวนและการรายงานใช้คำขอแยกกัน การค้นเว็บ และ การอ้างอิง ใช้ได้ระหว่างสืบสวน; คำขอที่สองจัดรูปหลักฐานที่ตรวจสอบแล้วเป็น JSON
- การเรียกใช้เครื่องมือแบบโปรแกรมลดหลักฐานแบบซีเรียลไลซ์ลง 98.8% ตลอดการสืบสวนทั้งสามครั้ง ผลลัพธ์จากเครื่องมือ 142.8 KB เหลือสรุป 1.7 KB ที่ส่งคืนให้โมเดล
- ระดับ effort ที่สูงขึ้นไม่เปลี่ยนแผนรีเพลย์แกนหลัก ระดับ medium และ high เลือกสมมติฐานเดียวกันและการทดสอบสาเหตุแกนเดียวกัน
- การสืบสวนเต็มรูปแบบสามครั้งมีค่าเฉลี่ย $0.2737 และใช้เวลาราวสองนาที
Claude Opus 5.5 API คืออะไร?
เข้าถึง Claude Opus 5.5 ผ่าน Messages API ของ Anthropic ด้วยรหัสโมเดล claude-opus-5-5 ตามภาพรวมโมเดล โมเดลรับได้ทั้งข้อความและรูปภาพ มีหน้าต่างบริบท 1M โทเค็น และเอาต์พุตสูงสุด 128K เปิดโหมดคิดแบบปรับตัวเสมอ โดยค่าเริ่มต้น effort เป็น medium.
ราคา มาตรฐาน คือ $4 ต่อหนึ่งล้านโทเค็นอินพุต และ $20 ต่อหนึ่งล้านโทเค็นเอาต์พุต การเขียนแคชห้านาทีคิด $5 ต่อล้าน และการอ่านแคช $0.20 เมื่อ การแคชพรอมป์ต์ทำงานอยู่ คำนำที่ตรงกันจะถูกคิดในอัตราอ่านแคชที่ต่ำกว่า

อะไรเปลี่ยนจาก Claude Opus 5?
สี่ประเด็นจาก คู่มือย้ายรุ่น ปรากฏให้เห็นโดยตรงในโปรเจกต์นี้
-
การบังคับ
tool_choiceด้วยanyหรือชื่อเครื่องมือ จะทำให้ได้ข้อผิดพลาด 400 -
ค่าเริ่มต้น effort ลดจาก
highใน Claude Opus 5 เหลือmedium. -
ไม่สามารถปิดโหมดคิดได้ และบล็อก
thinkingต้องถูกส่งกลับโดยไม่เปลี่ยนแปลงภายในลูปเครื่องมือ -
บันทึกที่โมเดลเขียนระหว่างการเรียกเครื่องมือจะอยู่ในบล็อก
thinkingซึ่งค่าเริ่มต้นว่าง
จะสร้างอะไรด้วย Claude Opus 5.5?
เอเจนต์ทำหน้าที่สืบสวนเท่านั้น ได้รับเครื่องมืออ่านอย่างเดียวและไม่มีข้อมูลประจำตัวของระบบโปรดักชัน หลังเก็บหลักฐาน จะมีคำขอวางแผนแยกต่างหากเพื่อเสนอการทดสอบแบบโต้แย้งข้อเท็จจริง และ Python จะตรวจสอบและรันแผนระดับ medium
โค้ดทั้งหมด รวมถึงตัวสร้างหลักฐานและเว็บแอป อยู่ใน ที่เก็บ GitHub นี้.
เกิดอะไรขึ้นกับการชำระเงินของ HarborCart?
HarborCart เป็นร้านค่าสมมติ บริการ checkout-api ให้หน้าตะกร้า สถานะคำสั่งซื้อ และ POST /checkout ซึ่งตัดบัตรผ่านเกตเวย์ชำระเงินภายนอก เอ็นด์พอยน์ต์ทั้งหมดใช้พูลการเชื่อมต่อ PostgreSQL ร่วมกัน 15 การเชื่อมต่อ ต่ออินสแตนซ์
มีการดีพลอย และห้านาทีต่อมาเกตเวย์ตอบ 503 เป็นเวลาราว 90 วินาที ความหน่วงเช็คเอาต์พุ่งเกิน 30 วินาทีขณะที่พูลเต็มที่ 15 จาก 15 การโทษผู้ให้บริการชำระเงินเป็นคำตอบง่าย และเกตเวย์ก็ล้มเหลวจริง
สาเหตุที่ซ่อนอยู่ลึกเข้าไปอีกขั้น ดีพลอยให้นโยบายที่ทำให้การคิดเงินด้วย POST ที่ล้มเหลวถูกรีไทรได้สูงสุดสามครั้ง รวมเป็นสี่ครั้ง โดยไม่มีการพัก ขณะที่ตัวจัดการยังยึดการเชื่อมต่อฐานข้อมูลไว้ การคิดเงินที่ล้มเหลวช้าจึงยึดการเชื่อมต่อไว้นาน 30 วินาทีขึ้นไป จนพูลหมดและหน้าตะกร้าที่ไม่เคยเรียกเกตเวย์ก็ล้มเหลวด้วย
จะใช้สามคำอย่างสม่ำเสมอตั้งแต่ตรงนี้ โดย ตัวกระตุ้น คือความล้มเหลวของเกตเวย์ชั่วคราว การรีไทรคำขอ POST ชำระเงินขณะยึดการเชื่อมต่อฐานข้อมูลที่มีจำกัดคือ กลไกขยายปัญหา; การที่พูลการเชื่อมต่อร่วมกันหมดลงคือ ความล้มเหลวของระบบ.
เอเจนต์ตรวจสอบหลักฐานอะไรได้บ้าง?
เอเจนต์เริ่มจากการแจ้งเตือน สกรีนช็อตมอนิเตอร์ และแผนผังสถาปัตยกรรม ส่วนอื่น ๆ มาจากเครื่องมือ: ล็อก เทรซ เมตริกห้ารายการ ข้อมูลเมทาของการดีพลอย diff ของ Git และรันบุ๊ก ฝังคำอธิบายที่แข่งกันสามทางลงในหลักฐาน: คำเตือนสต๊อก คำเตือนฝั่งหน้าบ้าน และความเป็นไปได้ที่ CPU อิ่มตัว

เส้นทางเช็คเอาต์ของ HarborCart และพูลที่แชร์ ภาพโดยผู้เขียน
แผนภาพระบุว่าการเชื่อมต่อถูกยึดไว้ตลอดคำขอ แต่ไม่ได้บอกว่านั่นเป็นปัญหา การสืบสวนต้องหาคำตอบเอง
จะรู้ได้อย่างไรว่าการวินิจฉัยถูกต้อง?
กำหนดความสำเร็จก่อนสร้างเอเจนต์ รายงานที่ถูกต้องต้อง:
- ระบุการเปลี่ยนรีไทรที่ทำให้
POSTถูกรีไทรได้ - ระบุว่าการเชื่อมต่อฐานข้อมูลถูกยึดไว้ตลอดการเรียกเกตเวย์
- อธิบายว่าการยึดนานขึ้นทำให้พูลหมดได้อย่างไร
- ปฏิบัติต่อการพุ่งของเกตเวย์เป็นตัวกระตุ้น ไม่ใช่กลไกขยายปัญหา
- ปัดตกอย่างน้อยสองในสามคำอธิบายทางเลือก
- อ้างอิงหลักฐานเชิงรูปธรรม รวมถึง diff และเมตริกหนึ่งรายการ
- รวมการรีเพลย์แบบโต้แย้งข้อเท็จจริงที่ผลลัพธ์สอดคล้องกับคำตัดสิน
วิธีใช้ Claude Opus 5.5 API ด้วย Python
ต้องใช้ Python 3.10 ขึ้นไป และคีย์ Anthropic API ที่เข้าถึง claude-opus-5-5 ได้ คำสั่ง PowerShell ต่อไปนี้โคลนโปรเจกต์และติดตั้งไลบรารีที่ปักหมุดไว้ รวมถึง anthropic 1.8.0 หากใช้ Amazon Bedrock โปรดอ่านคำถามที่พบบ่อยก่อน เพราะมีหลายฟีเจอร์ที่พอร์ตไม่ได้
git clone https://github.com/KhalidAbdelaty/opus-5-5-api-tutorial.git
cd opus-5-5-api-tutorial
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Copy-Item .env.example .env
บน macOS หรือ Linux ให้เปิดใช้งานด้วย source .venv/bin/activate และคัดลอกด้วย cp .env.example .env ใส่คีย์ลงใน .env และ python-dotenv จะโหลดให้กับ SDK ดู คู่มือ environment variables ของเรา อธิบายแพตเทิร์นนี้ หากเคยเรียก Claude จาก Python มาก่อน ข้ามหัวข้อถัดไปได้ เพราะมีแค่การยืนยันการตั้งค่า
เรียก Claude Opus 5.5 API ครั้งแรก
คำขอที่เล็กที่สุดที่มีประโยชน์คือยืนยันคีย์และดูว่ามีอะไรกลับมา
import anthropic
from dotenv import load_dotenv
load_dotenv()
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=2048,
messages=[{"role": "user", "content": "A checkout API returns HTTP 503 right after a deploy. Name the first two things to check."}],
)
print([block.type for block in response.content])
text = "".join(block.text for block in response.content if block.type == "text")
ในคำขอนี้ การตอบกลับประกอบด้วยบล็อก thinking และ text เลือกบล็อกตามชนิดแทนการอ่าน response.content[0].
วิธีสร้างเอเจนต์เรียกใช้เครื่องมือของ Claude Opus 5.5
เอเจนต์ที่เรียกใช้เครื่องมือจะจับคู่ Messages API ของ Claude กับฟังก์ชัน Python ที่ควบคุมการเข้าถึงข้อมูล แอปพลิเคชันยึดกฎเดียว: Claude ตัดสินใจว่าต้องการหลักฐานอะไร และ Python ตัดสินใจว่าอนุญาตให้เข้าถึงอะไรได้บ้าง
ดู คู่มือการออกแบบโครงครอบเอเจนต์ ของเราสำหรับขอบเขตเครื่องมือและลูปที่กว้างกว่า HarborCart คงเครื่องมือแบบอ่านอย่างเดียวและจำกัดไว้แค่เหตุการณ์นี้
กำหนดเครื่องมือเหตุการณ์แบบอ่านอย่างเดียว
ทุกเครื่องมืออ่านชุดหลักฐานที่กำหนดตายตัวและส่งคืนผลลัพธ์ JSON ที่จำกัด การคิวรีล็อกและเทรซส่งคืนได้สูงสุด 200 แถวพร้อมจำนวน และคิวรีเมตริกส่งคืนได้สูงสุด 60 จุด
การเรียกใช้เครื่องมือแบบโปรแกรมยังไม่รองรับ strict: true ให้แยกเครื่องมือออกเป็นสองส่วน เก็บเครื่องมือควบคุมหลักฐานและเครื่องมือหยุดการสืบสวนให้เคร่งครัดและเรียกได้โดยตรงเท่านั้น ส่วนล็อก เทรซ และเมตริกใช้เฉพาะการรันโค้ด ซึ่งให้ทางเดียวที่ชัดเจนแก่ Claude สำหรับคิวรีหลักฐานขนาดใหญ่
{"name": "finish_investigation", "strict": True,
"allowed_callers": ["direct"],
"input_schema": {"type": "object",
"properties": {"summary": {"type": "string"}},
"required": ["summary"],
"additionalProperties": False}},
{"name": "query_traces",
"allowed_callers": ["code_execution_20260120"],
"input_schema": {...}},
allowed_callers เป็นตัวชี้นำโมเดลแต่ไม่ใช่ขอบเขตความปลอดภัย Python จะตรวจสอบผู้เรียกก่อนรันแต่ละเครื่องมือและปฏิเสธการเรียกคิวรีโดยตรง การเรียกแบบโปรแกรมยังข้ามการตรวจสคีมาที่เคร่งครัดด้วย ดังนั้นฟังก์ชันคิวรีจึงยังต้องตรวจสอบอาร์กิวเมนต์เอง
แอปพลิเคชันติดแท็กผลลัพธ์เครื่องมือทุกชิ้นที่ยอมรับ ปฏิเสธข้อค้นพบที่อ้างหลักฐานที่ไม่มีอยู่ และยอมรับ URL เอกสารเฉพาะเมื่อการค้นเว็บส่งคืนมา Python ไม่ใช่โมเดล เป็นผู้บันทึกผลลัพธ์การรีเพลย์
ใช้สคีมาที่เคร่งครัดแทนการบังคับเลือกเครื่องมือ
ตามที่ระบุไว้ในส่วนการย้ายรุ่น ให้คง tool_choice เป็น auto ระบุในพรอมป์ต์ว่าเมื่อใดที่เครื่องมือเหมาะสม และใช้สคีมาที่เคร่งครัดเมื่ออาร์กิวเมนต์ต้องถูกต้องเป๊ะ
สร้างลูปสืบสวนแบบหลายเทิร์น
ลูปจะส่งบทสนทนา รันบล็อก tool_use ใด ๆ ต่อท้ายผลลัพธ์ แล้วทำซ้ำ ต่อท้ายบล็อกของผู้ช่วยโดยไม่เปลี่ยนแปลง รวมถึง thinking และขณะพักการรันโค้ดแบบโปรแกรม ให้ส่งคืนรหัส container พร้อมเฉพาะบล็อก tool_result เท่านั้น
คำขอสืบสวนรวมวิสัยทัศน์ เครื่องมือ การค้นเว็บ effort และงบงาน แต่ไม่มีสคีมาเอาต์พุต วิธีนี้กันผลการค้นที่มีการอ้างอิงไม่ให้ปะปนในเอาต์พุต JSON แบบมีโครงสร้าง ขณะที่คำนำคำขอที่คงที่ช่วยให้การแคชพรอมป์ต์ทำงานต่อเนื่อง:
request = dict(
model="claude-opus-5-5",
max_tokens=16_000,
system=[{"type": "text", "text": SYSTEM_PROMPT, "cache_control": {"type": "ephemeral"}}],
tools=investigation_tools,
cache_control={"type": "ephemeral"},
thinking={"type": "adaptive", "display": "updates"},
output_config={
"effort": "medium",
"task_budget": {"type": "tokens", "total": 20_000},
},
betas=["task-budgets-2026-03-13", "thinking-display-updates-2026-08-18"],
)
วิธีส่งรูปภาพไปยัง Claude Opus 5.5 API
แนบแดชบอร์ดและแผนผังสถาปัตยกรรมกับข้อความของผู้ใช้แรกในรูปแบบ base64 PNG บอก Claude ให้ถือว่าสิ่งที่อ่านจากรูปเป็นสมมติฐานและยืนยันด้วย query_metrics.

แดชบอร์ดแสดงพูลอิ่มตัว CPU คงที่ ภาพโดยผู้เขียน
ทั้งแดชบอร์ดและคิวรีเมตริกใช้แหล่งข้อมูลเดียวกัน CPU อยู่ราว 30% ขณะพูลเต็ม ซึ่งโต้แย้งประเด็น "โฮสต์โหลดเกิน" ก่อนจะมีการคิวรีใด ๆ
ตรวจสอบไขว้สิ่งที่เห็นจากภาพกับเมตริกดิบ
สกรีนช็อตช่วยชี้ทิศว่าจะดูตรงไหน แต่ซีรีส์ตัวเลขเป็นตัวตัดสินว่า observation นั้นยืนอยู่ได้หรือไม่ วิสัยทัศน์สร้างสมมติฐาน เมตริกทดสอบมัน
สำหรับเวิร์กโฟลว์ที่เริ่มจากภาพ ดู บทช่วยสอน agentic vision HarborCart ใช้วิสัยทัศน์เพื่อเลือกเมตริกถัดไปเท่านั้น
การเรียกใช้เครื่องมือแบบโปรแกรมของ Claude Opus 5.5 ทำงานอย่างไร?
การเรียกใช้เครื่องมือแบบโปรแกรมให้ Claude เขียน Python ที่รันในคอนเทนเนอร์รันโค้ดและเรียกเครื่องมือของคุณเป็นฟังก์ชัน ผลลัพธ์ดิบอยู่ในแซนด์บ็อกซ์ และเฉพาะเอาต์พุตที่พิมพ์ของโค้ดเท่านั้นที่ถึงโมเดล
กระจายการดึงจากล็อกและเทรซ
เอเจนต์เขียนสคริปต์สั้น ๆ เพื่อดึงเทรซที่ล้มเหลวและพิมพ์เฉพาะจำนวนตามเอ็นด์พอยน์ต์ ในหนึ่งการสืบสวนเต็มรูปแบบ การเรียกใช้เครื่องมือแบบโปรแกรมลดหลักฐานแบบซีเรียลไลซ์ที่ส่งคืนสู่โมเดลลง 98.8% ผลลัพธ์เครื่องมือ 42.9 KB เหลือสรุป 0.5 KB เป็นการวัดไบต์ ไม่ใช่โทเค็นอินพุตที่คิดเงิน

การเรียกเครื่องมือช่วยจำกัดหลักฐานของเหตุการณ์ ภาพโดยผู้เขียน
เพิ่มการค้นหาเอกสารสำหรับพฤติกรรมของไลบรารีพึ่งพาที่ไม่แน่ใจ
แอปพลิเคชันเปิดให้ค้นเว็บแบบจำกัดเพื่อดู semantics ของไลบรารีรีไทร Claude ไม่ได้เรียกใช้ระหว่างการประเมินขั้นสุดท้าย ดังนั้นการวินิจฉัยที่วัดผลจึงยืนอยู่บน diff เมตริก ล็อก และเทรซ อ้างอิง urllib3 ยืนยันอิสระว่า allowed_methods=None รีไทรได้ทุกเวิร์บ และ backoff_factor=0 ตัดเวลารอออก แต่หน้านั้นไม่ใช่ส่วนหนึ่งของหลักฐานที่วัดผล
วิธียืนยันสาเหตุรากด้วยการรีเพลย์แบบโต้แย้งข้อเท็จจริง
การรีเพลย์แบบโต้แย้งข้อเท็จจริงคือการรันทราฟฟิกช่วงเกิดเหตุซ้ำ โดยตัดสาเหตุที่สงสัยออกหนึ่งอย่าง แล้วตรวจว่าความล้มเหลวหายไปหรือไม่ เปลี่ยนจาก "เส้นเหล่านี้ขึ้นพร้อมกัน" ให้กลายเป็นการทดสอบ
ทำให้รีเพลย์ซื่อสัตย์
รีเพลย์ใช้รูปแบบทราฟฟิกเดียวกัน สำหรับการเปรียบเทียบด้านล่าง แต่ละสถานการณ์เปลี่ยนเงื่อนไขเพียงหนึ่งอย่าง และแอปควบคุมว่าอนุญาตให้เปลี่ยนอะไรได้บ้าง
สรุปแยก 503 จากเกตเวย์ออกจาก timeout ของพูล และแยก 503 ของเช็คเอาต์ออกจากการอ่านหน้าตะกร้าและคำสั่งซื้อ การแยกนี้ทำให้โมเดลแยกตัวกระตุ้นออกจากตัวขยายได้

แต่ละรีเพลย์เปลี่ยนแค่เรื่องเดียว ภาพโดยผู้เขียน
รีเพลย์ฐานให้ 503 จำนวน 124 ครั้ง: timeout พูล 105 ครั้ง รวม 68 ความล้มเหลวบนเอ็นด์พอยน์ต์แบบอ่าน และข้อผิดพลาดเกตเวย์ 19 ครั้ง การย้อนนโยบายรีไทรลบ timeout พูลและความล้มเหลวการอ่านทั้งหมด แต่ทำให้เกิด 503 จากเกตเวย์ 93 ครั้งที่เช็คเอาต์ การปล่อยการเชื่อมต่อก่อนเรียกเกตเวย์ก็ลบความล้มเหลวของพูลเช่นกัน โดยเหลือ 503 จากเกตเวย์ 33 ครั้ง และการตัดการพุ่งของเกตเวย์ออกทำให้ไม่มีข้อผิดพลาด
รีเพลย์เผยให้เห็นข้อแลกเปลี่ยน: การย้อนกลับช่วยปกป้องพูลที่แชร์ แต่ปล่อยให้ความล้มเหลวของเช็คเอาต์ผ่านมากขึ้น ใช้เป็นมาตรการชั่วคราว จากนั้นเพิ่ม idempotency key เพื่อป้องกันการคิดเงินซ้ำซ้อน และหยุดการยึดการเชื่อมต่อระหว่างเรียกเกตเวย์
ทำให้การยืนยันเป็นกฎในโค้ด
พรอมป์ต์ของระบบร้องขอการรีเพลย์ แต่พรอมป์ต์ไม่ใช่กลไกบังคับใช้ ลูปจะตรวจว่ามีหลักฐานการรีเพลย์หรือไม่ และปฏิเสธการวินิจฉัยที่ไม่ได้ทดสอบ
เก็บการตรวจนี้ไว้ใน Python การทำพรอมป์ต์ให้คมขึ้นอาจช่วยให้ทำตามได้ดีขึ้น แต่ไม่รับประกัน
วิธีใช้ Effort และงบงานกับ Claude Opus 5.5
Effort กำหนดว่ามีการไตร่ตรองต่อขั้นตอนมากเพียงใด และ งบงาน กำหนดว่างานทั้งลูปควรใช้ทรัพยากรเท่าไร บทช่วยสอน Claude Opus 5 API ของเราเปรียบเทียบระดับ effort ทั้งห้า ที่นี่ medium และ high ได้รับหลักฐานก่อนรีเพลย์ชุดเดียวกัน
เปรียบเทียบ medium และ high บนหลักฐานเดียวกัน
โปรดักชันคงไว้ที่ medium ก่อนรีเพลย์ แอปถามทั้ง medium และ high ให้ออกแบบการทดสอบเชิงสาเหตุจากหลักฐานเดียวกัน และจะรันเฉพาะคำแนะนำของ medium ส่วนคำตอบ high ใช้เพื่อเปรียบเทียบเท่านั้น
คำขอ high ใช้การเปลี่ยน output_config.effort ต่อข้อความ ภายใต้ mid-conversation-output-config-2026-07-01 ซึ่งไม่เห็นคำตอบ medium
ทั้งสองระดับเลือกสมมติฐานเดียวกันและสามสถานการณ์รีเพลย์แกนเดียวกัน ระดับ high ใช้โทเค็นเอาต์พุตเฉลี่ย 2,631 เทียบกับ 2,307 ใน medium และมีค่าใช้จ่ายสูงกว่าราว 11% โดยไม่ได้เปลี่ยนการทดสอบเชิงสาเหตุ
ตั้งงบงานสำหรับทั้งลูป
เลือกงบงานจากการใช้งานที่สังเกตจริงแทนการเดา การสืบสวนที่ใหญ่ที่สุดของ HarborCart โดยไม่จำกัดใช้ไป 13,322 โทเค็นที่นับได้ รวมเอาต์พุตของโมเดลและข้อความผลลัพธ์เครื่องมือที่ Claude เห็น เพิ่มสำรอง 25% เป็น 16,653 ต่ำกว่าขั้นต่ำ 20,000 ของ Anthropic จึงตั้งงบไว้ที่ 20,000
คุมจำนวนเทิร์นและเวลาเป็นขีดจำกัดของแอป ตัวรันทดลองหยุดเริ่มงานใหม่เมื่อการใช้จ่ายที่บันทึกถึง $2.50 นี่ไม่ใช่เพดานแข็ง เพราะคำขอที่กำลังประมวลผลอาจจบสูงกว่านั้น
วิธีใช้เอาต์พุตแบบมีโครงสร้างของ Claude Opus 5.5
คำตอบสุดท้ายใช้งานเอาต์พุตแบบมีโครงสร้าง สคีมาแบบแบนครอบคลุมคำตัดสิน สาเหตุ สมมติฐานที่ปัดตก หลักฐาน และแนวทางแก้ ไม่รวมต้นทุนและความหน่วงเพราะแอปเป็นผู้วัด
แยกการสืบสวนออกจากการรายงาน
การอ้างอิงจากการค้นเว็บและ output_config.format ไม่สามารถอยู่ในคำขอเดียวกันได้: การอ้างอิงต้องใช้บล็อกเนื้อหาสลับคั่น ขณะที่สคีมาต้องการ JSON ดังนั้น HarborCart จึงสืบสวนโดยไม่มีสคีมาเอาต์พุต เก็บข้อค้นพบผูกกับแหล่งที่มาและผลรีเพลย์ แล้วส่งเฉพาะหลักฐานที่ตรวจสอบแล้วไปยังคำขอที่สองที่ไม่มีเครื่องมือหรือการค้นเว็บ
import json
report_response = client.messages.create(
model="claude-opus-5-5",
max_tokens=16_000,
system=report_instructions,
messages=[{"role": "user", "content": json.dumps(verified_evidence)}],
output_config={
"effort": "medium",
"format": {"type": "json_schema", "schema": report_schema},
},
)
คำขอที่สองต้องการเพียงหลักฐานที่ตรวจสอบแล้ว จึงไม่จำเป็นต้องรักษาแคชการสืบสวนเต็มไว้
อนุญาตให้มี "inconclusive" ในฟิลด์ verdict รายงานไม่ควรถูกบังคับให้วินิจฉัยแบบตรวจสอบได้เมื่อการรีเพลย์ขัดแย้งกับคำอธิบาย
สอดคล้องสคีมาไม่ได้แปลว่าถูกต้อง
สคีมาตรวจความถูกต้องของรูปแบบรายงาน ขณะที่การรีเพลย์ตรวจความถูกต้องของการวินิจฉัย กรณีปฏิเสธก็ยังส่ง HTTP 200 พร้อม stop_reason: "refusal" และอาจไม่ตรงกับสคีมาของคุณ จึงควรตรวจ stop reason ก่อนพาร์ส
Claude Opus 5.5 พบสาเหตุรากจริงหรือไม่?
รายงานสุดท้ายทั้งสามฉบับพบกลไกเชิงสาเหตุแกนกลางและปัดตกคำอธิบายทางเลือกทั้งสาม สองฉบับผ่านครบทั้งแปดข้อ; ฉบับที่สามได้ 6/8 เพราะละการระบุการเปลี่ยนคอนฟิก POST-retry ชัด ๆ และไม่อ้างอิง deployment diff นี่คือเหตุผลที่การให้คะแนนออฟไลน์ควรแยกจากการตรวจสคีมา: JSON ที่ถูกต้องและการวินิจฉัยที่ใช่ยังอาจให้รายงานที่ไม่ครบถ้วนได้
รายงานยังระบุความเสี่ยงที่สอง: การรีไทรการคิดเงินอาจเก็บเงินลูกค้าซ้ำ RFC 9110 ไม่ได้กำหนดให้ POST เป็น idempotent โดยกำเนิด และแนะนำให้หลีกเลี่ยงการรีไทรอัตโนมัติ เว้นแต่ไคลเอนต์จะรู้ว่าปลอดภัยที่จะทำซ้ำ การใช้ idempotency key ที่ผู้ให้บริการชำระเงินรองรับเป็นวิธีทั่วไปที่ทำให้การรีไทรเหล่านั้นปลอดภัยขึ้น
ดู บทช่วยสอน Streamlit ของเราสำหรับการตั้งค่าอินเทอร์เฟซ อินเทอร์เฟซของ HarborCart แสดงเหตุการณ์การสืบสวน แผนรีเพลย์ของ medium และ high ผลรีเพลย์ รายงานสุดท้าย และต้นทุน สำหรับสถานะระหว่างเรียกเครื่องมือ ดู คู่มือการพรอมป์ต์ Claude Opus 5.5 อธิบาย display: "updates"; แอปยังเรนเดอร์เหตุการณ์เครื่องมือเมื่อบล็อกอัปเดตว่าง
ต้นทุนการสืบสวนด้วย Claude Opus 5.5 เท่าไร?
การสืบสวนหนึ่งรอบสมบูรณ์มีค่าใช้จ่าย $0.2582 ถึง $0.2838 และใช้เวลา 108.8 ถึง 129.7 วินาที ค่าเฉลี่ย $0.2737 รวมการเปรียบเทียบ effort สูงแบบทางเลือก เอาต์พุตเฉลี่ย $0.2043 ราวสามในสี่ของทั้งหมด
นับโทเค็นแคชตามที่ API รายงาน
input_tokens ตัดโทเค็นที่แคชออกแล้ว ดังนั้นอินพุตทั้งหมดคือผลรวมสามฟิลด์ อย่าลบการอ่านแคชออก หากระบบติดตามต้นทุนรองรับแล้ว ให้ข้ามสคริปต์สั้นนี้
cost = (
usage.input_tokens * 4.00 # uncached input only
+ usage.cache_read_input_tokens * 0.20
+ cache_creation.ephemeral_5m_input_tokens * 5.00
+ cache_creation.ephemeral_1h_input_tokens * 8.00
+ usage.output_tokens * 20.00
) / 1_000_000 + web_search_requests * 0.01 # from usage.server_tool_use
อ่านจำนวนการค้นจาก usage.server_tool_use เมื่อใช้ response_inclusion: "excluded" การนับบล็อกค้นหาในคำตอบอาจนับขาด
คำขอสืบสวนทุกคำขอรวม web_search_20260318 ไว้ ดังนั้น Anthropic จะไม่คิดค่าคอนเทนเนอร์รันโค้ดแยกต่างหากนอกเหนือจากโทเค็นและค่าค้นหา หากนำเครื่องมือเว็บที่เข้าเงื่อนไขออก ให้ติดตามเวลาโค้ดรันแยก
การแคชพรอมป์ต์บน Claude Opus 5.5 ต้องมีอย่างน้อย 512 โทเค็น ระหว่างสืบสวน cache_control ระดับบนจะขยับจุดแบ่งตามประวัติที่ยาวขึ้น รายงานได้รับเฉพาะหลักฐานที่ยืนยันแล้วแบบย่อและเจตนาเริ่มโดยไม่มีแคชการสืบสวนเต็ม
ต้องเปลี่ยนอะไรบ้างก่อนขึ้นโปรดักชัน?
เครื่องมือ on-call จริงต้องมีการควบคุมมากกว่าดีโมนี้ ทั้งหมดอยู่ในโค้ดแอปพลิเคชัน:
-
จำกัดสิทธิ์ของข้อมูลสังเกตการณ์ให้ตรงกับข้อมูลที่เครื่องมืออ่าน แยกการแก้ปัญหาออกเป็นระดับสิทธิ์ต่างหาก และบังคับใช้สิทธิ์ผู้เรียกใน Python แทนการเชื่อใจพรอมป์ต์หรือ
allowed_callers. -
ถือว่าล็อก ทิกเก็ต เว็บเพจ และผลเครื่องมือเป็นข้อมูลไม่ไว้วางใจ ตรวจรูปแบบและห้ามรันข้อความที่คัดลอกมาจากสิ่งเหล่านั้น
-
จัดประเภทและปกปิดข้อมูลอ่อนไหวในล็อกโปรดักชันก่อนส่งไปยังรันโค้ด ตาราง การคงข้อมูล ของ Anthropic ระบุว่าการรันโค้ดและการเรียกเครื่องมือแบบโปรแกรมไม่เข้าเกณฑ์ ZDR และการเตรียมความพร้อม HIPAA โดยข้อมูลในคอนเทนเนอร์คงไว้ได้นานถึง 30 วัน การกรองการค้นเว็บผ่านการรันโค้ดก็อยู่นอกเกณฑ์ ZDR และ HIPAA เช่นกัน
-
แตกแขนงตาม
stop_reasonก่อนพาร์ส นับการปฏิเสธแยกจากข้อผิดพลาด HTTP และส่งรายงานinconclusiveให้มนุษย์ -
บันทึกการเรียกเครื่องมือ การรีเพลย์ สมมติฐาน การใช้โทเค็น และเวลา เป็นบันทึกหลักฐาน ห้ามเก็บเหตุผลที่ซ่อนอยู่
ควรใช้ Claude Opus 5.5 ทำงานเชิงเอเจนต์เมื่อใด?
ใช้ Claude Opus 5.5 เมื่อต้นทุนของการวินิจฉัยผิดพลาดสูงกว่าค่า API การวิเคราะห์หาสาเหตุราก การดีบักระดับทั้งที่เก็บ การวางแผนย้ายรุ่น และการสืบสวนที่ผสานล็อก รูปภาพ เอกสาร และหลายเครื่องมือเหมาะกับเกณฑ์นี้
หลีกเลี่ยงการใช้สำหรับงานจัดรูปแบบ จัดหมวดหมู่ สกัดข้อมูล และคำถามสั้น ๆ ที่ไม่ต้องใช้ลูปเครื่องมือ โมเดลที่เล็กกว่ามักทำงานเหล่านี้ได้เร็วกว่าและต้นทุนต่ำกว่า
สำหรับงานเอเจนต์ที่สำคัญ ให้เลือกงานที่ข้อสรุปตรวจสอบได้กับการทดสอบ เมตริก หลักฐานต้นทาง หรือการทบทวนโดยมนุษย์ รักษาโปรดักชันไว้ที่ medium เว้นแต่การประเมินแบบเทียบคู่จะแสดงว่า effort สูงช่วยแผนในเวิร์กโหลดของคุณ
ข้อคิดส่งท้าย
ได้สร้างตัวสืบสวนเหตุขัดข้องที่อ่านหลักฐานหลากหลาย เรียกเครื่องมือที่มีขอบเขต ทดสอบการวินิจฉัยของตนเอง และส่งคืนรายงานแบบมีโครงสร้าง รายงานสุดท้ายทั้งสามยังคงแยกตัวกระตุ้นกับสาเหตุรากตามที่อธิบายไว้ก่อนหน้า แต่ Python ยังต้องบังคับให้มีการรีเพลย์
ไม่ขอเหมารวมผลนี้กับทุกเหตุการณ์หรือฐานโค้ด สิ่งที่นำไปใช้ต่อได้คือวิธีการ: จำกัดการเข้าถึงข้อมูล กรองผลลัพธ์จากเครื่องมือขนาดใหญ่ก่อนถึงโมเดล อนุญาตคำตัดสิน "inconclusive" และยืนยันคำอธิบายนอกตัวโมเดล ส่วนการรีเพลย์คือสิ่งที่จะคงไว้แม้ในรุ่นย่อของโปรเจกต์นี้
การเปลี่ยนเครื่องมือหลักฐานและขั้นตรวจสอบช่วยให้แพตเทิร์นเดียวกันรองรับตัวสืบสวนความล้มเหลว CI ผู้รีวิว pull request หรือผู้ตรวจการย้ายระบบ ส่วนขยายแรกที่อยากทำคือเราท์เตอร์ที่ส่งเหตุการณ์ง่ายไปให้โมเดลราคาถูกกว่า และเก็บ Claude Opus 5.5 ไว้สำหรับเคสที่ต้องใช้แหล่งหลักฐานหลายแห่ง สำหรับภาพรวมระดับโมเดล ดูภาพรวม Claude Opus 5.5 ที่ลิงก์ไว้ในบทนำ
คำถามที่พบบ่อย
ปิดโหมดคิดใน Claude Opus 5.5 ได้ไหม?
ไม่สามารถทำได้ คำขอที่มี thinking: {"type": "disabled"} จะได้ข้อผิดพลาด 400 ในทุกระดับ effort ดังนั้นให้ลด effort เมื่อต้องการให้ไตร่ตรองน้อยลงและลดต้นทุน
API บอกได้ไหมว่าเหลืองบงานเท่าไร?
ไม่ได้ เคาน์ต์ดาวน์มองเห็นได้เฉพาะโมเดล และ usage ไม่มีฟิลด์งบงาน หากต้องติดตามการใช้จ่าย ให้รวมการใช้งานในแอปพลิเคชัน
Claude Opus 5.5 ดีกว่า Claude Opus 5 หรือไม่?
ไม่เสมอไป Claude Opus 5.5 เปลี่ยนราคา ค่าเริ่มต้น effort และพฤติกรรม API หลายอย่าง แต่คุณภาพของโมเดลยังต้องประเมินกับเวิร์กโหลดของคุณเอง
รันเอเจนต์นี้บน Amazon Bedrock ได้ไหม?
ไม่ทั้งหมด ลูปข้อความและเครื่องมือฝั่งไคลเอนต์พื้นฐานย้ายไปยัง Amazon Bedrock ได้ด้วยรหัสโมเดล anthropic.claude-opus-5-5 ปัจจุบัน Bedrock ยังไม่มีเอาต์พุตแบบมีโครงสร้าง การรันโค้ดฝั่งเซิร์ฟเวอร์ การค้นเว็บ และการเรียกใช้เครื่องมือแบบโปรแกรมที่ใช้ที่นี่ Claude Platform บน AWS เป็นบริการแยกต่างหากที่รองรับฟีเจอร์กว้างกว่า
Claude Opus 5.5 รันโค้ด Python ได้ไหม?
ได้ เครื่องมือรันโค้ดช่วยให้ Claude รัน Python ในคอนเทนเนอร์ที่มีการจัดการ การเรียกใช้เครื่องมือแบบโปรแกรมยังทำให้โค้ดนั้นเรียกเครื่องมือที่อนุญาตได้ แต่แอปของคุณยังคงรันเครื่องมือฝั่งไคลเอนต์และควบคุมสิทธิ์ของเครื่องมือเหล่านั้น