Gateway

1Password

OpenClaw 1Password के साथ दो स्वतंत्र तरीकों से काम करता है:

  • कॉन्फ़िग सीक्रेट: openclaw.json में कोई भी SecretRef फ़ील्ड रनटाइम पर op CLI के माध्यम से हल हो सकती है, इसलिए 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 पर कॉन्फ़िग सीक्रेट समाधान के लिए उपयुक्त नहीं है।

op से कॉन्फ़िग सीक्रेट हल करें

एक exec सीक्रेट प्रदाता घोषित करें, जो op://vault/item/field संदर्भ के साथ op read चलाता हो, फिर SecretRef समर्थित किसी भी फ़ील्ड को उसकी ओर इंगित करें:

json5
{  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 आवश्यक है क्योंकि Homebrew op को सिमलिंक के रूप में इंस्टॉल करता है।
  • 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 के लिए सर्विस अकाउंट सेटअप

  1. अपने 1Password अकाउंट में एक सर्विस अकाउंट बनाएँ और उसे केवल उन वॉल्ट आइटम का पढ़ने का एक्सेस दें जिनकी Gateway को आवश्यकता है।
  2. Gateway सेवा (launchd plist, systemd unit या container env) को OP_SERVICE_ACCOUNT_TOKEN उपलब्ध कराएँ।
  3. प्रदाता की passEnv सूची में "OP_SERVICE_ACCOUNT_TOKEN" जोड़ें।
  4. 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_TOKEN Gateway सेवा तक पहुँचता है और passEnv में सूचीबद्ध है; डेस्कटॉप इंटीग्रेशन के लिए पुष्टि करें कि ऐप चल रहा है और अनलॉक है।
  • शुरुआती रीड धीमे हैं: प्रदाता पर timeoutMs बढ़ाएँ; व्यस्त होस्ट पर op कोल्ड स्टार्ट सख्त टाइमआउट से अधिक समय ले सकते हैं।
Was this useful?
On this page

On this page