POST /v1/agents/{agent_id}/chat/stream يأخذ الطلب نفسه تمامًا الذي تأخذه نقطة نهاية الدردشة المتزامنة: نفس الجسم، نفس ترويستي Authorization وIdempotency-Key، نفس صلاحية full، نفس قواعد المحادثة والفوترة ورموز الأخطاء. الفرق الوحيد هو وسيلة النقل: الرد من نوع text/event-stream.
الأحداث
لكل حدث اسم ويحمل سطرdata واحدًا بصيغة JSON.
نص الاستدلال ونشاط الأدوات لا يكونان جزءًا من التدفق أبدًا.
response.completed يحمل دائمًا النص النهائي الكامل، لذا يستطيع العميل الذي فاتته بعض الأجزاء أن يعتمد عليه بدلًا من الأجزاء المتسلسلة.الأخطاء في التدفق
الإخفاقات قبل إنشاء التدفق (مفتاح غير صالح، خطأ تحقق،idempotency_conflict، conversation_busy، وكيل معطّل، حد معدل) هي أغلفة أخطاء JSON عادية بحالة HTTP الخاصة بها؛ تحقق من response.ok قبل أن تبدأ قراءة الأحداث.
بعد إرسال الترويسات تكون الحالة 200 بالفعل. الإخفاق بعد تلك النقطة (مثل insufficient_balance أو internal_error) يصل كحدث error، بنفس حقول الغلاف، ويغلق التدفق.
الانقطاع وإعادة المحاولة
العميل الذي يقطع الاتصال لا يوقف الرد: يستمر توليده وتخزينه، ويُكمَل سجل التكرار الآمن. إعادة المحاولة بنفسIdempotency-Key تبث response.created ثم مباشرة response.completed بالنتيجة المخزّنة؛ الأجزاء لا تُعاد. راجع التكرار الآمن.