Skip to main content
Back to articles

Amazon Bedrock รองรับ Structured Outputs สำหรับ Claude ทุกโมเดล ลดปัญหา JSON ผิด schema

AWS เปิด Structured Outputs สำหรับ Claude บน Bedrock Runtime และ Mantle ช่วยส่ง JSON ตาม schema ที่กำหนด พร้อมแนวทางตรวจความถูกต้องก่อนใช้จริง

Amazon Bedrock รองรับ Structured Outputs สำหรับ Claude ทุกโมเดล ลดปัญหา JSON ผิด schema

AWS ประกาศเมื่อวันที่ 20 ตุลาคม 2026 ว่า Amazon Bedrock รองรับ Structured Outputs สำหรับโมเดล Anthropic Claude ทุกตัวที่ให้บริการผ่านทั้ง endpoint bedrock-runtime และ bedrock-mantle ความเปลี่ยนแปลงนี้เกี่ยวกับวิธีบังคับรูปแบบผลลัพธ์ของโมเดลให้ตรงกับโครงสร้าง JSON ที่แอปกำหนดไว้ ไม่ได้เป็นการเปิดตัวโมเดล Claude รุ่นใหม่ ทีมที่เรียกผ่าน boto3 และ Bedrock Runtime หรือผ่าน Messages API บน Mantle จึงควรทบทวนส่วนที่เคยต้องเขียนตัวแยกข้อความและ retry เมื่อโมเดลส่งฟิลด์ไม่ครบ

ปัญหาที่ฟีเจอร์นี้แก้

ในงานจริง คำตอบของโมเดลมักถูกส่งต่อให้โค้ดอีกส่วนหนึ่ง ไม่ว่าจะเป็นการอ่านเอกสารแล้วเติมฐานข้อมูล การจัดหมวด ticket หรือการดึงชื่อคู่สัญญาจากสัญญา หากปลายทางคาดหวัง { "customer_id": "...", "priority": "..." } แต่โมเดลตอบเป็นย่อหน้า หรือเพิ่มข้อความเกริ่นก่อน JSON ตัวแยกข้อมูลอาจล้มเหลว แม้ใจความจะถูกต้อง ทีมจึงมักเขียนคำสั่งย้ำรูปแบบ ตรวจ JSON หลังรับคำตอบ และเรียกซ้ำเมื่อไม่ผ่าน ทั้งหมดนี้เพิ่ม latency ค่า token และจำนวนสถานะผิดพลาดที่ต้องดูแล

Structured Outputs ย้ายข้อกำหนดรูปแบบมาเป็นส่วนหนึ่งของการเรียกโมเดล ตามประกาศ AWS ผลลัพธ์สามารถเป็น JSON ที่สอดคล้องกับ schema ที่ระบุ จึงลดภาระการ parse และการแก้คำตอบผิดรูปแบบในชั้นแอปได้ อย่างไรก็ดี JSON ที่ตรง schema ไม่ได้หมายความว่าค่าข้างในถูกต้องตามเอกสารต้นฉบับ ตัวอย่างเช่นฟิลด์ total_amount อาจเป็นตัวเลขถูกชนิดแต่ไม่ตรงใบแจ้งหนี้ ระบบยังต้องตรวจความถูกต้องทางธุรกิจและเก็บหลักฐานอ้างอิงต่อไป

ผลต่อทีมพัฒนา

ประโยชน์ชัดที่สุดอยู่ที่ pipeline ซึ่งต้องรักษาสัญญาข้อมูลระหว่าง AI กับระบบเดิม ทีมสามารถนิยามฟิลด์ที่ต้องมี ชนิดของค่า และโครงสร้างย่อยให้สัมพันธ์กับ API หรือฐานข้อมูลจริง จากนั้นวัดอัตราที่ผลลัพธ์ผ่าน validation เทียบกับ prompt แบบเดิม ก่อนลบ retry หรือ parser เก่าออกทั้งหมด การทดลองควรใช้ชุดเอกสารที่หลากหลาย ทั้งข้อความสั้นยาว ไฟล์ที่ฟิลด์ขาด และข้อมูลกำกวม เพื่อให้เห็นว่า schema ช่วยด้านรูปแบบแค่ไหน และยังมีข้อผิดพลาดด้านความหมายอยู่ตรงใด

หากใช้งาน extraction จากรายงานการเงิน ควรแยกฟิลด์ตัวเลข หน่วยเงิน ช่วงเวลา และหน้าที่อ้างอิง ไม่รวมทั้งหมดเป็นข้อความเดียว งานเวชระเบียนหรือสัญญาควรมีสถานะ unknown หรือค่า null สำหรับสิ่งที่หาไม่พบ แทนการบังคับให้โมเดลเดาคำตอบให้ครบทุกช่อง สำหรับ ticket routing ให้ทดสอบกรณีที่ข้อความมีหลายเจตนา และให้แอปกำหนดว่าจะยอมรับหมวดเดียวหรือหลายหมวด กฎพวกนี้เป็นการออกแบบข้อมูลของระบบ ไม่ใช่สิ่งที่ Structured Outputs ตัดสินแทน

ตรวจการย้ายระบบอย่างไร

เริ่มด้วย schema ขนาดเล็กที่สะท้อนข้อมูลที่ต้องใช้จริง แล้วเรียกผ่าน endpoint เดียวกับ production เพื่อเปรียบเทียบอัตรา parse fail, เวลาตอบสนอง และค่าใช้จ่ายต่อรายการ หากระบบมีการเรียกทั้ง bedrock-runtime และ bedrock-mantle ให้ทดสอบสองเส้นทางแยกกัน เพราะรูปแบบ request และ SDK ที่ใช้ต่างกัน แม้ประกาศระบุว่าความสามารถนี้รองรับทั้งคู่ เก็บตัวอย่าง payload ที่ไม่ผ่าน business validation ไว้ในชุดทดสอบย้อนกลับ โดยลบข้อมูลส่วนบุคคลก่อนเก็บตามนโยบายขององค์กร

อีกประเด็นคือ schema version เมื่อเพิ่มฟิลด์ใหม่ให้แอปปลายทาง ต้องกำหนดว่าจะให้ผลลัพธ์เก่าทำงานอย่างไร ใช้ version field หรือแยก consumer ที่อ่านรูปแบบใหม่ก่อน deploy หาก deploy schema ใหม่และโค้ดอ่านข้อมูลพร้อมกันโดยไม่มีการทดสอบ อาจเกิดปัญหาที่ response ถูกชนิดแต่ consumer รุ่นเก่ายังอ่านไม่ได้ การควบคุมการเปลี่ยนสัญญาข้อมูลจึงสำคัญพอ ๆ กับการเปิดฟีเจอร์

AWS ระบุว่าความสามารถนี้พร้อมใช้ในพื้นที่ที่มีโมเดล Claude ให้บริการอยู่ ควรตรวจ Regional Availability ของโมเดลและ endpoint ที่ทีมใช้อยู่จริงก่อนออกแบบ rollout โดยเฉพาะระบบหลาย Region หรือแผนสำรองเหตุขัดข้อง เรื่องนี้เหมาะกับระบบที่ต้องการข้อมูลมีโครงสร้างแน่นอนมากกว่างานสนทนาเปิดกว้าง และยังควรเก็บ validation ชั้นแอปไว้สำหรับกฎธุรกิจ สิทธิ์เข้าถึง และค่าที่มีผลต่อการตัดสินใจ

อ่านประกาศต้นทางวันที่ 20 ตุลาคม 2026: AWS What's New