الانتقال إلى المحتوى الرئيسي
يرمي التشغيل الفاشل خطأً أو يعيده من استدعاء التشغيل أو المتابعة. أما التوقف المؤقت (waiting_for_human) أو شرط الإيقاف (stopped) فليس خطأً: كلاهما يعيد نتيجة عادية. يختلف حسب اللغة أي الإخفاقات ترسل أيضًا الحدث run.failed، لذا لا تعتمد على الحدث وحده لاكتشاف الفشل.

كيف يظهر التشغيل الفاشل

أي الأحداث تُطلق عند حدوث فشل

تسرد صفحة خطافات دورة الحياة كل الأحداث.

اعثر على سبب الخطأ

أنواع الأخطاء في TypeScript

يتضمن AgentGatewayError الحقول status وstatusText وheaders وbody وrequestId وgenerationId وreason وerrorType وerrorOrigin وfailedProviders وfailedStatuses وتشخيصات التوجيه. تحتفظ عمليات التشغيل والخطوات الفاشلة بالتفاصيل نفسها في errorDetails. الفشل في منتصف استجابة مبثوثة هو AgentStreamError، وهو صنف فرعي يتضمن code وretryable. يتضمن AgentSchemaValidationError الحقل target بإحدى القيم tool_input أو tool_output أو tool_event أو agent_output، والحقل details مع خطأ المدقّق. تعامل مع هذه بوصفها إخفاقات في العقد، لا إخفاقات عابرة في النموذج. لتصنيف أي خطأ، مثلًا في modelRetry.retryOn، استخدم agentErrorIsRetryable(error) وagentRetryAfterMs(error) وagentErrorIsContextOverflow(error).

نوع الخطأ في Rust

كل فشل وقت التشغيل هو AgentError؛ اقرأه عبر message(). تُحوَّل قيم PhaseoError من Gateway إلى AgentError، لذا إذا احتجت إلى حالة Gateway الأصلية ومحتوى الاستجابة، فاستدعِ العميل phaseo مباشرة أو نفّذ ModelClient مخصصًا يحتفظ بهما.

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

افتراضيًا، يُفشل خطأ الأداة التشغيل. اضبط سياسة الخطأ للأداة على return-to-model عندما يمكن للنموذج أن يجرّب شيئًا آخر بشكل معقول: يصبح الخطأ نتيجة الأداة {"error": "..."} ويستمر التشغيل. أبقِ القيمة الافتراضية fail-run للإخفاقات غير الآمنة أو غير القابلة للاستعادة.

تعامل مع الإلغاء والمهلات

لا توقف مهلة الأداة أو إلغاؤها دائمًا عمل الأداة نفسه. امنح استدعاءات HTTP وقواعد البيانات والعمليات داخل الأدوات مهلها الخاصة، وتعامل مع التشغيل الملغى أو المنتهية مهلته على أنه منتهٍ ما لم يبدأ تطبيقك تشغيلًا جديدًا.

تعافَ من تشغيل TypeScript متقطّع

إذا تعطّل تشغيل أو أُلغي في منتصف خطوة، فقد يحتوي سجله على استدعاءات أدوات دون نتائج، وهو ما يرفضه المزوّدون. تجيب continueRun() في TypeScript عنها بأنها لم تُنفَّذ وترسل history.repaired. استدعِ repairToolHistory(messages) بنفسك إذا أعدت استخدام الرسائل في مكان آخر.

تحقّق من هذه أولًا

  • يصل PHASEO_API_KEY إلى العملية ويُمرَّر إلى عميل Gateway.
  • لكل أداة معرّف فريد وثابت.
  • تستخدم الموافقات والرفض ومخرجات الأدوات معرّفات استدعاءات الأدوات بدقة، ولا تحل رسالة إدخال بشري محل مخرجات أداة أبدًا.
  • تُحفظ نتيجة التشغيل كاملة قبل أن تعرض واجهة الموافقة أو تسلّم التحكم إلى طلب أو عامل آخر.
  • المدقّقات حتمية وخالية من الآثار الجانبية، لذا يمكن إعادة محاولة الفحص الفاشل بأمان.
  • إعادة محاولات النموذج محدودة؛ ولا ينبغي إعادة محاولة إخفاقات التحقق والموافقة دون تمييز.
لمعرفة أي خطوة فشلت، سجّل step.started وmodel.requested وtool.failed باستخدام خطافات دورة الحياة، وراجع المراقبة لمعرفة المعرّفات التي تربط خطوة بسجلات Gateway.
آخر تعديل في ٥ نوفمبر ٢٠٢٦