إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
بناء وكلاء الذكاء الاصطناعي الآمن هو مسؤولية مشتركة بين إطار عمل العامل ومطوري التطبيقات. يوفر إطار عمل العامل الكتل الإنشائية - التجريدات والموفرين والتزامن - ولكن المطورين مسؤولون عن التحقق من صحة المدخلات وتأمين تدفقات البيانات وتكوين الأدوات بشكل مناسب للسيناريو الخاص بهم.
توضح هذه المقالة أفضل الممارسات لبناء عوامل آمنة وآمنة باستخدام إطار عمل العامل.
Tip
للحصول على دفاع محدد قائم على التسمية ضد الحقن الفوري واختراق البيانات، راجع أمان العامل باستخدام FIDES. تكمل FIDES أفضل الممارسات الاستدلالية في هذه الصفحة مع البرامج الوسيطة للتحكم في تدفق المعلومات التي تفرض النهج قبل تشغيل الأدوات الحساسة.
فهم حدود الثقة
تتدفق البيانات عبر عدة مكونات عند تشغيل عامل: إدخال المستخدم وموفري محفوظات الدردشة وموفري السياق وخدمة LLM وأدوات الوظائف. يمثل كل حد حيث تدخل البيانات أو تخرج التطبيق الخاص بك سطح هجوم محتمل.
حدود الثقة الرئيسية التي يجب مراعاتها:
- خدمة الذكاء الاصطناعي - تتلقى رسائل الدردشة (التي قد تتضمن PII وإرشادات النظام) وتعيد الإخراج الذي تم إنشاؤه بواسطة LLM.
- تخزين محفوظات الدردشة - قد يقوم الموفرون بتحميل رسائل المحادثة واستمرارها عبر التخزين الخارجي.
- خدمات السياق — قد يسترد موفرو السياق البيانات أو يخزنونها من الخدمات الخارجية (الذكريات وملفات تعريف المستخدمين ونتائج RAG).
- الخدمات التي يتم الوصول إليها باستخدام الأدوات — تنفذ أدوات الوظائف التعليمات البرمجية التي يوفرها المطور والتي قد تستدعي واجهات برمجة التطبيقات الخارجية أو قواعد البيانات.
تتم معالجة جميع اتصالات الخدمة الخارجية بواسطة حزم SDK للعميل التي يختارها المطور. لا يدير إطار عمل العامل تفاصيل المصادقة أو التشفير أو الاتصال لهذه الخدمات.
أفضل الممارسات
التحقق من صحة مدخلات الدالة
يمكن للذكاء الاصطناعي استدعاء أي وظيفة تقدمها كأداة واختيار الوسيطات. تعامل مع الوسيطات المقدمة من LLM كإدخل غير موثوق به، على غرار إدخال المستخدم في واجهة برمجة تطبيقات الويب.
-
استخدام قائمة السماح — تحقق من صحة المدخلات مقابل القيم الجيدة المعروفة بدلا من محاولة تصفية الأنماط السيئة المعروفة. على سبيل المثال، تحقق من أن مسار الملف داخل دليل مسموح به بدلا من التحقق من
..تسلسلات الاجتياز. - فرض قيود النوع والنطاق — تحقق من أن الوسيطات من النوع المتوقع وضمن النطاقات المقبولة (الحدود الرقمية وحدود طول السلسلة ونطاقات التاريخ).
- الحد من أطوال السلسلة — فرض الحد الأقصى من الأطوال على وسيطات السلسلة لمنع استنفاد الموارد أو هجمات الحقن.
- منع اجتياز المسار — عندما تقبل الوظائف مسارات الملفات، قم بحلها إلى مسارات مطلقة وتحقق من أنها تقع ضمن الدلائل المسموح بها.
- استخدم الاستعلامات ذات المعلمات — إذا تم استخدام الوسيطات في استعلامات SQL أو أوامر shell أو السياقات الأخرى المفسرة، فاستخدم الاستعلامات ذات المعلمات أو الهروب — لا تستخدم سلسلة السلسلة مطلقا.
طلب الموافقة على الأدوات عالية المخاطر
بشكل افتراضي، يتم استدعاء جميع الأدوات المقدمة إلى عامل دون موافقة المستخدم. استخدم آلية الموافقة على الأدوات لبوابة العمليات عالية المخاطر خلف التأكيد البشري.
عند تحديد الأدوات التي تتطلب الموافقة، ضع في اعتبارك:
- الآثار الجانبية — يجب أن تتطلب الأدوات التي تعدل البيانات أو ترسل الاتصالات أو تجري عمليات شراء أو لها آثار جانبية أخرى الموافقة بشكل عام.
- حساسية البيانات — تضمن الأدوات التي تصل إلى البيانات الحساسة أو ترجعها (PII، والبيانات المالية، وبيانات الاعتماد) الموافقة.
- القابلية للعكس - تعد العمليات التي لا رجعة فيها (الحذف وإرسال رسائل البريد الإلكتروني) أكثر خطورة من الاستعلامات للقراءة فقط.
- نطاق التأثير - يجب أن تتطلب الأدوات ذات التأثير الواسع (العمليات المجمعة) تدقيقا أكثر من تلك ذات النطاق الضيق.
الحفاظ على رسائل النظام التي يتحكم فيها المطور
تحمل رسائل الدردشة دورا (system، ، user، assistant، tool) يحدد كيفية تفسير خدمة الذكاء الاصطناعي لها. يعد فهم هذه الأدوار أمرا بالغ الأهمية:
| الدور | مستوى الثقة |
|---|---|
system |
أعلى ثقة — أشكال مباشرة سلوك LLM. يجب ألا تحتوي أبدا على إدخال غير موثوق به. |
user |
غير موثوق به — قد يحتوي على محاولات إدخال مطالبة أو محتوى ضار. |
assistant |
غير موثوق به — تم إنشاؤه بواسطة LLM، وهو نظام خارجي. |
tool |
غير موثوق به — قد يحتوي على بيانات من أنظمة خارجية أو محتوى يتأثر به المستخدم. |
لا تضع إدخال المستخدم النهائي في systemرسائل الدور- . يقوم إطار عمل العامل افتراضيا بتحديد دور النص user غير المصمم، ولكن كن حذرا عند إنشاء الرسائل برمجيا.
موفرو ملحق Vet
يمكن لموفري السياقوموفري المحفوظات إدخال الرسائل بأي دور، بما في ذلك system. إرفاق الموفرين الذين تثق بهم فقط.
كن على دراية بحقن المطالبة غير المباشر: إذا تم اختراق مخزن البيانات الأساسي، فقد يؤثر المحتوى المتطفل على سلوك LLM. على سبيل المثال، يمكن أن يحتوي المستند الذي تم استرداده عبر RAG على إرشادات مخفية تتسبب في انحراف LLM عن السلوك المقصود أو تسرب البيانات من خلال استدعاءات الأدوات.
التحقق من صحة إخراج LLM وتعقيمه
يجب التعامل مع استجابات LLM على أنها إخراج غير موثوق به. خدمة الذكاء الاصطناعي هي نقطة نهاية خارجية لا يتحكم فيها إطار عمل العامل. كن على علم بما يلي:
- هلوسة — قد تولد LLMs معلومات معقولة ولكنها غير صحيحة من الناحية الواقعية. لا تعامل إخراج LLM على أنه موثوق دون التحقق.
- حقن المطالبة غير المباشرة — قد تحتوي البيانات التي يتم استردادها بواسطة الأدوات أو موفري السياق أو موفري محفوظات الدردشة على محتوى متطفل مصمم للتأثير على LLM.
- حمولات ضارة — قد يحتوي إخراج LLM على محتوى ضار إذا تم عرضه أو تنفيذه دون تعقيم (HTML/JavaScript ل XSS وSQL للحقن وأوامر shell).
تحقق دائما من صحة إخراج LLM وتعقيمه قبل عرضه في HTML، أو تنفيذه كتعليمة برمجية، أو استخدامه في استعلامات قاعدة البيانات، أو تمريره إلى أي سياق حساس للأمان.
حماية البيانات الحساسة في السجلات
يدعم إطار عمل العامل التسجيل والقياس عن بعد عبر OpenTelemetry. يتم تسجيل البيانات الحساسة فقط عند تمكينها بشكل صريح:
-
التسجيل — على مستوى
Traceالسجل، يتم تسجيل المجموعة الكاملةChatMessages. يمكن أن يتضمن ذلك PII.Traceيجب عدم تمكين المستوى أبدا في الإنتاج. -
القياس عن بعد — عند
EnableSensitiveDataتعيينه، يتضمن القياس عن بعد النص الكامل لرسائل الدردشة بما في ذلك استدعاءات الوظائف والنتائج. لا تقم بتمكين هذا في الإنتاج.
تأمين بيانات الجلسة
تمثل الجلسات (AgentSession) سياق المحادثة ويمكن تسلسلها لاستمرارها. تعامل مع الجلسات المتسلسلة كبيانات حساسة:
- قد تشير جلسات العمل إلى محتوى المحادثة أو معرفات الجلسة.
- استعادة جلسة عمل من مصدر غير موثوق به يعادل قبول إدخال غير موثوق به. يمكن أن تغير الواجهة الخلفية للتخزين المخترق الأدوار لتصعيد الثقة.
- تخزين جلسات العمل في تخزين آمن مع عناصر التحكم والتشفير المناسبة للوصول.
تنفيذ حدود الموارد
لا يفرض إطار عمل العامل قيودا على طول الإدخال/الإخراج أو معدلات الطلب، لأنه لا يعرف ما هو معقول للسيناريو الخاص بك. أنت مسؤول عن:
- حدود طول الإدخال — تقييد طول الإدخال لمنع تجاوز السياق أو هجمات DoS.
-
حدود طول الإخراج — استخدم الحدود التي توفرها الخدمة (على سبيل المثال،
MaxOutputTokensفي خيارات الدردشة). - تحديد المعدل - استخدم مرافق تحديد المعدل لمنع تجاوز التكلفة وإساءة الاستخدام من الطلبات المتزامنة.
الخطوات التالية
المحتوى ذو الصلة
- أمان العامل مع FIDES — حقن المطالبة الحتمية والدفاع عن النقل غير المصرح للبيانات
- الموافقة على الأداة
- أدوات الدالة
- إمكانية المراقبة
- موفرو السياق