Gateway
1Password
OpenClaw 1Password के साथ दो स्वतंत्र तरीकों से काम करता है:
- कॉन्फ़िग सीक्रेट:
openclaw.jsonमें कोई भी SecretRef फ़ील्ड रनटाइम परopCLI के माध्यम से हल हो सकती है, इसलिए API कुंजियाँ कभी भी कॉन्फ़िग फ़ाइल में नहीं रहतीं। - एजेंट कार्यप्रवाह: बंडल की गई
1passwordस्किल एजेंटों को अपने कार्यों के लिएopसे साइन इन करना और सीक्रेट पढ़ना या इंजेक्ट करना सिखाती है।
आवश्यकताएँ
- Gateway होस्ट पर 1Password CLI (
op) इंस्टॉल हो (macOS परbrew install 1password-cli)। opके लिए एक प्रमाणीकरण मोड:- सर्विस अकाउंट (हेडलेस Gateway के लिए अनुशंसित): Gateway सेवा परिवेश में
OP_SERVICE_ACCOUNT_TOKENएक्सपोर्ट करें। किसी डेस्कटॉप ऐप या इंटरैक्टिव साइन-इन की आवश्यकता नहीं है। - डेस्कटॉप ऐप इंटीग्रेशन: 1Password ऐप उसी मशीन पर चलता है और उसमें CLI इंटीग्रेशन सक्षम होता है। शुरुआती कॉल Touch ID या सिस्टम प्रमाणीकरण ट्रिगर कर सकती हैं।
- स्टैंडअलोन साइन-इन:
op signinप्रत्येक सत्र में संकेत देता है। स्किल के माध्यम से एजेंटों के लिए व्यावहारिक है, लेकिन हेडलेस Gateway पर कॉन्फ़िग सीक्रेट समाधान के लिए उपयुक्त नहीं है।
- सर्विस अकाउंट (हेडलेस Gateway के लिए अनुशंसित): Gateway सेवा परिवेश में
op से कॉन्फ़िग सीक्रेट हल करें
एक exec सीक्रेट प्रदाता घोषित करें, जो op://vault/item/field संदर्भ के साथ op read चलाता हो, फिर SecretRef समर्थित किसी भी फ़ील्ड को उसकी ओर इंगित करें:
{ secrets: { providers: { onepassword_openai: { source: "exec", command: "/opt/homebrew/bin/op", allowSymlinkCommand: true, // Homebrew के सिमलिंक किए गए बाइनरी के लिए आवश्यक trustedDirs: ["/opt/homebrew"], args: ["read", "op://Personal/OpenClaw QA API Key/password"], passEnv: ["HOME"], jsonOnly: false, }, }, }, models: { providers: { openai: { baseUrl: "https://api.openai.com/v1", models: [{ id: "gpt-5", name: "gpt-5" }], apiKey: { source: "exec", provider: "onepassword_openai", id: "value" }, }, }, },}ये घटक इस प्रकार साथ काम करते हैं:
commandएक पूर्ण पथ होना चाहिए;trustedDirsइसकी डायरेक्टरी को विश्वसनीय चिह्नित करता है, औरallowSymlinkCommandआवश्यक है क्योंकि Homebrewopको सिमलिंक के रूप में इंस्टॉल करता है।argsमेंop://vault/item/fieldसंदर्भ ज्यों का त्यों जाता है। OpenClaw स्वयंop://स्कीम को पार्स नहीं करता;opबाइनरी इसे हल करती है।passEnvसूचीबद्ध वेरिएबल को Gateway परिवेश से अग्रेषित करता है। डेस्कटॉप ऐप इंटीग्रेशन कोHOMEकी आवश्यकता होती है; सर्विस अकाउंट के लिए भी Gateway सेवा परिवेश मेंOP_SERVICE_ACCOUNT_TOKENउपस्थित होना चाहिए (इसेpassEnvमें जोड़ें, याenvके माध्यम से केवल तभी सेट करें जब आपको टोकन का कॉन्फ़िग फ़ाइल में पठनीय होना स्वीकार्य हो)।- एकल मान वाले आउटपुट के लिए
id: "value"बनाए रखें।jsonOnly: trueऔर JSON पेलोड के साथ, इसके बजाय JSON पॉइंटर आईडी से फ़ील्ड को संबोधित करें। - प्रत्येक सीक्रेट के लिए एक प्रदाता प्रविष्टि रखने से संदर्भों का ऑडिट किया जा सकता है; प्रदाताओं का नाम उनके उपभोक्ता के अनुसार रखें (
onepassword_openai,onepassword_telegram)।
समाधान क्रम, कैशिंग और विफलता अर्थविज्ञान के लिए Gateway सीक्रेट, और SecretRef स्वीकार करने वाले प्रत्येक फ़ील्ड के लिए SecretRef क्रेडेंशियल सतह देखें।
हेडलेस Gateway के लिए सर्विस अकाउंट सेटअप
- अपने 1Password अकाउंट में एक सर्विस अकाउंट बनाएँ और उसे केवल उन वॉल्ट आइटम का पढ़ने का एक्सेस दें जिनकी Gateway को आवश्यकता है।
- Gateway सेवा (launchd plist, systemd unit या container env) को
OP_SERVICE_ACCOUNT_TOKENउपलब्ध कराएँ। - प्रदाता की
passEnvसूची में"OP_SERVICE_ACCOUNT_TOKEN"जोड़ें। - Gateway होस्ट परिवेश से सत्यापित करें:
op whoamiको बिना संकेत दिए सर्विस अकाउंट प्रिंट करना चाहिए।
सर्विस अकाउंट से पढ़ने के लिए op:// संदर्भ में वॉल्ट का नाम स्पष्ट रूप से देना आवश्यक है। अकाउंट का दायरा सीमित रखें; यह एक बेयरर क्रेडेंशियल है।
एजेंटों के लिए 1password स्किल
OpenClaw एक 1password स्किल बंडल करता है, जो एजेंटों को सक्षम op ऑपरेटर बनाती है: यह उपलब्ध प्रमाणीकरण मोड (सर्विस अकाउंट, डेस्कटॉप ऐप इंटीग्रेशन या स्टैंडअलोन साइन-इन) का पता लगाती है, कुछ भी पढ़ने से पहले op whoami से एक्सेस सत्यापित करती है और सीक्रेट मानों को डिस्क पर लिखने के बजाय op run / op inject को प्राथमिकता देती है। इस स्किल के लिए op बाइनरी आवश्यक है और उसके अनुपस्थित होने पर यह Homebrew इंस्टॉल की पेशकश करती है।
एजेंट इसका उपयोग अपने कार्यप्रवाहों के लिए करते हैं, उदाहरण के लिए कार्य के बीच में डिप्लॉय टोकन पढ़ना या किसी कमांड में पर्यावरण वेरिएबल इंजेक्ट करना। यह कॉन्फ़िग सीक्रेट समाधान से स्वतंत्र है; Gateway किसी स्किल की भागीदारी के बिना SecretRef हल करता है।
सुरक्षा संबंधी टिप्पणियाँ
- exec प्रदाताओं के माध्यम से हल किए गए सीक्रेट मान Gateway मेमोरी में रहते हैं; कॉन्फ़िग स्नैपशॉट और
config.getप्रतिक्रियाएँ SecretRef फ़ील्ड को छिपाती हैं। - सीक्रेट मानों को कभी भी
openclaw.json, लॉग या चैट में न रखें। आइटम के नाम कॉन्फ़िग में और मान 1Password में रखें। - 1Password ऑडिट ट्रेल प्रत्येक सर्विस अकाउंट रीड दिखाता है, जिससे कुंजी रोटेशन और घटना समीक्षा व्यावहारिक हो जाती है।
समस्या निवारण
command not foundया स्पॉन त्रुटियाँ: पूर्णopपथ का उपयोग करें और इसकी डायरेक्टरी कोtrustedDirsमें शामिल करें।opहल हो जाता है, लेकिन सिमलिंक त्रुटियों के कारण रीड विफल हो जाते हैं: Homebrew इंस्टॉल के लिएallowSymlinkCommand: trueसेट करें।account is not signed in: सर्विस अकाउंट के लिए पुष्टि करें किOP_SERVICE_ACCOUNT_TOKENGateway सेवा तक पहुँचता है औरpassEnvमें सूचीबद्ध है; डेस्कटॉप इंटीग्रेशन के लिए पुष्टि करें कि ऐप चल रहा है और अनलॉक है।- शुरुआती रीड धीमे हैं: प्रदाता पर
timeoutMsबढ़ाएँ; व्यस्त होस्ट परopकोल्ड स्टार्ट सख्त टाइमआउट से अधिक समय ले सकते हैं।