الانتقال إلى المحتوى الرئيسي
عرّف أداة عندما يحتاج الوكيل إلى قراءة بيانات التطبيق، أو استدعاء خدمة داخلية، أو تنفيذ إجراء. يستدعي النموذج الأداة بمعرّفها؛ فتتحقق الحزمة من الوسائط، وتشغّل شيفرتك داخل عمليتك، وتعيد النتيجة في الدور التالي.

عرّف أداة

حقول الأداة

تأخذ المخططات المدقّق الأصلي لكل لغة: في TypeScript دالة أو كائن يتضمن parse() أو safeParse()؛ وفي Python دالة قابلة للاستدعاء أو نموذج Pydantic أو كائن يتضمن parse أو safe_parse؛ وفي غيرهما دالة أو كائن قابل للاستدعاء يعيد القيمة أو يرمي استثناءً.

ما الذي تفعله المهلة

يؤدي استدعاء معرّف أداة غير موجود في قائمة الأدوات الحالية إلى فشل التشغيل (unknown tool في Go، وUnknown tool '<name>' في C# وPHP وRuby وJava، وUnknown tool: <name> بوصفه AgentError في Rust). في TypeScript مع return-to-model، يُجاب عن الأداة غير المعروفة أو الوسائط غير القابلة للقراءة كخطأ أداة بدلًا من ذلك.

اشترط الموافقة

اضبط علم الموافقة للأداة على true، أو امنحها دالة تقرر لكل استدعاء. أما دالة الموافقة على مستوى الوكيل، حيث تتوفر في اللغة، فتنطبق على كل الأدوات وتتجاوز كليهما. يوقف الاستدعاء المشروط التشغيل مؤقتًا بالحالة waiting_for_human؛ وافق عليه أو ارفضه بمعرّف الاستدعاء كما في الحالة والموافقة.

سلّم استدعاءً إلى شخص أو نظام آخر

لا تملك الأداة اليدوية منفّذًا: يتولى تطبيقك أو طابور أو خدمة أخرى العمل. أما الأداة التفاعلية فتشغّل خطافًا يمكنه التوقف بانتظار شخص. كلاهما يوقف التشغيل مؤقتًا حتى تتابعه بمخرجات أداة لمعرّف الاستدعاء؛ راجع الحالة والموافقة. إذا أعاد الخطاف التفاعلي قيمة بدلًا من ذلك، تصبح نتيجة الأداة فورًا. بعد المتابعة، يمكن لـ onResponseReceived (أو ما يعادله في اللغة) التحقق من المخرجات المقدَّمة أو تحويلها قبل أن يفحصها مدقّق المخرجات. لا تأخذ الأداة الخارجية في Rust منفّذًا:
إذا جمع دور واحد للنموذج بين أدوات تلقائية وأخرى معلّقة، يشغّل وقت التشغيل الأدوات التلقائية قبل أن يعيد التوقف المؤقت.

أبلغ عن التقدّم وحدّث السياق

يمكن للأداة نشر نتائج أولية أثناء عملها واستبدال سياق التطبيق للأدوار اللاحقة. يظهر التقدّم بوصفه أحداث tool.preliminary_result (راجع البث)، ويُفحص بمدقّق الأحداث عندما تضبطه.

تعافَ من أخطاء الأدوات

افتراضيًا، يُفشل الخطأ الصادر من أداة التشغيل ويُعاد رميه. اضبط سياسة الخطأ للأداة على return-to-model لإعادة الخطأ بوصفه نتيجة الأداة ({"error": "..."}) كي يتمكن النموذج من تجربة شيء آخر. أبقِ القيمة الافتراضية للإخفاقات غير الآمنة أو غير القابلة للاستعادة. في TypeScript، تحدّ toolExecution.maxOutputChars مقدار ما يراه النموذج من مخرجات الأداة؛ وتحتفظ المخرجات الأطول ببدايتها ونهايتها حول إشعار.

شغّل الأدوات بالتزامن

عندما يستدعي دور واحد للنموذج عدة أدوات مستقلة، اضبط حدًّا للتزامن لتشغيلها في الوقت نفسه. تشغّل Go وC# وRuby وJava الأدوات واحدة تلو الأخرى حتى تفعل ذلك. تُلحق النتائج بترتيب استدعاءات النموذج، أيًّا كان ترتيب انتهائها. في Go وC#، إذا ضبطت عدة أدوات متزامنة السياق، فإن الأخيرة في ترتيب الاستدعاء هي التي تسود.
آخر تعديل في ٥ نوفمبر ٢٠٢٦