इस प्रोजेक्ट के बारे में

Agent Interlock एक Python 3.11 फ्रेमवर्क (Apache-2.0) है जो एजेंट-टू-एजेंट इंटरैक्शन में इंटरलॉक के सेफ्टी-इंजीनियरिंग विचार को लागू करता है। एक्टर्स को ActorSpec मैनिफेस्ट में घोषित किया जाता है, प्रत्येक एक्टर की सरफेस को SDK या प्रॉक्सी के साथ रैप किया जाता है, और उनके बीच के संचार का अवलोकन, निर्णय और ब्लॉकिंग की जाती है ताकि केवल घोषित लिंक ही जुड़ सकें। यह प्रोजेक्ट एक MCP टूल गेटवे पर केंद्रित है। खतरों M1 से M9 - टूल पॉइज़निंग, रग पुल, टूल शैडोइंग, पॉइज़न्ड टूल पब्लिश, कन्फ्यूज्ड डिप्टी या टोकन पासथ्रू, MCP सर्वर टू होस्ट कॉम्प्रोमाइज, एजेंट-कॉन्फ़िगरेशन डिस्कवरी या मॉडिफिकेशन, क्रेडेंशियल हार्वेस्टिंग और डेटा एक्सफिल्ट्रेशन - को डेटा-फ्लो स्तर पर संभाला जाता है, जिनमें से प्रत्येक के लिए QUARANTINE, BLOCK, HOLD, CHALLENGE या SANITIZE जैसे डिफॉल्ट निर्णय होते हैं। प्रवर्तन (Enforcement) को OBSERVE से SHADOW और फिर ENFORCE के चरणों में बढ़ाया जाता है, और ENFORCE तक पहुँचने के लिए दो हस्ताक्षरित अनुमोदनों की आवश्यकता होती है। 29 चेक की एक सिंगल Check टेबल तीन प्रवर्तन बिंदुओं के पीछे होती है, जिनमें से प्रत्येक अपना प्रोफाइल चुनता है: MCP गेटवे 21 चेक, SDK 19, और A2A ब्रोकर 17। README स्पष्ट रूप से बताता है कि तंत्र साझा है लेकिन कवरेज नहीं, और ब्रोकर में कोई एग्रेस, वॉल्यूम या टेंट कंट्रोल नहीं है। घटकों में SDK (define_actor, connect, wrap), एक रनटाइम जो इंटर-एक्टर संचार को इंटरसेप्ट करता है, एक ऑर्केस्ट्रेटर जो A2A, MCP और ह्यूमन ट्रांसपोर्ट्स पर सत्यापित टास्क DAGs को निष्पादित करता है, एक A2A ब्रोकर जो प्री-एनफोर्समेंट के साथ एजेंट कार्ड और टास्क को संभालता है, एक अपेंड-ओनली लेजर जो अनुरोध, निर्णय, कार्रवाई और परिणाम घटनाओं को अलग-अलग रिकॉर्ड करता है, डिज़ाइन, रनटाइम और अटैक पाथ के लिए ग्राफ व्यू, आर्किटेक्चर एडिटिंग और मैनिफेस्ट एक्सपोर्ट के लिए एक बॉक्स-आधारित Studio वेब UI, एक Anthropic Tool Runner एडेप्टर, और एक interlock verify कमांड शामिल है जो फ्रेमवर्क के फिक्स्चर के बजाय प्रोजेक्ट के अपने गार्डेड टूल्स के खिलाफ नौ L1 परिदृश्यों को चलाता है। अन्य प्रमाणित क्षेत्रों में आर्किटेक्चर डाइजेस्ट्स से बंधे MCP JSON-RPC tools/list, tools/call और list-changed प्रवर्तन; सेशन बाइंडिंग के साथ एक Streamable HTTP JSON/SSE क्लाइंट; MCP OAuth डिस्कवरी, PKCE S256, RFC 7662 इंट्रोस्पेक्शन, वैकल्पिक JWKS/JWT सत्यापन और लूपबैक सहमति; आर्टिफैक्ट पिनिंग, हस्ताक्षरित सैंडबॉक्स सत्यापन और Bubblewrap लॉन्च प्लान के साथ एक stdio JSONL क्लाइंट; प्रकाशकों के लिए हस्ताक्षरित प्रोवेनेंस एडमिशन; आर्किटेक्चर मैनिफेस्ट से संकलित प्रति-डेस्टिनेशन एग्रेस गार्ड्स; PostgreSQL पार्टिशनिंग, session_user-आधारित FORCE RLS और इवेंट और ट्रेस HTTP APIs के साथ एक अपेंड-ओनली लेजर एडेप्टर; OTLP/HTTP JSON इनजेस्ट; हस्ताक्षरित ऑडिट सिंक; मल्टी-एजेंट एडजेस के लिए डिज़ाइन-बनाम-रनटाइम ड्रिफ्ट समाधान; दिशात्मक आंतरिक/बाहरी ट्रस्ट बाउंड्रीज़; और .invalid एड्रेस का उपयोग करने वाले डिटरमिनिस्टिक फिक्स्चर के साथ एक फेक-डेटा एंड-टू-एंड परिदृश्य सूट शामिल हैं। रेफरेंस कोर में कोई बाहरी रनटाइम डिपेंडेंसी नहीं है, जिसमें PostgreSQL और Anthropic इंटीग्रेशन वैकल्पिक अतिरिक्त के रूप में हैं। README स्पष्ट है कि क्या शिप नहीं किया गया है: कोई LangGraph या Claude Agent SDK एडेप्टर नहीं, कोई साइडकार प्रॉक्सी नहीं, सर्वर-साइड MCP कनेक्टर इंटरसेप्शन स्कोप से बाहर रखा गया है क्योंकि वे टूल्स प्रदाता की ओर से निष्पादित होते हैं, एक एक्सेप्टेंस इवैल्यूएटर जो केवल स्ट्रक्चरल है, और एक मैनिफेस्ट पार्सर जो अभी भी कुछ फ़ील्ड्स और साइड-इफेक्ट एक्शन्स को छोड़ देता है। यह यह भी रिकॉर्ड करता है कि SDK गेटवे के अप्रूवल API तक नहीं पहुँच सकता है, इसलिए रैप्ड टूल से बाहरी राइट विफल हो जाता है बजाय इसके कि उसे SDK से अनुमोदित किया जा सके। Sigstore, KMS/HSM, आइडेंटिटी प्रोवाइडर्स, वास्तविक एग्रेस साइडकार्स, TLS और डिस्ट्रीब्यूटेड रेट लिमिटिंग जैसे वास्तविक बाहरी-इंटीग्रेशन कार्य शेष सूची में हैं।