نظرة عامة
تتوفّر للنماذج اللغوية الكبيرة معرفة عامة واسعة، ولكنّها لا تعرف المقاييس المحدّدة لنطاقك أو مخططات قاعدة البيانات أو صيغ الحساب. وبدون هذا السياق، يخمن النموذج، ما يؤدي إلى إنشاء طلبات SQL غير صحيحة وتحليلات خاطئة.
يعالج وكيل RMI ADK هذا القيد من خلال المهارات. لنفترض أنّ مستخدمًا يسأل "ما هو مستوى الازدحام في Storrow Drive أمس؟". للإجابة، يجب أن يعرف الوكيل أنّ RMI يعبّر عن الازدحام على أنّه مؤشر وقت السفر (TTI)، وهو نسبة
duration_in_seconds المباشرة إلى static_duration_in_seconds في حالة عدم الازدحام في جدول
historical_travel_time. قد يبتكر الوكيل الذي لا يملك مهارات عمودًا باسم average_speed (لا يعرض RMI سوى السرعة الفئوية، وليس بالكيلومتر في الساعة) أو يطبّق صيغة خاطئة، ما يؤدي إلى تقديم إجابة واثقة ولكنّها خاطئة.
على الرغم من أنّ الوكيل يحتاج إلى هذه المعرفة بالنطاق، فإنّ وضع كل تعريفات المقاييس ومخططات الجداول والتحذيرات المتعلّقة بطلب SQL في طلب نظام واحد غير فعّال.
قيود طلبات النظام الكبيرة
يؤدي وضع كل قواعد النطاق ومخططاته في طلب نظام واحد إلى حدوث عدة مشاكل:
- تكاليف أعلى وردود أبطأ: يؤدي إرسال طلب ضخم في كل دورة إلى إهدار الرموز وزيادة وقت الاستجابة، حتى بالنسبة إلى الأسئلة التي لا تحتاج إلى هذه القواعد.
- صعوبة اتّباع التعليمات: كلما ازداد طول الطلب مع الحالات القصوى، يصبح من المرجّح أن يتجاهل النموذج قواعد معيّنة أو ينساها.
- صعوبة الصيانة: يؤدي دمج كل شيء في طلب واحد إلى صعوبة تعديل القواعد الفردية أو اختبارها بدون إيقاف القواعد الأخرى.
المهارات
تنظّم مهارات الوكيل المعرفة بالنطاق في مجلدات نموذجية لا يحمّلها الوكيل إلا عند الحاجة إليها. كل مهارة هي دليل يحتوي على ملف SKILL.md يتضمّن تعليمات بتنسيق Markdown وعنوان YAML.
بدلاً من تحميل كل شيء مسبقًا، لا يحتفظ الوكيل في طلب الأساس إلا بالوصف القصير description لكل مهارة. عندما يطرح المستخدم سؤالاً ذا صلة بمهارة معيّنة، يحمّل الوكيل التعليمات الكاملة لهذا الدور. يؤدي ذلك إلى الحفاظ على حجم الطلبات صغيرًا وتوفير مساحة السياق لسجلّ المحادثة الفعلي.
توفّر المهارات أيضًا فصلاً واضحًا للمهام: يمكنك كتابة القدرات الفردية واختبارها وتعديلها بشكل منفصل بدون المخاطرة بحدوث آثار جانبية غير مقصودة في نطاقات غير ذات صلة. يستخدم الوكيل في مرحلة الإنتاج عادةً مهارات متعدّدة ومركّزة بدلاً من طلب ضخم واحد.
شرح تفصيلي للمهارة
يحتوي ملف SKILL.md على جزأين: عنوان YAML للتوجيه ونص بتنسيق Markdown للتعليمات.
1- عنوان YAML
---
name: rmi-traffic-metrics-grounding
description: >
Standard traffic performance metrics computable from RMI BigQuery
tables. Covers congestion severity (TTI), delay, travel time
reliability (LOTTR, BTI, PTI, CoV), congestion frequency, speed
breakdowns, and network-wide congestion rates. Use when the user asks
about traffic conditions, congestion, reliability, delay, or network
health.
---
يستخدم النموذج description لتحديد ما إذا كان سيحمّل المهارة أم لا. بما أنّ النموذج لا يرى سوى هذا الوصف قبل أن يقرّر تحميل المهارة، تأكّد من أنّه يسرد بوضوح المواضيع التي يتم تناولها والعبارات النموذجية للمستخدمين ووقت تفعيلها.
2- نص بتنسيق Markdown
يقدّم النص الإرشادات الخاصة بالنطاق التي يتّبعها النموذج بعد تحميله.
يتضمّن نص مهارة مقاييس RMI صيغة مؤشر وقت السفر (TTI) الدقيقة (duration_in_seconds / static_duration_in_seconds) ونموذج SQL تم التحقّق منه في BigQuery لكل مقياس وعبارات التفعيل التي تربط هدف المستخدم بالمقياس الصحيح. يؤدي تقديم تعليمات منظّمة تم التحقّق منها إلى الحفاظ على استناد النموذج إلى الحقائق ومنعه من تخمين تفاصيل المخطط أو الصيغة.
تسجيل المهارات في "حزمة تطوير الوكلاء" (ADK)
يمكنك تجميع المهارات في SkillToolset وإضافتها إلى قائمة أدوات الوكيل:
from google.adk import skills
from google.adk.tools import skill_toolset
rmi_skill_toolset = skill_toolset.SkillToolset(
skills=[
# TRAFFIC_METRICS_SKILL_DIR points to the skill's SKILL.md folder.
skills.load_skill_from_dir(TRAFFIC_METRICS_SKILL_DIR),
],
)
# root_agent = llm_agent.Agent(..., tools=[*bq_tools, rmi_skill_toolset])
يشير TRAFFIC_METRICS_SKILL_DIR هنا إلى الدليل الذي يحتوي على مهارة الاستناد إلى الحقائق في مقاييس حركة المرور.
تجميع الأدوات مع المهارات
بما أنّ المهارات هي تعليمات نصية، فإنّ الاعتماد على النموذج وحده لتفسير المنطق المعقّد وتنفيذه قد يؤدي إلى حدوث حالات عدم اتساق. يؤدي إرفاق أدوات قابلة للتنفيذ بمهارة إلى توفير الحتمية: يعالج الرمز عمليات الحساب والتحقّق والتفاعلات مع واجهة برمجة التطبيقات الصارمة، بينما توجّه المهارة النموذج بشأن وقت استخدامها وكيفية ذلك.
يؤدي تجميع الأدوات أيضًا إلى تجنُّب تضخّم السياق العام. بدلاً من عرض كل أداة متخصّصة مسبقًا، يتم تحديد نطاق الأدوات بحيث لا يتم تحميلها إلا عندما تكون مهارة النطاق المقابلة نشطة.
يمكنك إرفاق أدوات معيّنة مباشرةً بمهارة في عنوان YAML الخاص بها:
metadata:
adk_additional_tools:
- calculate_custom_metric
يضمن ذلك حصول النموذج على مخطط الأداة وتعليمات استخدامها معًا في الوقت المناسب، ما يحافظ على حجم مجموعة الأدوات الأساسية صغيرًا.
مثال: الاستناد إلى الحقائق في طلب بحث عن الازدحام
- يسأل المستخدم "ما هو مستوى الازدحام في Storrow Drive خلال ساعة الذروة المسائية؟"
- لا يعلن طلب النظام الأساسي إلا عن اسم كل مهارة ووصفها، لذا يرى الوكيل أنّ
rmi-traffic-metrics-groundingتغطي "الازدحام" ويستدعيload_skillلجلب التعليمات الكاملة لهذا الطلب. - بعد تحميل المهارة، يطبّق الوكيل تعريف مؤشر وقت السفر (TTI) ونموذج SQL الذي تم التحقّق منه، ويحسب النسبة إلى
historical_travel_timeبدلاً من تخمين صيغة.
بما أنّه لا يتم جلب نص المهارة إلا عندما يحتاج إليه طلب بحث، فإنّ المهارات التي لا يستخدمها الوكيل لا تدخل السياق أبدًا، ما يحافظ على حجم طلب النظام الأساسي صغيرًا.
الخلاصات الرئيسية
- الاستناد إلى الحقائق باستخدام إرشادات النطاق: ننصحك بتقديم تعليمات وقيود ومنطق تجاري صريح بدلاً من الاعتماد على الافتراضات العامة للنموذج.
- استخدام مهارات نموذجية: ننصحك بتقسيم المعرفة إلى مهارات مركّزة بدلاً من طلب نظام ضخم واحد لتوفير الرموز وتقليل وقت الاستجابة وتحسين الدقة.
- كتابة أوصاف واضحة: ننصحك بتضمين عبارات التفعيل والكلمات الرئيسية المحدّدة في وصف كل مهارة حتى يحمّلها الوكيل بشكل موثوق.
- تضمين أمثلة ملموسة: ننصحك بإضافة أمثلة تم التحقّق منها وسير عمل مرجعي إلى نصوص المهارات للحفاظ على اتساق المخرجات ودقتها.
- تجميع الأدوات لتحقيق الحتمية: ننصحك بإرفاق أدوات قابلة للتنفيذ بالمهارات لمعالجة عمليات التحقّق والتنفيذ الصارمة مع الحفاظ على حجم مجموعة الأدوات الأساسية صغيرًا.
الخطوات التالية
- استكشاف أنماط المهارات المتقدّمة: ننصحك بقراءة دليل المطوّرين لإنشاء وكلاء "حزمة تطوير الوكلاء" (ADK) باستخدام المهارات للتعرّف على مهارات ADK.
المساهمون
ناثانيال توماس | متدرب في هندسة البرمجيات، منصة خرائط Google