
AI एजेंटों के लिए क्रिप्टोग्राफिक रूप से हस्ताक्षरित प्रतिनिधिमंडल रसीदें। ठीक-ठीक परिभाषित करें कि एक AI क्या कर सकता है और क्या नहीं — हस्ताक्षरित, सत्यापन योग्य, छेड़छाड़-रोधी।
AuthProof AI एजेंट्स के लिए एक ऑडिट और एट्रिब्यूशन लेयर है। यह आपको यह साबित करने देता है कि एजेंट के कार्य करने से पहले उपयोगकर्ता ने क्या अधिकृत किया था, और यह रिकॉर्ड करता है कि एजेंट ने उस अधिकृति के विरुद्ध वास्तव में क्या किया।
तंत्र सरल है। उपयोगकर्ता अपनी निजी कुंजी से एक delegation receipt पर हस्ताक्षर करता है। receipt में scope, boundaries, operator instructions (हैश किए गए), और एक समय विंडो होती है। एक pre-execution verifier प्रत्येक प्रस्तावित कार्रवाई को receipt के विरुद्ध जाँचता है, और एक append-only action log रिकॉर्ड करता है कि क्या चला। परिणाम साक्ष्य है: क्या अधिकृत किया गया था, उसकी तुलना उससे की गई जो हुआ।
यह एक दुर्भावनापूर्ण ऑपरेटर के विरुद्ध सुरक्षा नियंत्रण नहीं है। verifier एजेंट के समान प्रक्रिया में चलता है, और एक बेईमान ऑपरेटर इसे कॉल ही नहीं कर सकता। कोई भी क्रिप्टोग्राफिक गुण इसे उसी रनटाइम के भीतर से ठीक नहीं कर सकता। AuthProof उन डिप्लॉयमेंट्स के लिए अधिकृति साबित करता है जो गेट चलाते हैं, और यह ऑडिटरों, नियामकों, और उपयोगकर्ताओं को एक रिकॉर्ड देता है जिसे वे बाद में जाँच सकते हैं।
इसे अलग क्या बनाता है:
उपयोगकर्ता ही हस्ताक्षर प्राधिकारी है। अधिकृति ऑब्जेक्ट पर उपयोगकर्ता की निजी कुंजी से हस्ताक्षर किए जाते हैं, न कि ऑपरेटर-प्रबंधित नीति में लिखा जाता है। receipt में हस्ताक्षरित scope और program hash हमेशा ऑपरेटर लॉग मेटाडेटा पर भारी पड़ते हैं। यदि ऑपरेटर मेटाडेटा हस्ताक्षरित receipt से टकराता है, तो गेट मेटाडेटा का पालन करने के बजाय कार्रवाई को अस्वीकार कर देता है।
दो-चरणीय मॉडल-स्टेट प्रतिबद्धता। मॉडल को अधिकृति के समय मापा जाता है और निष्पादन से पहले पुनः मापा जाता है। ये माप सॉफ़्टवेयर-गणना और स्व-प्रमाणित हैं, हार्डवेयर-रूटेड नहीं। ये ईमानदार डिप्लॉयमेंट्स के लिए छेड़छाड़-साक्ष्य हैं, किसी शत्रुतापूर्ण होस्ट के विरुद्ध प्रमाण नहीं।
प्रदाता अपडेट बनाम दुर्भावनापूर्ण प्रतिस्थापन, अलग-अलग पहचाने गए। मॉडल-स्टेट परिवर्तन वैध प्रदाता अपडेट (PROVIDER_UPDATE_REQUIRES_REAUTH) और अनधिकृत स्वैप (MALICIOUS_MODEL_SUBSTITUTION) में वर्गीकृत होते हैं। प्रत्येक एक मशीन-पठनीय अस्वीकृति कारण कोड उत्पन्न करता है जो पहचानता है कि कौन से घटक बदले।
वह गेट जो किसी भी एजेंट कार्रवाई के निष्पादन से पहले चलता है।
PreExecutionVerifier.check() प्रत्येक प्रस्तावित कार्रवाई को हस्ताक्षरित delegation receipt के विरुद्ध सत्यापित करता है। अपने एजेंट की प्रक्रिया में प्रत्येक कार्रवाई को इसके माध्यम से रूट करें, कार्रवाई चलने से पहले। verifier अपने स्वयं के allow/deny निर्णयों पर एक ऑडिट लॉग में हस्ताक्षर करता है, इसलिए प्रत्येक परिणाम रिकॉर्ड का हिस्सा होता है।
एक कठोर सत्य जिसके इर्द-गिर्द निर्माण करना है: verifier समान-प्रक्रिया है। यह प्रमाण सत्यापित करता है; यह उस ऑपरेटर को रोक नहीं सकता जो इसे कॉल करने से इनकार करता है। इसका उपयोग वहाँ करें जहाँ आप साक्ष्य चाहते हैं, वहाँ नहीं जहाँ आपको कोड चलाने वाले ऑपरेटर के विरुद्ध प्रवर्तन की आवश्यकता है।
आज अधिकांश एजेंट अधिकृति ऑपरेटर के शब्द है: एक नीति जो ऑपरेटर ने लिखी, जिसे ऑपरेटर द्वारा नियंत्रित कोड द्वारा लागू किया गया। जब कुछ गलत होता है, तो इस बात का कोई रिकॉर्ड नहीं होता कि उपयोगकर्ता ने वास्तव में क्या अधिकृत किया था, केवल ऑपरेटर का उसका पुनर्निर्माण। AuthProof इसे उलट देता है। उपयोगकर्ता का हस्ताक्षरित receipt निष्पादन से पहले का है, और action log रिकॉर्ड करता है कि उसके विरुद्ध क्या चला। प्रश्न "क्या उपयोगकर्ता ने इस अधिकृति दी थी?" विवादास्पद के बजाय जाँचने योग्य हो जाता है।
import { PreExecutionVerifier, DelegationLog } from 'authproof-sdk/pre-execution-verifier'
import { RevocationRegistry } from 'authproof-sdk'
// 1. Set up the gate
const delegationLog = new DelegationLog()
const revocationRegistry = new RevocationRegistry()
await revocationRegistry.init({ privateKey, publicJwk })
const verifier = new PreExecutionVerifier({ delegationLog, revocationRegistry })
await verifier.init({ privateKey: verifierKey, publicJwk: verifierPub })
// 2. Register your delegation receipt
delegationLog.add(receiptHash, receipt)
// 3. Gate every action â before the agent runs
const result = await verifier.check({
receiptHash,
action: { operation: 'read', resource: 'calendar' },
operatorInstructions: 'Summarize meetings. Stay within scope.',
programHash, // optional: prevents code substitution attacks
})
if (!result.allowed) {
throw new Error(`Blocked: ${result.blockedReason}`)
}
// Agent runtime only reaches here after all thirteen checks pass
| # | जाँच | कब ब्लॉक करती है |
|---|---|---|
| 1 | रसीद हस्ताक्षर | ECDSA P-256 हस्ताक्षर अमान्य या रसीद के साथ छेड़छाड़ |
| 2 | निरसन | रसीद RevocationRegistry के माध्यम से निरस्त कर दी गई है (कैस्केड: एक निरस्त पूर्वज अपने वंशजों को अस्वीकार करता है) |
| 3 | समय विंडो | रसीद समाप्त हो गई या अभी तक मान्य नहीं है (लॉग टाइमस्टैम्प ओरेकल, क्लाइंट घड़ी नहीं) |
| 4 | स्कोप | क्रिया ScopeSchema.allowedActions में नहीं है; एक संरचित स्कीमा के बिना, कीवर्ड मिलान केवल सलाहकारी है और कभी गेट नहीं करता |
| 5 | ऑपरेटर निर्देश | प्रदान किए गए निर्देश जारी करने के समय रसीद में लॉक किए गए हैश से मेल नहीं खाते; जब कॉलर उन्हें छोड़ देता है तो चेतावनी के साथ छोड़ दिया जाता है |
| 6 | प्रोग्राम हैश | प्रदान किया गया programHash प्रतिबद्ध executes हैश से मेल नहीं खाता (वैकल्पिक) |
| 7 | सत्र जोखिम | ट्रस्ट/जोखिम थ्रेसहोल्ड पार हो गए (वैकल्पिक) |
| 8 | टूल स्कीमा अखंडता | toolSchemaHash रसीद से मेल नहीं खाता (वैकल्पिक) |
| 9 | मॉडल स्थिति | मॉडल ड्रिफ्ट का पता चला (वैकल्पिक; सॉफ़्टवेयर-गणना, स्व-प्रमाणित माप) |
| 10 | टूल आउटपुट हैश बाइंडिंग | आउटपुट हैश रसीद से मेल नहीं खाता (वैकल्पिक) |
| 11 | निर्देश प्रोवेनेंस | निर्देश स्रोत रसीद के trustedSources में नहीं है (वैकल्पिक) |
| 14 | पैरेंट स्कोप कंटेनमेंट | सब-रसीद पैरेंट के स्कोप से अधिक है (केवल सब-रसीदें); किसी भी पूर्वज को निरस्त करने पर जाँच के समय चाइल्ड अस्वीकार कर दिया जाता है |
| 15 | प्राधिकरण स्थिति ड्रिफ्ट | जारी करने के बाद से authorityStateCommitment ड्रिफ्ट हो गया (वैकल्पिक) |
स्लॉट 12 और 13 कभी लागू नहीं किए गए; संख्या अंतराल ऐतिहासिक है। गेट पहली विफल जाँच पर रुक जाता है। वन-टाइम-यूज़ खपत सबसे अंत में चलती है, हर जाँच पास होने के बाद, इसलिए एक खपत स्लॉट कभी भी ऐसी रसीद पर नहीं जलाया जाता जो किसी अन्य कारण से अस्वीकार की जाएगी।
हर जाँच परिणाम, पास या फेल, स्वचालित रूप से सत्यापनकर्ता की अपनी कुंजी से हस्ताक्षरित एक अपरिवर्तनीय ActionLog में लॉग किया जाता है।
हस्ताक्षरित डेटा जीतता है। हस्ताक्षरित रसीद का स्कोप और प्रोग्राम हैश हमेशा ऑपरेटर लॉग मेटाडेटा पर हावी होते हैं। यदि अहस्ताक्षरित DelegationLog मेटाडेटा हस्ताक्षरित रसीद से असहमत है, तो गेट क्रिया को अस्वीकार कर देता है (SCOPE_METADATA_MISMATCH / PROGRAM_METADATA_MISMATCH)। लॉग मेटाडेटा केवल तब फ़ॉलबैक है जब रसीद में कोई संरचित स्कोप या हस्ताक्षरित executes मान न हो।
निर्देशित प्रतिनिधिमंडल अवलोकन द्वारा निर्देशित होता है। ScopeDiscovery.guided() और AuthProofClient.delegateGuided() एक ही कॉल में observe → generateScope → approve → finalize चलाते हैं, और पूरा अवलोकित ड्राफ्ट स्कोप बिना किसी मानवीय समीक्षा के स्वतः-स्वीकृत हो जाता है। एक वास्तविक मानव-प्राधिकरण क्षण के लिए, reviewDraft हुक पास करें (जारी करने से पहले ड्राफ्ट को स्वीकृत, संशोधित, या अस्वीकार करें) या स्पष्ट approve() के साथ चरणों को अलग-अलग चलाएँ।
सामान्य फ्रेमवर्क के लिए ड्रॉप-इन रैपर। प्रत्येक रैपर रैप किए गए कोड के निष्पादन से पहले PreExecutionVerifier के माध्यम से हर कॉल को गेट करता है।
invoke() विधि के साथ रैप करता है// LangChain
import { authproofMiddleware } from 'authproof-sdk/middleware/langchain'
const guardedAgent = authproofMiddleware(agent, { receiptHash, verifier })