البث
البث يتيح لوكيلك إرسال الردود رمزاً برمز أثناء إنشاء LLM لها. يرى المستخدمون النص يظهر في الوقت الحقيقي بدلاً من انتظار الرد الكامل.
واجهة StreamSession
ابدأ بثاً بـ agent.stream():
interface StreamSession { delta(chunk: string): Promise<void>; // Send a chunk done(finalPayload: SendPayload): Promise<void>; // Complete the stream abort(): void; // Cancel the stream}الاستخدام الأساسي
const session = agent.stream(conversationId);// SDK sends a stream.start frame with an idempotency key
for await (const chunk of llmStream) { await session.delta(chunk); // Each delta is independently encrypted and sent}
await session.done({ type: "text", content: fullText,});// SDK sends stream.done with the full encrypted payload for persistenceمع OpenAI
agent.onMessage(async (msg) => { const session = agent.stream(msg.conversation_id);
const stream = await openai.chat.completions.create({ model: "gpt-4o", messages: [{ role: "user", content: msg.content }], stream: true, });
let fullText = "";
for await (const chunk of stream) { const delta = chunk.choices[0]?.delta?.content ?? ""; if (delta) { fullText += delta; await session.delta(delta); } }
await session.done({ type: "text", content: fullText, });});إلغاء بث
ألغِ بثاً إذا أرسل المستخدم رسالة جديدة أو حدث خطأ:
session.abort();// SDK sends a stream.abort frame; the client discards partial contentالتشفير
كل إطار delta مشفّر بشكل مستقل. هذا يعني أن كل جزء هو حمولة مشفرة قائمة بذاتها. إطار done النهائي يحمل الرسالة المشفرة الكاملة للتخزين من جانب الخادم.
الحدود
| القيد | القيمة |
|---|---|
| مدة البث القصوى | 5 دقائق |
| مهلة كشف اليتيم | 30 ثانية (بدون delta) |
| المجموعات الكبيرة (201-500 عضو) | البث معطّل |
إذا اكتشف الخادم مهلة بث، يرسل إطار stream.error. يُلغي SDK الجلسة ويُصدر الخطأ عبر onEvent. الوكيل يقرر ما إذا كان سيعيد البدء.
الخطوات التالية
- Artifacts — أرسل تفاعلات منظّمة
- إرسال الرسائل — أنواع الرسائل غير المتدفقة
- أحداث WebSocket — مرجع إطارات أحداث البث