
AI एजेंटों के लिए सुरक्षा गेटवे - क्रेडेंशियल-पृथक API प्रॉक्सीिंग और नीति-नियंत्रित दूरस्थ निष्पादन (क्लेव्स)। विस्फोट त्रिज्या को कम करें!
Wardgate एक सुरक्षा गेटवे है जो AI एजेंटों और बाहरी दुनिया के बीच बैठता है -- API कॉल के लिए क्रेडेंशियल्स को अलग करना, दूरस्थ कमांड निष्पादन के लिए SSH कुंजियों को अलग करना, और दूरस्थ वातावरण (Conclaves) में कमांड निष्पादन को गेट करना।
अपने AI एजेंटों को APIs, SSH कुंजियाँ, और शेल टूल्स तक पहुँच दें - बिना उन्हें अपने क्रेडेंशियल्स दिए या उन पर सीधे निष्पादन का भरोसा किए।
AI एजेंट शक्तिशाली हैं। वे आपका कैलेंडर प्रबंधित कर सकते हैं, आपका ईमेल जाँच सकते हैं, आपके कार्यों को अपडेट कर सकते हैं, कोड लिख सकते हैं, और आपके जीवन को स्वचालित कर सकते हैं। लेकिन ऐसा करने के लिए, उन्हें आपके खातों और सिस्टम तक पहुँच की आवश्यकता है।
वे एक तेज़-तर्रार किशोर की तरह भी हैं। वे बहुत कुछ जानते हैं, लेकिन उनका अपना दिमाग होता है। वे भोले हैं (प्रॉम्प्ट इंजेक्शन के लिए)। और किशोरों की तरह, वे वास्तव में नहीं सोचते। इसलिए परिणामों के बारे में सोचना उनके वेतन-ग्रेड से बिल्कुल ऊपर है!
API समस्या। कंटेनरीकरण आपके एजेंटों को अलग करने का एक शानदार तरीका है। लेकिन यह कोई चांदी की गोली नहीं है। उन्हें अभी भी आपके क्रेडेंशियल्स एनवायरनमेंट वेरिएबल या किसी अन्य तरीके से मिलते हैं - अन्यथा वे आपकी मदद नहीं कर सकते। और OpenClaw जैसी परियोजनाओं में एक्सेस कंट्रोल सुविधाएँ बनी होती हैं, लेकिन आपको एजेंट, एप्लिकेशन, या उन सभी हजारों कमिट्स पर भरोसा करना होता है कि वह अपनी अनुमतियाँ नहीं बदलता।
निष्पादन समस्या। AI एजेंट सिर्फ APIs को कॉल नहीं करते - वे शेल कमांड निष्पादित करते हैं। एजेंट होस्ट पर सीधे कमांड चलाना खतरनाक है: प्रॉम्प्ट इंजेक्शन rm -rf /, curl के माध्यम से डेटा एक्सफिल्ट्रेशन, या उससे भी बदतर हो सकता है। सैंडबॉक्सिंग के बावजूद, एजेंट होस्ट के पास अपने फाइलसिस्टम पर सब कुछ तक पहुँच है।
जोखिम वास्तविक है:
Wardgate दो पूरक सुरक्षा परतें प्रदान करता है:
API गेटवे -- एजेंट Wardgate से बात करते हैं। Wardgate APIs, SSH, IMAP या SMTP सर्वर से बात करता है। आपके क्रेडेंशियल्स कभी Wardgate से बाहर नहीं जाते।
Conclaves -- पृथक दूरस्थ निष्पादन वातावरण। एजेंट Wardgate के माध्यम से कमांड भेजते हैं, जो नीति का मूल्यांकन करता है और फिर एक पृथक कंटेनर को अग्रेषित करता है। एजेंट होस्ट के पास Conclave डेटा या बाइनरी तक कोई सीधी पहुँच नहीं है।
flowchart LR
subgraph apiFlow [API Gateway]
Agent1[AI Agent] -->|HTTP| WG1[Wardgate]
WG1 -->|"credentials injected"| Service[External API]
end
subgraph conclaveFlow [Conclaves]
Agent2[AI Agent] -->|wardgate-cli exec| WG3[Wardgate]
WG3 -->|"policy checked"| Exec[wardgate-exec]
endhttps://*.googleapis.com) की एक मान्य अनुमति सूची से लक्ष्य चुनते हैंrg, git, cat)git push) के लिए मानव अनुमोदन की आवश्यकता हैcurl को बदलता है और मनमाने URL से कनेक्शन को रोकता हैआप OpenClaw, AutoGPT, या कस्टम LLM टूलिंग जैसे AI एजेंटों का उपयोग करना चाहते हैं -- लेकिन आप उन्हें अपने जीवन तक सीधी पहुँच देने में सहज नहीं हैं। मुझे यकीन नहीं है कि मैं कभी AI एजेंटों के साथ सहज हो पाऊँगा जिनमें अंतर्निहित एक्सेस कंट्रोल हो।
Wardgate आपको AI ऑटोमेशन के लाभ प्राप्त करने देता है जबकि एजेंट और आपके खातों के बीच एक सुरक्षा सीमा बनाए रखता है।
उपयोग के मामले:
अपने एजेंट को Todoist API कुंजी देने के बजाय, प्रीसेट के साथ Wardgate कॉन्फ़िगर करें:
endpoints:
todoist:
preset: todoist
auth:
credential_env: WARDGATE_CRED_TODOIST_API_KEY
capabilities:
read_data: allow # कार्य, परियोजनाएँ पढ़ें
create_tasks: allow # नए कार्य बनाएँ
close_tasks: allow # कार्य पूर्ण चिह्नित करें
delete_tasks: deny # कभी न हटाएँ
आपका एजेंट https://wardgate.internal/todoist/tasks पर कॉल करता है -- Wardgate वास्तविक क्रेडेंशियल्स इंजेक्ट करता है और आपके नियमों को लागू करता है।
अपने एजेंट को SSH कुंजी देने के बजाय, प्रीसेट के साथ Wardgate कॉन्फ़िगर करें:
endpoints:
ssh:
preset: ssh
ssh:
host: prod.example.com
username: deploy
known_host: "prod.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA..."
auth:
credential_env: WARDGATE_SSH_KEY_PROD
capabilities:
exec_commands: ask # प्रत्येक कमांड के लिए अनुमोदन आवश्यक
अपने एजेंट को होस्ट पर कमांड चलाने देने के बजाय, एक Conclave कॉन्फ़िगर करें:
conclaves:
obsidian:
description: "Obsidian vault (व्यक्तिगत नोट्स)"
key_env: WARDGATE_CONCLAVE_OBSIDIAN_KEY
cwd: /data/vault
rules:
- match: { command: "cat" }
action: allow
- match: { command: "rg" }
action: allow
- match: { command: "tee" }
action: ask # मानव अनुमोदन आवश्यक
- match: { command: "*" }
action: deny
आपका एजेंट wardgate-cli exec obsidian "rg 'meeting notes' ." चलाता है -- Wardgate प्रत्येक कमांड को नीति के विरुद्ध जाँचता है और फिर पृथक वातावरण को अग्रेषित करता है।
cp .env.example .env # अपने क्रेडेंशियल्स जोड़ें
cp config.yaml.example config.yaml # एंडपॉइंट और conclaves कॉन्फ़िगर करें
./wardgate -config config.yaml
सभी स्थापना विधियों (पूर्व-निर्मित बाइनरी, Docker, स्रोत से निर्माण) के लिए INSTALL.md देखें।
go test ./...