ผลการทดสอบร้านอาหาร 200 แห่งในอัมสเตอร์ดัมเมื่อเดือนกรกฎาคมที่ผ่านมา แสดงให้เห็นว่าผู้ช่วย AI ในปัจจุบันไม่สามารถทำการจองโต๊ะให้เสร็จสิ้นได้ เนื่องจากวิดเจ็ตการจองถูกซ่อนอยู่ภายใน iframe

ทำไม iframe ถึงขัดขวางการทำงานของเอเจนต์

เครื่องมือจองออนไลน์ส่วนใหญ่ถูกส่งมาในรูปแบบ iframe แบบฝัง (embedded iframe) เมื่อผู้เข้าชมคลิกปุ่ม “Reserve” ปฏิทินจะปรากฏขึ้น และผู้ใช้สามารถเลือกช่วงเวลาได้ สำหรับมนุษย์ กระบวนการนี้ทำงานได้ปกติ แต่สำหรับ AI agent มันกลับหยุดชะงัก

  • เอเจนต์จะทำการวิเคราะห์ (parse) หน้า HTML หลัก
  • ปุ่มจองจะชี้ไปยัง URL บนโดเมนอื่น
  • เบราว์เซอร์จะโหลด URL นั้นภายใน iframe ซึ่งเป็นการแยกออกจากหน้าหลัก (parent page)

เนื่องจากนโยบาย Same-origin policy ป้องกันไม่ให้สคริปต์ในหน้าหลักอ่าน DOM ของ iframe หรือดักจับการเรียกใช้งานเครือข่าย (network calls) ได้ AI agent ที่อ่านเนื้อหาในหน้าเว็บและส่งคำขอ HTTP จึงมองเห็นเพียงแค่ปุ่มเท่านั้น มันไม่สามารถมองเห็นปฏิทิน ช่วงเวลา หรือขั้นตอนการยืนยันได้เลย แม้ว่ามันจะคลิกปุ่มได้ แต่มันก็ยังต้องแก้ captcha ปรับตัวตามการเปลี่ยนแปลงของเลย์เอาต์ หรือหลบหลีกระบบป้องกันการทำงานอัตโนมัติ (anti-automation defenses) ที่บริการจองหลายแห่งใช้งานอยู่

การขาดการเชื่อมต่อที่เครื่องจักรสามารถอ่านได้

จากการตรวจสอบเว็บไซต์ร้านอาหารที่ใช้งานได้จริงจำนวน 163 แห่ง พบว่ามีเพียง 9 แห่งเท่านั้นที่มีการเปิดเผยข้อมูลการจองที่เครื่องจักรสามารถอ่านได้ โดยทั้ง 9 แห่งนั้นระบุข้อมูลพื้นฐาน เช่น ชื่อและที่อยู่ โดยใช้ markup ของ schema.org แต่ไม่มีแห่งใดเลยที่รวม "การดำเนินการจอง" (reservation actions) ที่เอเจนต์สามารถเรียกใช้งานได้ แม้ว่า schema.org จะมีการกำหนดประเภทอย่าง ReserveAction ไว้เพื่อวัตถุประสงค์นี้ แต่เว็บไซต์ส่วนใหญ่กลับเผยแพร่เพียง metadata เชิงบรรยายเท่านั้น ไม่ใช่คำสั่งที่สามารถนำไปปฏิบัติได้ (actionable instructions)

ในทางปฏิบัติ ผู้ช่วยจะมองหาข้อมูลที่มีโครงสร้าง (structured data) ที่บอกว่าต้องทำภารกิจนั้น อย่างไร ไม่ใช่แค่บอกว่าภารกิจนั้นคือ อะไร หากไม่มี ReserveAction หรือ endpoint ที่เทียบเท่า เอเจนต์จะต้องกลับไปใช้วิธีเลียนแบบการคลิกของมนุษย์ ซึ่งตามที่อธิบายไว้ข้างต้นนั้นไม่มีความน่าเชื่อถือ

วิธีแก้ไขที่ใช้งานได้จริงโดยไม่ต้องรื้อ UI ใหม่

  1. เผยแพร่ booking API – สร้าง HTTP endpoint ที่มีน้ำหนักเบา ซึ่งรองรับคำขอ JSON สำหรับการสอบถามสถานะว่างและการสร้างการจอง โดย API จะส่งคืนฟิลด์ต่างๆ เช่น วันที่ เวลา จำนวนคน และรหัสยืนยัน เอเจนต์ใดๆ ก็สามารถใช้งานได้โดยไม่ต้องเรนเดอร์หน้าเว็บ
  2. ทำให้ API ค้นพบได้ง่าย – วางตัวชี้ (pointer) ไว้ในตำแหน่งที่เป็นที่รู้จักกันดี เช่น /.well-known/booking หรือฝังรายการ ReserveAction ไว้ใน markup ของ schema.org ในหน้าเว็บ วิธีนี้จะบอกเอเจนต์ว่า “มีวิธีการจองผ่านโปรแกรมที่นี่” โดยไม่จำเป็นต้องใช้วิธีการ scraping
  3. นำ Model Context Protocol (MCP) มาใช้ – MCP ช่วยให้ผู้ช่วยสามารถเรียกใช้เครื่องมือภายนอกได้โดยตรง โดยการส่งอินพุตและรับเอาต์พุตที่มีโครงสร้าง ผู้ให้บริการ AI รายใหญ่ต่างก็รองรับ MCP แล้ว ดังนั้นร้านอาหารที่ใช้ endpoint ที่รองรับ MCP จะสามารถถูกเรียกใช้งานโดยเอเจนต์ได้ราวกับว่าเป็นฟังก์ชันที่มีมาให้ในตัว

ขั้นตอนเหล่านี้ช่วยให้ยังคงใช้ iframe แบบเดิมสำหรับผู้ใช้งานที่เป็นมนุษย์ได้ ในขณะเดียวกันก็มอบเส้นทางที่สะอาดและเชื่อถือได้ให้กับเอเจนต์ในการเข้าถึงข้อมูลการจองชุดเดียวกัน

บทสรุป

การฝังปฏิทินไว้ภายใน iframe ช่วยรักษาขั้นตอนการใช้งานทางภาพสำหรับมนุษย์ แต่กลับทำให้ผู้ช่วย AI มองไม่เห็น การเพิ่ม booking API ที่เรียบง่ายและมีเอกสารประกอบที่ชัดเจน พร้อมทั้งประชาสัมพันธ์ผ่าน metadata มาตรฐานหรือ MCP จะเป็นการเปิดช่องทางการจองใหม่โดยไม่ต้องรื้อระบบเว็บไซต์ทั้งหมด ความพยายามนี้จะช่วยเพิ่มการมองเห็นต่อผู้ช่วยดิจิทัลยุคถัดไป และความเสี่ยงก็สามารถจัดการได้ด้วยการควบคุมความปลอดภัยแบบเดียวกับที่ใช้ใน UI ปัจจุบัน