الانتقال إلى المحتوى الرئيسي
يتكامل OpenClaw مع 1Password بطريقتين مستقلتين:
  • أسرار الإعداد: يمكن لأي حقل SecretRef في openclaw.json أن يُحل عبر CLI الخاص بـ op في وقت التشغيل، بحيث لا تُخزَّن مفاتيح API مطلقًا في ملف الإعداد.
  • سير عمل الوكلاء: تعلّم مهارة 1password المضمّنة الوكلاء كيفية تسجيل الدخول وقراءة الأسرار أو حقنها باستخدام op لتنفيذ مهامهم الخاصة.

المتطلبات

  • تثبيت CLI الخاص بـ 1Password‏ (op) على مضيف Gateway ‏(brew install 1password-cli على macOS).
  • وضع مصادقة لـ op:
    • حساب خدمة (موصى به لبوابات Gateway غير المزودة بواجهة): صدّر OP_SERVICE_ACCOUNT_TOKEN في بيئة خدمة Gateway. لا حاجة إلى تطبيق سطح المكتب أو تسجيل دخول تفاعلي.
    • التكامل مع تطبيق سطح المكتب: يعمل تطبيق 1Password على الجهاز نفسه مع تمكين تكامل CLI. قد تؤدي الاستدعاءات الأولى إلى طلب Touch ID أو مصادقة النظام.
    • تسجيل دخول مستقل: يطلب op signin المصادقة في كل جلسة. وهو مناسب للوكلاء عبر المهارة، لكنه غير ملائم لحل أسرار الإعداد على Gateway غير مزود بواجهة.

حل أسرار الإعداد باستخدام op

عرّف موفّر أسرار تنفيذيًا يشغّل op read باستخدام مرجع op://vault/item/field، ثم وجّه إليه أي حقل يدعم SecretRef:
كيفية ترابط الأجزاء:
  • يجب أن يكون command مسارًا مطلقًا؛ ويحدّد trustedDirs دليله بوصفه موثوقًا، ويلزم allowSymlinkCommand لأن Homebrew يثبّت op كرابط رمزي.
  • ينقل args مرجع op://vault/item/field حرفيًا. لا يحلّل OpenClaw مخطط op:// بنفسه؛ بل يحلّه الملف التنفيذي op.
  • يمرّر passEnv المتغيرات المدرجة من بيئة Gateway. يحتاج التكامل مع تطبيق سطح المكتب إلى HOME؛ وتحتاج حسابات الخدمة أيضًا إلى وجود OP_SERVICE_ACCOUNT_TOKEN في بيئة خدمة Gateway (أضفه إلى passEnv، أو عيّنه عبر env فقط إذا كنت تقبل أن يكون الرمز المميز قابلًا للقراءة في ملف الإعداد).
  • للمخرجات ذات القيمة الواحدة، أبقِ id: "value". وعند استخدام jsonOnly: true وحمولة JSON، حدّد الحقول بدلًا من ذلك بواسطة معرّف مؤشر JSON.
  • يؤدي تخصيص إدخال موفّر واحد لكل سر إلى إبقاء المراجع قابلة للتدقيق؛ وسمِّ الموفّرين باسم الجهة التي تستهلكهم (onepassword_openai، onepassword_telegram).
راجع أسرار Gateway لمعرفة ترتيب الحل والتخزين المؤقت ودلالات الفشل، وسطح بيانات اعتماد SecretRef للاطلاع على كل حقل يقبل SecretRefs.

إعداد حساب خدمة لبوابات Gateway غير المزودة بواجهة

  1. أنشئ حساب خدمة في حسابك على 1Password وامنحه حق الوصول للقراءة فقط إلى عناصر الخزنة التي يحتاج إليها Gateway.
  2. وفّر OP_SERVICE_ACCOUNT_TOKEN لخدمة Gateway (ملف plist الخاص بـ launchd أو وحدة systemd أو بيئة الحاوية).
  3. أضف "OP_SERVICE_ACCOUNT_TOKEN" إلى قائمة passEnv الخاصة بالموفّر.
  4. تحقّق من بيئة مضيف Gateway: ينبغي أن يطبع op whoami حساب الخدمة من دون مطالبة.
تتطلب عمليات القراءة عبر حساب الخدمة تسمية الخزنة صراحةً في مرجع op://. قيّد نطاق الحساب بإحكام؛ فهو بيانات اعتماد لحاملها.

مهارة 1password للوكلاء

يتضمن OpenClaw مهارة 1password التي تجعل الوكلاء مشغّلين أكفاء لـ op: فهي تكتشف وضع المصادقة المتاح (حساب خدمة أو تكامل تطبيق سطح المكتب أو تسجيل دخول مستقل)، وتتحقق من الوصول باستخدام op whoami قبل قراءة أي شيء، وتفضّل op run / op inject على كتابة قيم الأسرار إلى القرص. تتطلب المهارة الملف التنفيذي op وتعرض تثبيته عبر Homebrew عند فقدانه. يستخدمها الوكلاء في سير عملهم الخاص، مثل قراءة رمز نشر في أثناء المهمة أو حقن متغيرات البيئة في أمر. وهي مستقلة عن حل أسرار الإعداد؛ إذ يحل Gateway مراجع SecretRef من دون تدخل أي مهارة.

ملاحظات أمنية

  • تبقى قيم الأسرار التي تُحل عبر الموفّرين التنفيذيين في ذاكرة Gateway؛ وتحجب لقطات الإعداد واستجابات config.get حقول SecretRef.
  • لا تضع قيم الأسرار مطلقًا في openclaw.json أو السجلات أو المحادثة. احتفظ بأسماء العناصر في الإعداد، وبالقيم في 1Password.
  • يعرض سجل تدقيق 1Password كل عملية قراءة يجريها حساب الخدمة، مما يجعل تدوير المفاتيح ومراجعة الحوادث أمرين عمليين.

استكشاف الأخطاء وإصلاحها

  • command not found أو أخطاء إنشاء العملية: استخدم المسار المطلق لـ op وأدرج دليله في trustedDirs.
  • يُحل op ولكن تفشل عمليات القراءة بسبب أخطاء الروابط الرمزية: عيّن allowSymlinkCommand: true لتثبيتات Homebrew.
  • account is not signed in: بالنسبة إلى حسابات الخدمة، تأكد من وصول OP_SERVICE_ACCOUNT_TOKEN إلى خدمة Gateway وإدراجه في passEnv؛ وبالنسبة إلى تكامل سطح المكتب، تأكد من أن التطبيق قيد التشغيل وغير مقفل.
  • بطء عمليات القراءة الأولى: ارفع timeoutMs لدى الموفّر؛ إذ يمكن أن تتجاوز عمليات البدء البارد لـ op حدود المهلة الصارمة على المضيفين المشغولين.