إذا كنت تستخدم Claude Code أو Codex أو Cursor مع أي شيء يتصل بواجهة برمجة تطبيقات (API) حقيقية، فلديك مشكلة: يحتاج الوكيل (agent) إلى بيانات الاعتماد ومدير كلمات المرور الخاص بك يريد الاحتفاظ بها مغلقة بإحكام. الحلول البديلة المعتادة سيئة. لصق مفتاح API في محادثة يجعله يهبط في نافذة سياق النموذج إلى الأبد. وضع الأسرار في ملف .env سيؤدي إلى قيام أداة bash الخاصة بالوكيل بعرضها (cat) وشحنها إلى مكان ما. معظم الفرق ببساطة تخفض معاييرها.
مشروع Bitwarden الجديد مفتوح المصدر، Agent Access، هو المحاولة الجادة الأولى لإصلاح هذه المشكلة. إنه بروتوكول لمشاركة بيانات الاعتماد، وواجهة سطر أوامر (CLI) باسم (aac)، وحزمة تطوير برمجيات (SDK) بلغة Rust + Python تقوم ببناء نفق مشفر بين مدير كلمات المرور الخاص بك وعملية بعيدة: وكيل، أو مُشغل CI، أو سكريبت. يحصل الوكيل على الأسرار التي يحتاجها، والمحددة النطاق لنطاق واحد أو عنصر قبو، دون رؤية قبوك أبدًا.
يرشدك هذا الدليل عبر ما يقدمه Agent Access، وكيفية تثبيته، وكيفية استخدام aac connect و aac run، وكيف يتناسب مع سير عمل Claude Code و Codex و Cursor، وموقعه بجانب أنماط نظافة بيانات الاعتماد التي تم تناولها في كيفية تأمين بيانات اعتماد واجهة برمجة تطبيقات وكيل الذكاء الاصطناعي (AI Agent API).
ما هو Agent Access (فقرة واحدة)
Agent Access هو بروتوكول مفتوح بالإضافة إلى تطبيق مرجعي تم بناؤه بواسطة Bitwarden ولكنه مصمم لأي مدير كلمات مرور لتبنيه. تقوم واجهة سطر الأوامر (CLI) باسم (aac) بإنشاء نفق مشفر من طرف إلى طرف باستخدام بروتوكول Noise. "المزود" (provider) يستمع لطلبات الاتصال؛ "المستهلك" (consumer) (وكيلك، سكريبتك، مهمة CI الخاصة بك) يتصل بالمزود ويطلب بيانات الاعتماد حسب النطاق أو معرف عنصر القبو. يقرر المزود ما يجب إرساله مرة أخرى. لا يرى المستهلك أبدًا القبو بالكامل. لا يرى المزود أبدًا ما يفعله المستهلك ببيانات الاعتماد. تعيش سجلات التدقيق (Audit trails) على كلا الجانبين.

هو حاليًا في معاينة مبكرة. يحذر ملف README للمشروع من أن "واجهات برمجة التطبيقات والبروتوكولات قابلة للتغيير" و"لا نوصي بإدخال بيانات الاعتماد الحساسة مباشرة في LLMs أو وكلاء الذكاء الاصطناعي". النمط الذي يوصي به Bitwarden بدلاً من ذلك هو محور نصف هذا الدليل: حقن البيئة (environment injection) عبر aac run، والذي يدخل الأسرار إلى عملية دون تعريضها لنافذة سياق الوكيل.
لماذا هذا مهم في عام 2026
تجاوزت وكلاء برمجة الذكاء الاصطناعي (AI coding agents) حدود بيئات الاختبار المعزولة. الآن تقوم Claude Code و Codex و Cursor والبقية بقراءة مستودعاتك، وتشغيل اختباراتك، والوصول إلى واجهات برمجة تطبيقاتك، ونشر تعليماتك البرمجية. كل خطوة من هذه الخطوات تتطلب بيانات اعتماد. أظهرت حادثة مفاتيح API المكشوفة في Postman مدى سوء مقياس نظافة بيانات الاعتماد عندما يكون البشر وحدهم مهملين؛ البشر بالإضافة إلى الوكلاء أسوأ.
الإجابة الصحيحة ليست "ثق بالوكيل أكثر"؛ بل هي "أعطِ الوكيل أقل". يقوم Agent Access بذلك على مستوى البروتوكول: بيانات اعتماد محددة النطاق، مشفرة أثناء النقل، يتم جلبها في وقت التشغيل، وتختفي عند إنهاء العملية. بالمقارنة مع الممارسات الحالية (أدوات إدارة مفاتيح API تغطي بقية المشهد)، فإن Agent Access هو أول ما تم بناؤه خصيصًا لحالة الوكلاء.
التثبيت
اختر نظامك الأساسي.
macOS (معالج Apple Silicon)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-macos-aarch664.tar.gz | tar xz
sudo mv aac /usr/local/bin/
macOS (معالج Intel)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-macos-x86_64.tar.gz | tar xz
sudo mv aac /usr/local/bin/
Linux (x86_64)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-linux-x86_64.tar.gz | tar xz
sudo mv aac /usr/local/bin/
Windows (x86_64)
قم بتنزيل aac-windows-x86_64.zip من صفحة الإصدار الأخير واستخرجه إلى أي دليل موجود في متغير PATH الخاص بك.
تحقق من التثبيت باستخدام aac --help. إذا كان Bitwarden CLI (bw) موجودًا أيضًا في متغير PATH الخاص بك، فسيستخدمه aac كموفر بيانات الاعتماد الافتراضي؛ وإلا قم بتمرير --provider example لاستخدام موفر العرض التوضيحي المدمج أثناء التجربة.
بدء سريع: الإقران وجلب بيانات الاعتماد
أمران. قم بتشغيل aac listen على الجهاز الذي يحتوي على قبوك، عادةً جهاز الكمبيوتر المحمول الخاص بك:
aac listen
يطبع المستمع رمز اقتران. على جانب المستهلك (الجهاز البعيد، أو مُشغل CI، أو مجرد غلاف آخر على نفس المضيف أثناء الاختبار)، قم بالإقران والجلب في استدعاء واحد:
aac connect --token <pairing-token> --domain github.com --output json
ستحصل على شيء مثل:
{
"credential": {
"notes": null,
"password": "alligator5",
"totp": null,
"uri": "https://github.com",
"username": "example"
},
"domain": "github.com",
"success": true
}
هذا الشكل من JSON هو العقد الثابت للبروتوكول. يمكن لسكريبتك تحليله بالطريقة التي يفضلها. للجلب بواسطة معرف عنصر القبو بدلاً من النطاق:
aac connect --id <vault-item-id> --output json
--id و --domain يستبعد أحدهما الآخر؛ اختر واحدًا. تمر رموز TOTP عبر نفس الحمولة عندما يكون عنصر القبو يحتوي على واحد مهيأ.
الميزة القاتلة: aac run لحقن البيئة
aac connect جيد عندما يعرف سكريبتك كيفية التعامل مع JSON. النمط الأكبر هو aac run: فهو يجلب بيانات اعتماد ويشغل العملية الفرعية الخاصة بك مع حقن الأسرار كمتغيرات بيئة. لا يتم إرسالها أبدًا إلى stdout، ولا إلى القرص، ولا تكون مرئية أبدًا لأي شيء قام بتشغيل aac.
حقن حقول محددة:
aac run --domain example.com --env DB_PASSWORD=password --env DB_USER=username -- psql
حقن كل حقل ببادئة AAC_:
aac run --domain example.com --env-all -- deploy.sh
دمج القيم الافتراضية مع التجاوزات:
aac run --domain example.com --env-all --env CUSTOM_PW=password -- deploy.sh
الحقول المتاحة هي username، password، totp، uri، notes، domain، و credential_id.
هذا هو النمط الذي يوصي به Bitwarden بنشاط لاستخدام وكيل الذكاء الاصطناعي: توجه Claude Code أو Codex إلى سكريبت يستدعي aac run، ولا يظهر السر أبدًا في سجل الوكيل. يرى النموذج الأمر aac run --domain api.stripe.com --env-all -- ./deploy.sh، وليس كلمة المرور. إذا سأل الوكيل لاحقًا "ما قيمة $STRIPE_API_KEY؟" فإن الإجابة هي "لا أستطيع رؤيتها" لأنه كان محدد النطاق للعملية الفرعية deploy.sh.
هذا هو نفس مبدأ العزل الذي تمت تغطيته في كيفية تأمين بيانات اعتماد واجهة برمجة تطبيقات وكيل الذكاء الاصطناعي، وقد تم تجسيده بأداة حقيقية.
حزم تطوير البرمجيات (SDKs) بلغة Python و Rust
إذا لم يكن استدعاء واجهة سطر الأوامر كافيًا (على سبيل المثال، كنت تقوم بتضمين Agent Access في تطبيقك الخاص)، فهناك روابط من الدرجة الأولى.
Python
from agent_access import RemoteClient
client = RemoteClient("python-remote")
client.connect(token="ABC-DEF-GHI")
cred = client.request_credential("example.com")
print(cred.username, cred.password)
client.close()
وحدة Python مدعومة بـ PyO3، لذا فإن العمل الشاق يبقى في Rust وتحصل على نفس تنفيذ بروتوكول Noise تحت الغطاء.
Rust
تعرض حزمة تطوير برمجيات Rust نفس واجهة RemoteClient كمكتبة من الدرجة الأولى. توجد التطبيقات المرجعية تحت examples/rust-remote/ في المستودع. استخدمها عندما تقوم بكتابة المستهلك في Rust مباشرةً. وهي شائعة في أدوات سطر الأوامر، ومُشغلات البناء (build runners)، وأي خدمة ترغب في توزيع ثنائيات مجمعة.
بالنسبة لفرق التطوير التي تقوم بالفعل بتوفير أدوات واجهة برمجة التطبيقات، يتناسب نمط SDK بشكل نظيف بجانب تكاملات HashiCorp Vault أو Azure Key Vault. لا يُعد Agent Access بديلاً لتلك الخدمات على مستوى المؤسسة، ولكنه أنسب لحالات استخدام أجهزة الكمبيوتر المحمولة للمطورين ومُشغلات CI.
التكامل مع وكلاء برمجة الذكاء الاصطناعي
Claude Code
اربط aac run بالسكريبت الذي يستدعيه Claude Code. مثال لمهمة نشر:
# deploy.sh
#!/usr/bin/env bash
aac run --domain prod.example.com --env-all -- ./run-deploy.sh
أضف هذا السكريبت إلى مشروعك، ووجه سير عمل Claude Code الخاص بك إليه، وسيستدعي الوكيل ./deploy.sh بدون بيانات اعتماد في الموجه. يوسع تكامل Claude Code GitHub Actions نفس النمط إلى CI: قم بتثبيت aac في المُشغل، وقم بإقرانه بموفر قبو Bitwarden يعمل على مستوى التحكم، وستورث GitHub Actions الخاصة بك بيانات الاعتماد المحددة النطاق في وقت المهمة.
OpenAI Codex
نفس النمط يعمل مع واجهة سطر الأوامر (CLI) الخاصة بـ Codex. تكشف طبقة استدعاء الأدوات في Codex الأوامر للنموذج؛ يصل السكريبت الذي يستدعيه النموذج إلى aac run وتبقى الأسرار خارج سياق النموذج. يغطي منشور Codex من هاتفك الأخير نطاق Codex الأوسع؛ هذه هي زاوية بيانات الاعتماد التي تتوافق معها.
Cursor
لأوامر Cursor الطرفية وسير عمل Composer، تعمل نفس السكريبتات المغلفة بـ aac run دون تعديل. تكمن قوة Cursor في التحرير المحلي، لذلك عادةً ما يعمل المستمع على نفس الجهاز.
OpenClaw (مهارة من منظومة Anthropic)
يقدم Agent Access مهارة OpenClaw رسمية جاهزة للاستخدام (يتواجد ملف SKILL.md في المستودع). بالنسبة للفرق التي تستخدم مهارات على غرار OpenClaw، يعد هذا هو التكامل الأكثر صقلًا اليوم: تعرف المهارة شكل البروتوكول، وتجلب بيانات الاعتماد، وتسلمها إلى أي أداة تابعة تكشفها المهارة. يغطي دليل مفاتيح API لـ OpenClaw قصة إدارة بيانات الاعتماد الأوسع لتلك المنظومة.
نموذج الأمان بكلمات بسيطة
ثلاث ادعاءات تستحق التحقق منها:
- التشفير من طرف إلى طرف عبر Noise. يتم تشفير حركة المرور بين المستهلك والمزود باستخدام إطار عمل بروتوكول Noise، وهو نفس عائلة المصافحة التي يستخدمها WireGuard و Signal. طبقة النقل ليست الحلقة الأضعف.
- بيانات الاعتماد محددة النطاق. لا يحصل المستهلك إلا على ما طلبه (نطاق واحد أو معرف عنصر قبو واحد). لا يمكنه تعداد القبو.
- لا توجد أسرار على قرص المستهلك افتراضيًا. يقوم
aac runبتمرير الأسرار عبر متغيرات البيئة إلى عملية فرعية؛ لا يتم كتابة أي شيء في ملف، لا يظهر أي شيء في الإخراج القياسي، لا يتم تسجيل أي شيء في سجل الأوامر (shell history).
ما لا يحميه Agent Access من:
- عملية مستهلك مخترقة. إذا كان الوكيل ضارًا أو مخترقًا، فإن بيانات الاعتماد المحددة النطاق ستتسرب. الدفاع هو النطاق، وليس البروتوكول.
- مزود مخترق. إذا تم اختراق قبو Bitwarden الخاص بك نفسه، فإن هذه الطبقة لا تفعل شيئًا من أجلك.
- إدخال الأسرار مباشرة في نافذة سياق نموذج اللغة الكبيرة (LLM). يوضح ملف README هذا صراحة: "لا نوصي بإدخال بيانات الاعتماد الحساسة مباشرة في LLMs أو وكلاء الذكاء الاصطناعي".
aac runهو الحل البديل.
نمط شائع: الوكيل يستدعي واجهة برمجة التطبيقات، Apidog يختبرها
هذا هو النمط الذي ستستقر عليه معظم الفرق:
- يكتب الوكيل الكود. يقوم Claude Code أو Codex أو Cursor بفتح طلب سحب (PR) يتصل بنقطة نهاية.
- يقوم CI بتشغيل الاختبارات. يستدعي مُشغل الاختبار الخاص بك
aac runلجلب مفتاح API، ويشغل مجموعة الاختبارات مقابل نشر تجريبي. - يتحقق Apidog من العقد. يقوم Apidog بتشغيل اختبار عقد OpenAPI كخطوة منفصلة في CI، وأيضًا عبر
aac run، وأيضًا بدون أن يرى الوكيل المفتاح.
النتيجة: الوكيل يشحن الكود، العقد ثابت، السر لا يغادر القبو أبدًا. يتوفر دليل العمل الأوسع لاختبار التغييرات التي يحركها الذكاء الاصطناعي في كيفية اختبار وكلاء الذكاء الاصطناعي الذين يستدعون واجهات برمجة التطبيقات الخاصة بك.
القيود والتحذيرات
- معاينة مبكرة. واجهات برمجة التطبيقات والبروتوكولات قابلة للتغيير. لا تربط سير عمل إنتاجي ببروتوكول v0 بدون ميزانية لإعادة كتابة لاحقة.
- يتطلب Bitwarden CLI افتراضيًا. المزود الافتراضي هو
bw؛ قم بتثبيت Bitwarden CLI أولاً، أو مرر--provider exampleلموفر العرض التوضيحي أثناء الاختبار. - لا يوجد ملف إعداد حتى الآن. يتم تشغيل Agent Access حاليًا بواسطة الأعلام (flags). الاستدعاءات المتكررة تحتاج إلى برمجة حولها.
- لا تلصق الأسرار في موجهات LLM. حتى مع تثبيت Agent Access، إذا نسخت بيانات اعتماد إلى نافذة دردشة، فلا يمكن لأي بروتوكول أن ينقذك.
أسئلة شائعة
هل Agent Access مجاني؟
نعم. واجهة سطر الأوامر (CLI) وحزم تطوير البرمجيات (SDKs) والبروتوكول مفتوحة المصدر تحت مظلة منظمة Bitwarden على GitHub. ما زلت تدفع مقابل Bitwarden إذا كنت تستخدمه كقبو لك.
هل يعمل مع مديري كلمات مرور آخرين غير Bitwarden؟
تم تصميم البروتوكول ليكون محايدًا للموردين. يأتي التطبيق المرجعي مع دعم Bitwarden وموفر مثال؛ من المتوقع أن يقدم الموردون الآخرون موفريهم بمرور الوقت.
هل يمكنني استخدامه بدون مدير كلمات مرور على الإطلاق؟
للاختبار، نعم؛ مرر --provider example لاستخدام موفر العرض التوضيحي المدمج. للإنتاج، تحتاج إلى موفر حقيقي (Bitwarden اليوم، وآخرون في خطة العمل).
هل تحتاج عملية المستهلك إلى الوصول إلى الشبكة؟
يحتاج المستهلك إلى الوصول إلى الشبكة للوصول إلى مستمع المزود. تعمل الإعدادات المحلية فقط إذا كان المستمع والمستهلك على نفس المضيف.
كيف يختلف هذا عن ملف .env؟
ملف .env يجلس على القرص، ويتم إيداعه في المستودعات عن طريق الخطأ، ويمكن قراءته بواسطة أي شيء يمكن للوكيل تشغيله. يحافظ aac run على السر في ذاكرة العملية فقط، ومحدد النطاق للعملية الفرعية، ويختفي عند خروجه.
هل يحل محل HashiCorp Vault أو AWS Secrets Manager؟
لا. لا تزال خزائن الشركات هي الأداة الصحيحة للأسرار بين الخدمات على نطاق واسع. يسد Agent Access الفجوة في أجهزة الكمبيوتر المحمولة للمطورين ومشغلات CI، حيث يكون استخدام خزانة مؤسسية كاملة مبالغًا فيه.
هل ستقوم Anthropic أو OpenAI أو غيرها من شركات الوكلاء بدمج هذا مباشرة؟
لم يُعلن بعد. نموذج التكامل الحالي هو "تغليف السكريبتات الخاصة بك في aac run". الدعم المباشر من الدرجة الأولى من موردي الوكلاء هو الخطوة الطبيعية التالية ولكنه لم يتم شحنه بعد.
أين أبلغ عن الأخطاء أو أساهم؟
مستودع GitHub. تحدث المشكلات وطلبات السحب (PRs) ومناقشات البروتوكول جميعها هناك.
جربها الآن
قم بتثبيت aac، وشغل aac listen على جهاز الكمبيوتر المحمول الخاص بك، وشغل aac connect --provider example --domain test.com --output json من طرفية أخرى. تأكد من عودة JSON. هذه هي أصغر حلقة من طرف إلى طرف. من هناك، استبدل موفر المثال بـ bw، وقم بتغليف سكريبت حقيقي في aac run، وتوقف عن لصق مفاتيح API في وكلاء الذكاء الاصطناعي لديك.
قم بإقران Agent Access مع Apidog لجانب اختبار واجهة برمجة التطبيقات في سير العمل، وسيكون لديك فصل نظيف: القبو يحمل السر، Apidog يختبر العقد، الوكيل يشحن الكود، ولا يغادر أي بيانات اعتماد جهازك بنص عادي.
