Tools
โหมดยกระดับสิทธิ์
เมื่อเอเจนต์ทำงานภายในแซนด์บ็อกซ์ คำสั่ง exec ของเอเจนต์จะถูกจำกัดให้อยู่ในสภาพแวดล้อมแซนด์บ็อกซ์ โหมดยกระดับสิทธิ์ ช่วยให้เอเจนต์ออกจากแซนด์บ็อกซ์และเรียกใช้คำสั่งภายนอกแซนด์บ็อกซ์แทนได้ โดยสามารถกำหนดด่านการอนุมัติได้
คำสั่งควบคุม
ควบคุมโหมดยกระดับสิทธิ์สำหรับแต่ละเซสชันด้วยคำสั่งแบบเครื่องหมายทับ:
| คำสั่งควบคุม | การทำงาน |
|---|---|
/elevated on |
ทำงานภายนอกแซนด์บ็อกซ์ตามเส้นทางโฮสต์ที่กำหนดไว้ โดยยังคงใช้การอนุมัติ |
/elevated ask |
เหมือนกับ on (ชื่อแทน) |
/elevated full |
ทำงานภายนอกแซนด์บ็อกซ์ตามเส้นทางโฮสต์ที่กำหนดไว้ และข้ามการอนุมัติเมื่อนโยบายอนุมัติของโหมด/โฮสต์อนุญาตอย่างเต็มที่อยู่แล้ว |
/elevated off |
กลับไปทำงานโดยถูกจำกัดให้อยู่ภายในแซนด์บ็อกซ์ |
นอกจากนี้ยังใช้รูปแบบ /elev on|off|ask|full ได้ด้วย
ส่ง /elevated โดยไม่มีอาร์กิวเมนต์เพื่อดูระดับปัจจุบัน
วิธีการทำงาน
ตรวจสอบความพร้อมใช้งาน
ต้องเปิดใช้งานโหมดยกระดับสิทธิ์ในการกำหนดค่า และผู้ส่งต้องอยู่ในรายการที่อนุญาต:
{ tools: { elevated: { enabled: true, allowFrom: { discord: ["user-id-123"], whatsapp: ["+15555550123"], }, }, },}กำหนดระดับ
ส่งข้อความที่มีเฉพาะคำสั่งควบคุมเพื่อกำหนดค่าเริ่มต้นของเซสชัน:
/elevated fullหรือใช้ภายในข้อความ (มีผลเฉพาะกับข้อความนั้น):
/elevated on run the deployment scriptคำสั่งทำงานภายนอกแซนด์บ็อกซ์
เมื่อเปิดใช้โหมดยกระดับสิทธิ์ การเรียก exec จะออกจากแซนด์บ็อกซ์ โดยค่าเริ่มต้นโฮสต์ที่มีผลคือ
gateway หรือเป็น node เมื่อเป้าหมาย exec ที่กำหนดค่าไว้หรือกำหนดในเซสชันคือ
node ในโหมด full ระบบจะข้ามการอนุมัติ exec เมื่อนโยบายอนุมัติของ
โหมด/โฮสต์ exec ที่ได้จากการประมวลผลอนุญาตอย่างเต็มที่อยู่แล้ว (security full,
ask off) มิฉะนั้นนโยบายการอนุมัติตามปกติจะยังคงมีผล ในโหมด
on/ask กฎการอนุมัติที่กำหนดไว้จะมีผลเสมอ
ลำดับการประมวลผล
- คำสั่งควบคุมภายในข้อความ (มีผลเฉพาะกับข้อความนั้น)
- ค่าที่แทนที่สำหรับเซสชัน (กำหนดโดยส่งข้อความที่มีเฉพาะคำสั่งควบคุม)
- ค่าเริ่มต้นส่วนกลาง (
agents.defaults.elevatedDefaultในการกำหนดค่า)
ความพร้อมใช้งานและรายการที่อนุญาต
- ด่านส่วนกลาง:
tools.elevated.enabled(ต้องเป็นtrue) - รายการผู้ส่งที่อนุญาต:
tools.elevated.allowFromพร้อมรายการแยกตามช่องทาง - ด่านสำหรับแต่ละเอเจนต์:
agents.list[].tools.elevated.enabled(ทำได้เพียงจำกัดเพิ่มเติม โดยทั้งด่านส่วนกลางและด่านสำหรับเอเจนต์ต้องเป็นtrue) - รายการที่อนุญาตสำหรับแต่ละเอเจนต์:
agents.list[].tools.elevated.allowFrom(ผู้ส่งต้องตรงกับทั้งรายการส่วนกลางและรายการสำหรับเอเจนต์) - รายการสำรองที่อนุญาตจากช่องทาง: Plugin ของช่องทางสามารถระบุรายการสำรองที่อนุญาตผ่านฮุกอะแดปเตอร์ SDK ได้ โดยจะใช้เมื่อไม่ได้กำหนดค่า
tools.elevated.allowFrom.<provider>ปัจจุบันยังไม่มี Plugin ช่องทางแบบรวมมาให้ที่ใช้งานฮุกนี้ ดังนั้นในทางปฏิบัติ ผู้ให้บริการทุกรายจึงต้องมีรายการtools.elevated.allowFrom.<provider>ที่ระบุไว้อย่างชัดเจน - ต้องผ่านทุกด่าน มิฉะนั้นระบบจะถือว่าโหมดยกระดับสิทธิ์ไม่พร้อมใช้งาน
รูปแบบรายการที่อนุญาต:
| คำนำหน้า | ค่าที่ตรงกัน |
|---|---|
| (ไม่มี) | ID ผู้ส่ง, E.164 หรือฟิลด์ From |
name: |
ชื่อที่แสดงของผู้ส่ง |
username: |
ชื่อผู้ใช้ของผู้ส่ง |
tag: |
แท็กของผู้ส่ง |
id:, from:, e164: |
ระบุอัตลักษณ์เป้าหมายอย่างชัดเจน |
สิ่งที่โหมดยกระดับสิทธิ์ไม่ได้ควบคุม
- นโยบายเครื่องมือ: หากนโยบายเครื่องมือปฏิเสธ
execโหมดยกระดับสิทธิ์จะไม่สามารถข้ามข้อจำกัดนั้นได้ - นโยบายการเลือกโฮสต์: โหมดยกระดับสิทธิ์ไม่ได้เปลี่ยน
autoให้สามารถข้ามไปยังโฮสต์ใดก็ได้ แต่จะใช้กฎเป้าหมาย exec ที่กำหนดค่าไว้หรือกำหนดในเซสชัน โดยเลือกnodeเฉพาะเมื่อเป้าหมายเป็นnodeอยู่แล้ว - แยกจาก
/exec: คำสั่งควบคุม/execจะปรับค่าเริ่มต้น exec สำหรับแต่ละเซสชัน (โฮสต์, ความปลอดภัย, การถาม, Node) สำหรับผู้ส่งที่ได้รับอนุญาต และไม่จำเป็นต้องใช้โหมดยกระดับสิทธิ์