पाठ 16 / 25

Risk Tiers और मंज़ूरी

Tools को read, write या destructive में बाँटें और उसके अनुसार मंज़ूरी माँगें।

जोखिम के अनुसार रुकावट

हर tool को एक-सी सावधानी नहीं चाहिए। Read tools खुलकर चल सकते हैं। Write tools state बदलते हैं और अक्सर logging या पुष्टि माँगते हैं। Destructive या अपरिवर्तनीय tools (डेटा हटाना, पैसे भेजना, ग्राहकों को email) के लिए स्पष्ट इंसानी मंज़ूरी चाहिए। अज्ञात tools डिफ़ॉल्ट रूप से सबसे सख़्त स्तर पर रहें।

बचाव की परतें

मानकर चलें कि ग़लतियाँ और हेरफेर होंगे, और किसी एक विफलता का असर सीमित रखें।

चार परतें: permissions, मंज़ूरी, sandbox, निगरानी।
चित्र 5.1 — Permissions, मंज़ूरी, sandbox और निगरानी।

मंज़ूरी का दरवाज़ा

यह जैसा दिखाया गया वैसा ही चला। Reads निकल जाते हैं; send_payment और अज्ञात tool दोनों को मंज़ूरी चाहिए, क्योंकि अज्ञात नाम सबसे सख़्त स्तर पर जाते हैं।

RISK = {"get_balance": "read", "convert": "read",
        "send_payment": "write", "delete_account": "destructive"}

def needs_approval(name):
    return RISK.get(name, "destructive") != "read"

print([needs_approval(n) for n in ("get_balance", "send_payment", "unknown_tool")])

Output:

[False, True, True]

ठीक कर्म दिखाएँ

मंज़ूरी prompt में tool और उसके असली arguments दिखें ("खाता 8841 को 5,000 INR भेजें"), अस्पष्ट सार नहीं। लोग वही मंज़ूर करते हैं जो वे देख सकें।

त्वरित जाँच: अज्ञात tool के साथ डिफ़ॉल्ट व्यवहार क्या हो?

  • Read-only की तरह
  • बिना रोक चलने योग्य
  • सबसे सख़्त स्तर की तरह, मंज़ूरी के साथ
  • सुरक्षा नियम अनदेखे करें
Answer

सबसे सख़्त स्तर की तरह, मंज़ूरी के साथ — Fail-closed का मतलब है कि भूली हुई श्रेणी किसी जोखिम भरे काम को चुपचाप अनुमति नहीं दे सकती।