Claude API เวอร์ชัน 2026-10-21: มีอะไรเปลี่ยนแปลงและวิธีอัปเกรดอย่างปลอดภัย
Claude API เวอร์ชัน 2026-10-21 เป็นค่า anthropic-version ใหม่ค่าแรกนับตั้งแต่ 2023-06-01 โดยมีการเปลี่ยนแปลงแบบ breaking change สามรายการใน Messages API ได้แก่ temperature, top_p และ top_k จะส่งคืนข้อผิดพลาด 400 แล้ว, บล็อก document ในข้อความ assistant จะส่งคืน 400 และ citations บนบล็อก text ในข้อความ user จะส่งคืน 400 นอกจากนี้ยังเปลี่ยนชื่อฟิลด์หลายรายการใน Admin API และ Enterprise Analytics API คุณเลือกใช้เวอร์ชันใหม่ได้โดยส่ง anthropic-version: 2026-10-21 หรืออัปเกรดเป็น SDK major ใหม่ (Python 2.0.0, TypeScript 1.0.0, Go 2.0.0 และอื่น ๆ)
แต่มีจุดที่ต้องระวัง: การอัปเกรด SDK คือวิธีที่ทีมส่วนใหญ่จะ "เผลอ" ย้ายไปใช้เวอร์ชันใหม่ คำสั่ง pip install -U anthropic หรือ npm update ตามปกติที่ข้าม major version จะเปลี่ยนทุกคำขอไปเป็น 2026-10-21 พร้อมกันในทันที คู่มือนี้รวบรวมทุกการเปลี่ยนแปลงที่เอกสารของ Anthropic ระบุไว้ แสดงให้เห็นว่ารายการใดสร้างปัญหาในโค้ดจริง และให้ลำดับการอัปเกรดที่ปลอดภัยแก่คุณ
anthropic-version header คืออะไร?
anthropic-version header เป็น request header ที่จำเป็น ซึ่งกำหนดรูปร่างของ Claude API ที่คุณจะได้รับกลับมา ภายในเวอร์ชันเดียวกัน Anthropic จะรักษาพารามิเตอร์อินพุตและเอาต์พุตที่มีอยู่ให้คงที่ แต่สามารถเพิ่มอินพุตแบบไม่บังคับ ค่าเอาต์พุตใหม่ รูปแบบ enum ใหม่ เช่น ชนิดของเหตุการณ์สตรีมมิ่ง และเงื่อนไขข้อผิดพลาดใหม่ ๆ ได้ การเปลี่ยนแปลงแบบ breaking change จะเกิดขึ้นเฉพาะเมื่อมีเวอร์ชันวันที่ใหม่เท่านั้น
จากหน้าประวัติเวอร์ชัน มีอยู่สามเวอร์ชัน:
| เวอร์ชัน | สิ่งที่เปิดตัวในเวอร์ชันนี้ |
|---|---|
2023-01-01 |
การเปิดตัวครั้งแรก |
2023-06-01 |
เพิ่ม server-sent events แบบมีชื่อสำหรับการสตรีมแบบเพิ่มทีละส่วน; ลบเหตุการณ์ data: [DONE] และค่า exception กับ truncated แบบเดิมออก |
2026-10-21 |
ลบพารามิเตอร์การสุ่มตัวอย่าง (sampling parameters), กฎการตรวจสอบเนื้อหาข้อความที่เข้มงวดขึ้น, เปลี่ยนชื่อฟิลด์ใน Admin และ Analytics |
หากคุณใช้ SDK อย่างเป็นทางการ คุณจะไม่ต้องตั้ง header นี้ด้วยตัวเอง เพราะ SDK major แต่ละรุ่นจะส่งเวอร์ชันที่เป็นเวอร์ชันปัจจุบันตอนที่ major นั้นเปิดตัว นั่นคือเหตุผลที่การอัปเกรด SDK และการอัปเกรดเวอร์ชัน API จึงเป็นเหตุการณ์เดียวกันสำหรับโค้ดเบสส่วนใหญ่
การเปลี่ยนแปลงแบบ breaking change ของ Claude API 2026-10-21
การเปลี่ยนแปลงเหล่านี้มีผลกับ POST /v1/messages กับการนับ token และกับทุกคำขอภายใน Message Batch ที่สร้างด้วย 2026-10-21
1. temperature, top_p และ top_k ถูกนำออก
นี่คือการเปลี่ยนแปลงที่คนส่วนใหญ่จะเจอ คำขอใดก็ตามที่ส่ง temperature, top_p หรือ top_k จะส่งคืนข้อผิดพลาด 400 ในทุกโมเดล แม้ว่าคุณจะส่งค่าเริ่มต้นก็ตาม การมี temperature: 1.0 หลงเหลืออยู่ในไฟล์คอนฟิกก็เพียงพอที่จะทำให้การเรียกใช้งานล้มเหลวได้
สิ่งที่จะเกิดขึ้นกับคุณภาพของเอาต์พุตนั้นขึ้นอยู่กับโมเดล:
- Claude 4.7 และใหม่กว่า ยอมรับเฉพาะค่าการสุ่มตัวอย่างค่าเริ่มต้นอยู่แล้ว ดังนั้นการลบพารามิเตอร์เหล่านี้ออกจึงไม่เปลี่ยนวิธีการสุ่มตัวอย่างของโมเดลเหล่านี้เลย
-
โมเดลรุ่นเก่าที่ยอมรับค่าอื่น เช่น Claude Sonnet 4.6 จะสูญเสียผลลัพธ์ที่คุณเคยได้จากการลด
temperatureลง คู่มือการย้ายเวอร์ชัน ระบุตรง ๆ ว่าไม่มีค่ารายการอื่นใดมาทดแทนได้
หากคำขอใดจำเป็นต้องใช้ค่าที่ไม่ใช่ค่าเริ่มต้นจริง ๆ Anthropic ให้ทางเลือกคุณสองทาง คือ หยุดส่งค่านั้นไป หรือคงคำขอนั้นไว้บน 2023-06-01
2. บล็อก document ในข้อความ assistant ส่งคืน 400
แอปบางตัวเล่นประวัติการสนทนาซ้ำโดยมีบล็อก document อยู่ในเทิร์นของ assistant โดยตรง ภายใต้เวอร์ชัน 2026-10-21 สิ่งนี้จะถูกปฏิเสธ ให้ย้ายเอกสารไปไว้ในข้อความ user แทน ส่วนเอกสารที่ซ้อนอยู่ภายในบล็อกอื่น เช่น ผลลัพธ์ของเครื่องมือ web fetch ที่ Claude ส่งกลับมา ยังคงได้รับการยอมรับ
3. citations ในข้อความ user ส่งคืน 400
บล็อก text ที่มีอาร์เรย์ citations ไม่ว่างเปล่าในข้อความ user จะล้มเหลวในตอนนี้ ซึ่งรวมถึงข้อความที่อยู่ภายในบล็อก search_result ด้วย ให้ลบ citations ออกจากบล็อกเหล่านั้น ส่วน citations ในคำตอบ assistant ของ Claude เองที่คุณส่งกลับไปยังใช้ได้ปกติ เช่นเดียวกับ "citations": {"enabled": true} บนเอกสารและผลการค้นหา
4. การเปลี่ยนชื่อฟิลด์ใน Admin API และ Enterprise Analytics
คำตอบจะไม่มีชื่อฟิลด์เดิมอีกต่อไป:
| Endpoint | ฟิลด์เดิม | ฟิลด์ใหม่ |
|---|---|---|
| RBAC groups | roles |
role_ids |
| RBAC group members | group_id |
rbac_group_id |
| RBAC roles | name |
display_name |
| Organization and workspace rate limits | group_type |
group.type |
| API keys | workspace_id |
scope.workspace_id |
| Analytics per-user usage and cost reports | actor.email |
actor.email_address |
| Analytics activity summaries | summaries |
data |
การเปลี่ยนแปลงของ API key เป็นจุดที่สังเกตได้ยาก ภายใต้เวอร์ชัน 2023-06-01 นั้น workspace_id จะเป็น null ทั้งสำหรับคีย์ที่ผูกกับ Default Workspace และสำหรับคีย์ที่ใช้ได้กับทุก workspace ภายใต้เวอร์ชัน 2026-10-21 นั้น scope.workspace_id จะเก็บ ID จริงของ Default Workspace และคีย์ที่ใช้ได้กับทุก workspace จะมี scope: {"type": "organization"} โดยไม่มี workspace_id หากแดชบอร์ดของคุณตีความ null ว่าเป็น "Default Workspace" แดชบอร์ดนั้นจะติดป้ายกำกับคีย์ผิดหลังการอัปเกรด
เวอร์ชัน SDK ที่ส่ง 2026-10-21
Anthropic เปิดตัว SDK major ใหม่เมื่อวันที่ 21 ตุลาคม 2026 และแต่ละตัวจะส่ง 2026-10-21 เป็นค่าเริ่มต้น ตามบันทึกประจำรุ่น:
| SDK | เวอร์ชันแรกที่ใช้ 2026-10-21 |
|---|---|
Python (anthropic) |
2.0.0 |
TypeScript (@anthropic-ai/sdk) |
1.0.0 |
Go (anthropic-sdk-go/v2) |
2.0.0 |
Java (anthropic-java) |
3.0.0 |
C# (Anthropic) |
13.0.0 |
PHP (anthropic-ai/sdk) |
1.0.0 |
Ruby (anthropic) |
2.0.0 |
ant CLI |
2.0.0 |
SDK major ใหม่ยังนำการเปลี่ยนแปลงที่ไม่เกี่ยวข้องกับเวอร์ชัน API เลยมาด้วย:
-
API key จะถูกส่งเป็น
Authorization: Bearer <key>แทนX-Api-KeyClaude API ยอมรับได้ทั้งสองแบบ แต่พร็อกซี, เกตเวย์, ตัวกรองล็อก หรือ test stub ที่อ่านค่าX-Api-Keyจะไม่เห็นคีย์อีกต่อไป - Text Completions ถูกนำออก จาก SDK ของ TypeScript, Go, Java และ Ruby และจาก CLI ให้ใช้ Messages API แทน
-
betasหายไปจากเมธอด Models ที่ไม่ใช่ beta ให้เรียกclient.beta.modelsแทน -
MessageParamเป็น union ที่มีหนึ่งชนิดต่อหนึ่ง role ใน SDK แบบมีชนิดข้อมูล ดังนั้น type annotation บางส่วนจำเป็นต้องอัปเดต -
Go ต้องใช้ import path ใหม่ ที่ลงท้ายด้วย
/v2และผู้ใช้ TypeScript ที่ใช้แพ็กเกจ Bedrock, Vertex, Foundry, AWS หรือ Google Cloud ต้องย้ายแพ็กเกจเหล่านั้นไปเป็น v1 ในการอัปเกรดเดียวกันด้วย ไม่เช่นนั้นตัวจัดการแพ็กเกจจะติดตั้งสำเนา SDK หลักเวอร์ชันเก่าเพิ่มอีกชุดหนึ่ง - สัญญาอนุญาตเปลี่ยน จาก MIT เป็น Apache 2.0
ให้ pin major ปัจจุบันของคุณไว้ก่อนทำสิ่งอื่นใด เพื่อป้องกันไม่ให้บอตจัดการ dependency อัปเกรดคุณกลางสปรินต์
ข้อยกเว้นของ Amazon Bedrock
บน Amazon Bedrock นั้น 2026-10-21 ใช้ได้เฉพาะกับโมเดล Claude 4.7 และใหม่กว่าเท่านั้น หากคุณยังเรียก Opus 4.6 หรือโมเดลรุ่นเก่ากว่าอยู่ ให้คงเวอร์ชัน SDK ปัจจุบันไว้หรือส่ง header ปัจจุบันของคุณต่อไป แล้วค่อยเปลี่ยนโมเดลก่อน
วิธีอัปเกรดเป็น Claude API เวอร์ชัน 2026-10-21 อย่างปลอดภัย
ลำดับในคู่มือการย้ายเวอร์ชันคือ: เปลี่ยนเวอร์ชัน, แก้ไข breaking change, ทดสอบก่อนปล่อยจริง ต่อไปนี้คือหน้าตาของขั้นตอนเหล่านั้นในทางปฏิบัติ
-
Pin SDK major เดิมไว้ ตัวอย่างเช่น
anthropic<2ใน Python หรือ"@anthropic-ai/sdk": "^0"ใน npm -
ค้นหาในโค้ดและคอนฟิกของคุณ หาคำว่า
temperature,top_p,top_k,X-Api-Key,completions.createและฟิลด์ Admin API ใด ๆ จากตารางด้านบน - ตัดสินใจเรื่องการสุ่มตัวอย่าง บน Claude 4.7 และใหม่กว่า ให้ลบพารามิเตอร์เหล่านั้นออก บนโมเดลรุ่นเก่า ให้เลือกว่าจะยอมรับการสุ่มตัวอย่างแบบค่าเริ่มต้น หรือคงการเรียกเหล่านั้นไว้บน 2023-06-01
-
แก้ไขการสร้างข้อความ ย้ายเอกสารที่อยู่ฝั่ง assistant ไปยังเทิร์นของ user และลบ
citationsออกจากบล็อกข้อความฝั่ง user - ทดสอบ payload ชุดเดียวกันภายใต้ทั้งสองเวอร์ชัน แล้วเปรียบเทียบรหัสสถานะและรูปร่างของคำตอบ
- อัปเกรด SDK และปล่อยการแก้ไขโค้ดไปพร้อมกัน Anthropic แนะนำให้ปล่อยการอัปเกรดพร้อมกับการแก้ไขของคุณ ไม่ใช่ก่อนหน้านั้น
หากไม่ใช้ SDK การสลับเวอร์ชันทำได้ด้วย header เดียว:
curl https://api.anthropic.com/v1/messages \
-H "x-[REDACTED CREDENTIAL] \
-H "anthropic-version: 2026-10-21" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello, Claude"}]
}'
เพิ่ม "temperature": 0.2 ลงใน body นั้น แล้วคุณจะได้ 400 ส่ง body เดียวกันพร้อม anthropic-version: 2023-06-01 แล้วจะสำเร็จ ผลลัพธ์คู่นี้คือสิ่งที่ขั้นตอนที่ 5 ควรจับได้สำหรับทุก payload ที่คุณส่งในโปรดักชัน
ให้ Claude Code ทดสอบทั้งสองเวอร์ชันด้วย Apidog CLI
ขั้นตอนที่ 5 นั้นน่าเบื่อหากทำด้วยมือ เพราะคุณมีรูปร่าง payload หลายสิบแบบ และแต่ละแบบต้องรันสองครั้ง ลองมอบหมายให้ coding agent ของคุณทำแทน Apidog CLI มอบคำสั่งให้ Claude Code (หรือ Codex, Cursor และ OpenCode) ในการสร้าง test case และรันคำสั่งเหล่านั้น เพื่อให้ agent เป็นตัวเปรียบเทียบ และคุณแค่อ่านสรุปผล
ตั้งค่าครั้งเดียว:
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com # pick Claude Code when prompted
จากนั้นป้อนพรอมป์ต์เดียวให้ Claude Code:
In Apidog project <id>, create an environment "claude-api" with base URL
https://api.anthropic.com. For each JSON payload in ./fixtures/claude/, add a
POST /v1/messages test case that sends the header anthropic-version: {{anthropic_version}}
and asserts status 200 and a non-empty content array. Run every case twice, once with
anthropic_version=2023-06-01 and once with 2026-10-21, and list each case that passes
on the old version but fails on the new one, with the error message.
agent จะตรวจสอบ schema ของแต่ละ payload ก่อนที่จะเขียนอะไรลงไป จากนั้นจึงรัน test case:
apidog environment create claude-api --project <id> --base-url https://api.anthropic.com
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog run --test-case <caseId> --project <id> -e <envId> --env-var "anthropic_version=2023-06-01" -r cli,json
apidog run --test-case <caseId> --project <id> -e <envId> --env-var "anthropic_version=2026-10-21" -r cli,json
แฟล็ก --env-var จะสลับค่า header โดยไม่ต้องแตะ test case ดังนั้นส่วนต่างจึงมีเพียงตัวแปรเดียว เพิ่ม --upload-report เพื่อดูการรันทั้งสองครั้งในแอป Apidog หรือนำการรันด้วย 2026-10-21 ไปไว้ใน CI ด้วย -r junit เพื่อไม่ให้การอัปเดต dependency สามารถปล่อยฟิลด์ temperature ขึ้นโปรดักชันได้ คู่มือ Apidog CLI ใน Claude Code อธิบายการตั้งค่าไว้ละเอียดกว่า และเอกสารอ้างอิงคำสั่ง apidog run มีรายการแฟล็กทั้งหมด แผนฟรีของ Apidog รองรับผู้ใช้สูงสุด 4 คน
2023-06-01 ถูกเลิกใช้แล้วหรือไม่?
ยังไม่มีการประกาศวันสิ้นสุดการใช้งาน หน้าประวัติเวอร์ชันระบุ 2023-06-01 โดยไม่มีประกาศเลิกใช้ และคู่มือการย้ายเวอร์ชันเองก็บอกให้คงคำขอที่ต้องใช้ temperature ที่ไม่ใช่ค่าเริ่มต้นไว้บน 2023-06-01 อย่างไรก็ตาม Anthropic ยังคงแนะนำให้ใช้เวอร์ชันล่าสุด "ทุกครั้งที่เป็นไปได้"
เรื่องนี้สำคัญต่อการวางแผน การอัปเกรดในวันนี้เป็นทางเลือก แต่ 2026-10-21 เป็นเวอร์ชันใหม่ตัวแรกในรอบกว่าสามปี และ breaking change ในอนาคตก็จะมาในลักษณะเดียวกัน ดังนั้นการทำ version testing ให้เป็นงาน CI ประจำตอนนี้จะถูกกว่าการย้ายเวอร์ชันแบบเร่งรีบในภายหลัง หากคุณกำลังปรับจูนเรื่องขีดจำกัดอัตราของ Claude API หรือค่าใช้จ่ายของ Claude API อยู่แล้ว ให้เพิ่มการตรวจสอบเวอร์ชันเข้าไปในไปป์ไลน์เดียวกันด้วย คู่มือแนวปฏิบัติที่ดีที่สุดในการทำ API versioningของเราอธิบายว่าทำไมเวอร์ชันแบบอิงวันที่เช่นนี้จึงทำให้เรื่องต่าง ๆ ง่ายขึ้น
คำถามที่พบบ่อย
ต้องอัปเกรดเป็น Claude API เวอร์ชัน 2026-10-21 เดี๋ยวนี้ไหม?
ไม่ต้อง 2023-06-01 ยังใช้งานได้และไม่มีวันสิ้นสุดการใช้งานที่ประกาศไว้ คุณจะอัปเกรดเมื่อคุณส่ง header ใหม่หรือติดตั้ง SDK major ที่ตั้งค่าเริ่มต้นเป็นเวอร์ชันนั้น
ทำไมคำขอของฉันจึงส่งคืน 400 หลังอัปเกรด SDK?
SDK major ใหม่จะส่ง 2026-10-21 ซึ่งปฏิเสธ temperature, top_p และ top_k, บล็อก document ฝั่ง assistant และ citations บนบล็อกข้อความฝั่ง user ให้ตรวจสอบ payload ของคุณหาสิ่งเหล่านี้ก่อน
เก็บ temperature ไว้กับบางคำขอได้ไหม?
ได้ โดยคงคำขอเฉพาะเหล่านั้นไว้บน 2023-06-01 ภายใต้ 2026-10-21 ไม่มีการตั้งค่าอื่นมาทดแทน และโมเดล Claude 4.7 และใหม่กว่าก็สุ่มตัวอย่างด้วยค่าเริ่มต้นเท่านั้นอยู่แล้ว
2026-10-21 ใช้ได้บน Amazon Bedrock ไหม?
ใช้ได้เฉพาะกับโมเดล Claude 4.7 และใหม่กว่าเท่านั้น โมเดล Bedrock รุ่นเก่าต้องใช้เวอร์ชัน SDK หรือ header ปัจจุบันของคุณจนกว่าคุณจะเปลี่ยนโมเดล
พร็อกซีของฉันยังเห็น API key ของฉันอยู่ไหม?
ไม่เห็น หากพร็อกซีนั้นอ่านค่า X-Api-Key SDK ใหม่จะส่งคีย์เป็น [REDACTED CREDENTIAL] ให้อัปเดตพร็อกซีให้อ่านAuthorizationหรือตั้งค่า SDK ให้ส่งX-Api-Key` เอง
เวอร์ชันใหม่เปลี่ยนเหตุการณ์สตรีมมิ่งไหม?
Anthropic ไม่ได้ระบุการเปลี่ยนแปลงรูปแบบการสตรีมมิ่งสำหรับ 2026-10-21 รูปแบบการสตรีมมิ่งที่คุณใช้อยู่ในปัจจุบันมาพร้อมกับ 2023-06-01



Top comments (0)