

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

OWASP เรียกความเสี่ยงที่ข้อความจากแหล่งภายนอกทำให้โมเดลเปลี่ยนพฤติกรรมว่า indirect prompt injection การมีระบบค้นเอกสารมาเสริมคำตอบก็ยังต้องรับมือกับปัญหานี้ เพราะการค้นเจอเอกสารที่เกี่ยวข้องไม่ได้รับรองว่าทุกข้อความข้างในมีสิทธิ์ควบคุม workflow
จึงควรเก็บที่มาของข้อมูลไว้ด้วย เช่น เอกสารใด ส่วนใด และดึงมาในบริบทงานไหน เพื่อให้ตามตรวจได้เมื่อผลสรุปหรือข้อเสนอผิดไป แต่การมีที่มาเป็นหลักฐานไม่ได้เปลี่ยนให้เนื้อหานั้นกลายเป็นคำสั่งที่เชื่อถือได้โดยอัตโนมัติ
ถ้าหน้าที่มีเพียงอ่านคำขอแล้วร่างใบงาน เครื่องมือที่ลบเอกสาร เปลี่ยนสิทธิ์ หรือส่งไฟล์ออกไปนอกโครงการก็ยังไม่มีเหตุผลต้องอยู่ในขอบเขตเดียวกัน การเอาความสามารถเหล่านี้ออกจากเส้นทางงานช่วยลดสิ่งที่โมเดลสามารถเสนอให้ระบบทำได้ตั้งแต่ต้น
บัญชีที่เครื่องมือใช้เชื่อมต่อก็ต้องจำกัดตามขอบเขตจริง หากตัวเลือกในหน้าจอดูเหมือนอ่านได้เฉพาะโครงการหนึ่ง แต่ token เบื้องหลังเข้าถึงทุกโครงการได้ ก็ยังมีช่องว่างระหว่างสิ่งที่ออกแบบไว้กับสิทธิ์ที่บังคับจริงอยู่ การตรวจสิทธิ์จึงควรทำที่บริการซึ่งรับคำขอด้วย
ในกรณีที่ระบบทำงานแทนผู้ใช้แต่ละคน ก็ควรผูกขอบเขตกับตัวตนและคำขอที่ยืนยันแล้ว ไม่ใช้บัญชีกลางที่มีสิทธิ์กว้างเพียงเพื่อให้ต่อเครื่องมือได้ง่าย แล้วหวังให้ AI เลือกใช้อย่างพอดีทุกครั้ง
การจำกัดฟังก์ชันยังช่วยให้ตรวจผลได้ชัด เช่น เครื่องมือร่างใบงานรับเฉพาะรหัสคำขอ หมวด และข้อความสรุป แทนเครื่องมือทั่วไปที่รับคำสั่งหรือ URL อะไรก็ได้ แบบหลังย้ายภาระตัดสินใจจำนวนมากไปอยู่ในข้อความที่โมเดลสร้าง ซึ่งตรวจขอบเขตให้ครบได้ยากกว่า
ขั้นอ่านเอกสารอาจให้ AI ส่งข้อเสนอแบบมีโครงสร้างกลับมา แล้วโปรแกรมตรวจ schema และเงื่อนไขทางธุรกิจก่อนส่งต่อ แต่การผ่าน schema ยังไม่ใช่การผ่านสิทธิ์ เพราะรหัสโครงการที่มีรูปแบบถูกก็อาจเป็นโครงการที่ผู้ใช้ไม่มีสิทธิ์เข้าถึงได้
จึงควรเลือกทรัพยากรและปลายทางจากบริบทที่ระบบยืนยันแล้ว เช่น คำขอเข้ามาจากโครงการไหน และผู้ใช้อนุญาตให้ทำอะไร ส่วนข้อมูลในเอกสารช่วยอธิบายเนื้อหาของงาน ไม่สามารถเปลี่ยนบัญชีที่ใช้หรือเพิ่มขอบเขตการอ่านข้อมูลจากคำขอเดิมได้เอง

หากต้องสร้างผลที่มีผลกระทบสูง จุดตรวจจากคนควรแสดงสิ่งที่จะเปลี่ยน ปลายทาง และข้อมูลที่เกี่ยวข้องให้ประเมินได้จริง ปุ่มยืนยันที่เห็นแค่ข้อความว่า AI แนะนำให้ทำต่อยังช่วยตัดสินใจได้น้อย และไม่ควรใช้ข้อความจากเอกสารเป็นเหตุผลว่าผู้ใช้อนุมัติแล้ว
ส่วนงานที่ได้รับอนุญาตให้ทำอัตโนมัติไว้ชัดเจนก็ทำต่อภายในขอบเขตนั้นได้ ประเด็นคือการรักษาสิทธิ์เดิมของงาน และพักเฉพาะส่วนที่ต้องตัดสินใจเพิ่ม ไม่ทำให้ทุกการอ่านข้อมูลกลายเป็นขั้นขออนุญาตซ้ำจน workflow ใช้งานลำบาก
การลดสิทธิ์ลงมือทำยังควรเดินคู่กับการลดข้อมูลที่ไม่จำเป็น ถ้างานต้องสรุปปัญหาของคำขอหนึ่งรายการ ก็ไม่ควรแนบเอกสารทั้งหมดของลูกค้าทุกรายเผื่อไว้ก่อน เพราะข้อมูลส่วนเกินเพิ่มทั้งโอกาสสับสนและขอบเขตผลกระทบหากถูกนำไปใช้ผิดทาง
เมื่อเรียกอ่านข้อมูลเพิ่ม ควรมีเงื่อนไขจากโปรแกรมว่าค้นได้ในขอบเขตไหน และจำนวนหรือขนาดเท่าไร การที่เอกสารหนึ่งกล่าวถึงชื่อไฟล์อื่นไม่ได้แปลว่าต้องเปิดตามได้ทุกไฟล์ โดยเฉพาะเมื่อไฟล์นั้นอยู่คนละโครงการหรือไม่มีความจำเป็นต่อคำขอ
บันทึกการทำงานก็ควรเก็บให้ตรวจได้ว่าระบบอ่านอะไร เสนออะไร และเหตุใดจึงอนุญาตหรือปฏิเสธเครื่องมือ โดยไม่คัดลอกรหัสลับหรือเอกสารละเอียดทั้งหมดไปไว้ใน log ทุกจุด ข้อมูลสำหรับวินิจฉัยควรถูกดูแลสิทธิ์และอายุการเก็บเช่นเดียวกับข้อมูลต้นทาง
ถ้าระบบหยุดข้อเสนอที่นอกขอบเขตได้ ก็ควรรายงานตามสิ่งที่เกิดจริง เช่น ร่างใบงานเสร็จแล้วแต่ไม่ได้ส่งไฟล์ไปปลายทางที่เอกสารกล่าวถึง การอธิบายผลแบบนี้ช่วยให้ผู้ใช้เข้าใจว่าขั้นใดทำสำเร็จและขั้นใดถูกพัก โดยไม่ต้องเปิดเผยข้อมูลที่ไม่เกี่ยวข้องกับงาน
แนวทางตรวจคือเตรียมเอกสารจำลองที่มีข้อความชวนเปลี่ยนปลายทาง ขอข้อมูลนอกโครงการ หรืออ้างว่าได้รับอนุมัติไว้แล้ว แล้วให้ workflow อ่านในสภาพแวดล้อมที่แยกจากข้อมูลจริง จากนั้นตรวจทั้งข้อเสนอของโมเดลและคำขอเครื่องมือที่ระบบยอมให้ผ่าน
ผลที่ต้องดูไม่ใช่แค่ว่า AI บอกว่าจะปฏิเสธ แต่ต้องตรวจว่าบริการปลายทางป้องกันการเข้าถึงนอกขอบเขตได้จริงด้วย ควรเพิ่มกรณีที่ข้อมูลผิดรูปแบบและกรณีที่เป็นคำสั่งจริงจากผู้ใช้ภายในขอบเขต เพื่อไม่ให้ตัวกรองทำให้งานที่ควรผ่านหยุดไปทั้งหมด
การทดสอบเหล่านี้ช่วยหาเงื่อนไขที่ต้องปรับ และควรกลับมาทำเมื่อเปลี่ยนโมเดล prompt หรือเครื่องมือ แต่ไม่ได้รับรองว่าตรวจครบทุกข้อความที่เป็นไปได้ บทนี้เสนอวิธีวางขอบเขตและแนวตรวจ ยังไม่ได้อ้างว่ามีการทดสอบระบบ AI ของ CommandEng จนปลอดภัยครบทุกกรณีแล้ว
Workflow ที่ให้ AI อ่านข้อมูลแล้วทำงานต่อควรรักษาความต่างระหว่างเนื้อหาที่พบกับสิทธิ์ที่ผู้ใช้ให้ไว้ การจำกัดข้อมูล เครื่องมือ และบัญชีที่ใช้ พร้อมตรวจข้อเสนอก่อนสร้างผล ช่วยให้ขอบเขตนั้นถูกบังคับในโปรแกรมด้วย เมื่อเอกสารมีข้อความชวนออกนอกงาน ระบบจึงยังมีหลักตัดสินจากคำขอเดิมและสิทธิ์จริง แทนการยกอำนาจให้ข้อความที่เพิ่งอ่านเข้ามา