AGENTO
v1.1.0 · التوثيق
التوثيق/شغّل وشخّص/الأخطاء والتعافي

الأخطاء والتعافي

2026-10-15·المصدر 4bebed4·5 دقائق للقراءة·23 / 27

ستتعلم: حدد هل تصلح الـ Input، أم تبدأ خطوة جديدة، أم تتحقق مما حدث في API.

اختر بين الإصلاح والسؤال والتحديث والتحقق من التنفيذ

تفيد رموز الأخطاء عندما تقود إلى إجراء صحيح. ابدأ بالتفريق بين استثناء بدء التشغيل ونتيجة العملية. YAML غير الصالحة تفشل إنشاء Runtime، أما Selection المنتهية فتعود عادةً ضمن AgentResult بالقيمة status: "error".

عند خطأ في Config أو Mapping، صحح القواعد أو المسارات لتطابق متطلبات الـ API. وفي مدخل مستخدم غير صالح، وضّح قيد الحقل. وعند انتهاء Selection، اجلب خيارات جديدة. ولـ401 و403، استخدم تجربة تسجيل الدخول أو الصلاحيات. أما الكتابة التي ربما وصلت، فتحقق من حالتها لدى backend قبل اقتراح محاولة جديدة.

تتبّع انتهاء المهلة بعد الموافقة

تخيّل أن API قبلت POST الحجز، لكن الرد ضاع. بدء invocation جديد قد ينشئ حجزًا آخر. افحص error.details.executionMayHaveOccurred وسجل idempotency والاستعلام عن حالة العملية لدى API. النتيجة error لا تثبت أن Side Effect لم تحدث.

بالمقابل، غياب حقل قبل أي tool call لم يرسل الكتابة. استخدم meta.toolCalls وأحداث دورة الحياة لفهم المرحلة، وتعامل مع عدم اليقين كما يصرّح به Runtime.

يظهر RATE_LIMITED عند استنفاد حد الفترة الزمنية، وRATE_SESSION_LIMIT عند استنفاد حد الـ Session طوال عمرها. أما Response 429 من الـ API فتظهر باسم TOOL_RATE_LIMITED. تختلف معالجة ميزانية التطبيق عن معالجة سعة API.

استخدم الجداول التالية كمرجع بعد تحديد الحد الذي فشل. يبدأ استكشاف المشاكل من الأعراض.

بنية نتيجة الخطأ

تعيد عمليات Runtime الأخطاء على شكل بيانات:

{
  "status": "error",
  "error": {
    "code": "AUTH_REJECTED",
    "category": "AUTH",
    "message": "Upstream API rejected the request.",
    "details": {
      "status": 401
    }
  }
}

أما فشل الإعداد أو بدء التشغيل فيرمي AgentRuntimeError، لأن Runtime لم يتمكن من التهيئة بأمان.

الفئات

يستنتج AgentRuntimeError الفئة من بادئة رمز الخطأ:

CONFIG
MODEL
ROUTING
INPUT
SESSION
AUTH
TOOL
DEPENDENCY
CONFIRMATION
RATE
INTERNAL

أخطاء الإعداد الشائعة

الرمزالمعنى أو الإجراء التالي
CONFIG_INVALIDYAML أو بنية الإعداد غير صالحة، أو تم توفير أكثر من مصدر إعدادات.
CONFIG_SCHEMA_INVALIDJSON Schema للـ Tool غير مدعومة أو غير آمنة.
CONFIG_SECRET_MISSINGمفتاح اعتماد مطلوب لخدمة أو Provider غير متاح.
CONFIG_AUTH_INVALIDإعداد Auth أو النقل غير آمن.
CONFIG_URL_INVALIDURL الـ Tool يخالف قواعد الأمان في Runtime.
CONFIG_MAPPING_INVALIDتعارض في Mapping، أو قراءة بيانات غير معرّفة.
CONFIG_DEPENDENCY_INVALIDمصدر الـ Dependency أو وجهتها يخالف قواعد تعريفها.
CONFIG_DEPENDENCY_CYCLEتوجد حلقة دائرية في الـ Dependencies التلقائية.
CONFIG_CONFIRMATION_INVALIDTool ذات أثر لا تملك Confirmation المطلوب.

أخطاء Routing والـ AI Model

الرمزالمعنى أو الإجراء التالي
MODEL_NOT_CONFIGUREDتتطلب chat() أو صياغة النتائج بالـ AI Model وجود AI Model.
MODEL_PROVIDER_ERRORفشل الاتصال بطبقة Provider أو التعامل معها.
MODEL_RESPONSE_MALFORMEDتعذّر تحليل Response Provider أو الـ AI Model بأمان.
MODEL_SCHEMA_VIOLATIONاختيار الـ Tool أو مدخلاتها يخالف Schema المتوقعة.
MODEL_TOOL_SELECTION_FAILEDاختار الـ AI Model Tool خارج مجموعة المرشحين المسموحة.
ROUTING_NO_MATCHلم تتطابق أي Tool، والمحادثة معطّلة.

أخطاء الـ Input والاستكمال

الرمزالمعنى أو الإجراء التالي
INPUT_SCHEMA_VIOLATIONالـ Input المقدّمة تخالف Schema الـ Tool.
INPUT_SELECTION_STALEانتهت صلاحية Selection أو لم يعد يطابق السياق. حدّث الخيارات.
INPUT_SELECTION_INVALIDالخيار ليس ضمن المجموعة الحالية.
CONFIRMATION_STALEانتهت صلاحية Confirmation، أو تغيّرت العملية المجهّزة أو السياق. جهّز العملية مجددًا.

أخطاء Auth والـ Session

الرمزالمعنى أو الإجراء التالي
AUTH_REQUIREDبيانات اعتماد الخدمة المطلوبة غير متاحة.
AUTH_REJECTEDأعادت API المستقبِلة 401 أو 403. يحدد التطبيق المضيف تجربة تسجيل الدخول أو الصلاحيات.
SESSION_ID_INVALIDصيغة Session ID غير صالحة.
SESSION_EXPIREDانتهت TTL للـ Session أو تغيّرت الإعدادات. ابدأ مسارًا جديدًا.
SESSION_CAPACITYامتلأت سعة الـ Sessions في الذاكرة. نظّف الـ Sessions أو استخدم تخزينًا مشتركًا.
SESSION_RUNTIME_DISPOSEDأُغلق Runtime. توقّف عن إرسال الطلبات إليه.

أخطاء الـ Tools والنقل

الرمزالمعنى أو الإجراء التالي
TOOL_ABORTEDإلغاء من التطبيق المضيف أو abort signal.
TOOL_TIMEOUTتجاوزت الخدمة المستقبِلة المهلة.
TOOL_NETWORK_ERRORفشل النقل قبل الحصول على Response آمنة.
TOOL_REDIRECT_BLOCKEDحاولت الخدمة إجراء redirect. صحّح REST Endpoint في الإعدادات.
TOOL_CLIENT_ERRORخطأ 4xx غير متعلق بالـ Auth. راجع متطلبات الـ API والقيم المرسلة.
TOOL_RATE_LIMITEDأعادت الخدمة 429. أعد المحاولة وفق سياستك فقط.
TOOL_SERVER_ERRORخطأ 5xx من الخدمة. قد يخضع لإعادة المحاولة الآمنة أو circuit breaker.
TOOL_RESPONSE_MALFORMEDالـ Response المعلنة كـJSON غير سليمة.
TOOL_OUTPUT_LIMITتجاوزت الـ Response الحد الأقصى بالبايت.
TOOL_OUTPUT_SCHEMA_VIOLATIONخالفت الـ Response Output Schema المعلنة.
TOOL_CIRCUIT_OPENأوقف الـ Circuit Breaker الطلبات مؤقتًا بسبب تكرار الأعطال.
TOOL_EXECUTION_UNCERTAINربما وصلت عملية سابقة ذات أثر إلى backend. تحقّق من النتيجة قبل Retry.

لا تكرّر عملية غير محسومة بلا تحقق

إذا حمل الخطأ details.executionMayHaveOccurred: true أو TOOL_EXECUTION_UNCERTAIN، فلا تعتبر عدم وصول نجاح للعميل دليلًا على أن backend لم ينفّذ شيئًا. استعلم عن حالة العملية، أو طابقها باستخدام idempotency وسجل التدقيق لديك.

رسائل الأخطاء محدودة عمدًا

يتجنّب AGENTO كشف bodies عشوائية من Responses Providers أو API ضمن تفاصيل الخطأ. احتفظ بالسجلات التشغيلية الحساسة داخل بنيتك الموثوقة، وليس في الرسائل الموجّهة للمستخدم.