Vercel ได้เปิดตัว AI SDK เวอร์ชัน 7 พร้อมฟีเจอร์ scoped tool context ที่บังคับให้แต่ละเครื่องมือ (tool) ใน AI agent ได้รับเฉพาะความลับ (secrets) ที่ระบุไว้อย่างชัดเจนเท่านั้น การจำกัดการเข้าถึงนี้ช่วยให้นักพัฒนาสามารถป้องกันไม่ให้เครื่องมือจากบุคคลที่สามมองเห็นข้อมูลรับรอง (credentials) ทั้งหมดที่เก็บไว้ใน environment โดยไม่ตั้งใจ

Why the change matters

AI agent มักจะเชื่อมต่อบริการภายนอกหลายอย่างเข้าด้วยกัน เช่น การตรวจสอบคำสั่งซื้อ, การสร้างตั๋วสนับสนุน, หรือการประมวลผลการชำระเงิน ซึ่งแต่ละอย่างต้องใช้ API keys หรือ URL ของตัวเอง ทางลัดที่ใช้กันบ่อยคือการส่งออบเจกต์ process.env ทั้งหมดให้กับทุกเครื่องมือ:

execute(input, { context: process.env })

รูปแบบดังกล่าวทำให้เกิด การขยายสิทธิ์โดยนัย (implicit privilege expansion): การเพิ่มเครื่องมือใหม่จะทำให้เครื่องมือนั้นเข้าถึงความลับที่มีอยู่ทั้งหมดได้ทันที รวมถึงรหัสผ่านฐานข้อมูลหรือโทเคนการชำระเงิน โดยไม่มีการแจ้งเตือนในการตรวจสอบโค้ด (code review) ความเสี่ยงคือหากเครื่องมือถูกเจาะระบบหรือมีบั๊ก อาจทำให้ข้อมูลรับรองที่ไม่ได้มีไว้สำหรับเครื่องมือนั้นรั่วไหลออกมาได้

How scoped tool context works

ใน SDK เวอร์ชัน 7 เครื่องมือจะประกาศ context schema ซึ่งเป็นการกำหนดฟิลด์ที่จำเป็นต้องใช้โดยอิงจาก Zod เมื่อ agent เรียกใช้งานเครื่องมือ ผู้เรียกจะส่งออบเจกต์ toolsContext ที่มีเฉพาะฟิลด์ที่ประกาศไว้เท่านั้น SDK จะตรวจสอบรูปแบบ (shape) ก่อนการทำงาน และหากมีคีย์ที่ขาดหายไปหรือเกินมาจะทำให้เกิดข้อผิดพลาด

ตัวอย่างการสาธิตแบบง่ายแสดงให้เห็นเครื่องมือสองตัวที่มีความต้องการต่างกัน:

  • lookupOrder – ต้องการ baseUrl เพื่อเรียกใช้บริการคำสั่งซื้อภายใน
  • createTicket – ต้องการ supportToken เพื่อเปิดตั๋วสนับสนุน

แต่ละเครื่องมือจะส่งออก (export) contextSchema ที่ระบุคีย์ที่จำเป็นเพียงคีย์เดียว เมื่อ agent ทำงาน มันจะส่ง:

{
  lookupOrder: { baseUrl: "https://orders.internal" },
  createTicket: { supportToken: "s3cr3t-token" }
}

เฉพาะ lookupOrder เท่านั้นที่เห็น baseUrl; createTicket จะไม่สามารถเข้าถึงได้ และในทางกลับกัน SDK จะบังคับใช้ขอบเขตนี้ในขณะรันไทม์ (runtime) เปลี่ยนจากความสัมพันธ์ที่ซ่อนอยู่ให้กลายเป็นรายการความสามารถ (capability list) ที่ชัดเจนซึ่งผู้ตรวจสอบสามารถตรวจสอบได้

Security upside

  • จำกัดการเปิดเผยข้อมูล – ข้อมูลรับรองจะถูกส่งไปยังที่ที่จำเป็นต้องใช้เท่านั้น
  • ตรวจสอบบริบท (context) – หากฟิลด์ไม่ตรงกันหรือขาดหายไป การทำงานจะถูกยกเลิกทันที
  • ทำให้ความสามารถชัดเจน – ผู้ตรวจสอบสามารถเห็นได้ชัดเจนว่าแต่ละเครื่องมือสามารถเข้าถึงอะไรได้บ้าง
  • ลดขอบเขตความเสียหาย (blast radius) – หากเครื่องมือถูกเจาะระบบ ผู้โจมตีจะได้รับเพียงความลับที่เครื่องมือนั้นได้รับอนุญาตเท่านั้น

ฟีเจอร์นี้ ไม่ได้ มาแทนที่การทำ sandboxing แบบดั้งเดิม นักพัฒนายังคงต้องใช้การปกปิดข้อมูลใน Log (log redaction), การควบคุมการส่งข้อมูลออกทางเครือข่าย (network egress controls) และการหมุนเวียนโทเคน (token rotation) อย่างสม่ำเสมอ Scoped context เป็นเพียงการสร้างขอบเขต ไม่ใช่การปิดตายห้องทั้งห้อง

What developers need to adjust

  1. กำหนด schema สำหรับทุกเครื่องมือ – ใช้ไลบรารี Zod ที่มาพร้อมกับ SDK
  2. ส่ง toolsContext ที่จำกัดขอบเขต – หลีกเลี่ยงการใช้ process.env แบบครอบจักรวาล
  3. ตรวจสอบ agent ที่มีอยู่ – ระบุความลับใดๆ ที่สามารถนำออกจาก tool calls ได้
  4. เพิ่มการทดสอบอัตโนมัติ – เพื่อให้แน่ใจว่าการตรวจสอบ context จะล้มเหลวเมื่อมีการฉีดข้อมูลส่วนเกินเข้าไป

การเริ่มต้นใช้งานอย่างรวดเร็วมีลักษณะดังนี้:

mkdir scoped-tools && cd scoped-tools
npm init -y
npm install ai zod
npm install -D typescript tsx @types/node

สร้าง demo.ts, ประกาศ contextSchema ของแต่ละเครื่องมือ และรันด้วย tsx demo.ts SDK จะแจ้งข้อผิดพลาดหากคุณพยายามให้ความลับแก่เครื่องมือที่ไม่ได้ร้องขอ

Counter-point

บางทีมอาจโต้แย้งว่าการต้องกำหนด schema เพิ่มเติมเป็นการเพิ่ม boilerplate และทำให้การสร้างต้นแบบ (prototyping) ช้าลง แม้จะเป็นเรื่องจริง แต่ต้นทุนนั้นถือว่าน้อยมาก—เพียงไม่กี่บรรทัดต่อเครื่องมือ—และผลตอบแทนด้านความปลอดภัยจะเพิ่มขึ้นตามจำนวนบริการที่เชื่อมต่อ ในสภาพแวดล้อมที่ต้องจัดการข้อมูลการชำระเงินหรือข้อมูลส่วนบุคคล ข้อดีที่ได้รับนั้นคุ้มค่าเกินกว่าจะมองข้าม

What to watch next

  • ตัวชี้วัดการใช้งาน (Adoption metrics) – ผู้ใช้งานกลุ่มแรกๆ รายงานว่าพบเหตุการณ์ความลับรั่วไหลน้อยลง
  • เครื่องมือในชุมชน (Community tooling) – ปลั๊กอินที่สร้าง context schemas โดยอัตโนมัติจากไฟล์กำหนดค่า (configuration files)
  • การปล่อย SDK ในอนาคต – มีสัญญาณว่า Vercel อาจขยายขอบเขตของ scoped contexts ให้ครอบคลุมถึงสิทธิ์การเข้าถึงเครือข่าย (network permissions) และการจำกัดอัตราการเรียกใช้งาน (rate-limit caps)

หากคุณกำลังสร้าง AI agent ด้วย Vercel’s SDK อยู่แล้ว ขั้นตอนแรกคือการตรวจสอบการใช้งาน process.env ในปัจจุบันของคุณ ระบุค่าเพียงค่าเดียวที่สามารถนำออกจาก tool calls ทั้งหมด และเปลี่ยนรูปแบบการใช้แบบครอบจักรวาลให้เป็น toolsContext แบบกำหนดขอบเขต ผลลัพธ์ที่ได้คือความปลอดภัยที่รัดกุมยิ่งขึ้นโดยไม่สูญเสียความยืดหยุ่นที่ทำให้ AI agent ทรงพลัง