
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
الخطوة 3 من وكيلك تُولّد الرموز. الخطوة 4 تحتاج البدء باستهلاكها قبل انتهاء الخطوة 3. مرِّر مخرجات النموذج مباشرةً إلى مسار؛ العمليّة التالية تطلب نفس المسار بـ curl. لا أنابيب SSE، لا وسيط، لا تعامل مع callbacks — البايتات تتحرّك بسرعة الخط.
# stream tokens upwardai.generate([ stream: true]) | curl -T - \ /pipe/tokensلا حاجز · لا وسيط · لا إعادة ترميز
# read at line speedcurl \ /pipe/tokens \ | jq -c .delta | apply()# بلا عازل بيننامعظم حُزم البثّ تحتاج نقطة نهاية SSE وطابوراً وحافلة pub/sub وcallback من الإطار لتحريك الرموز أربع أقدام. الأنبوب يستبدل كل ذلك: المُنتِج يكتب إلى مسار بـ PUT، المستهلِك يقرأ من نفس المسار بـ GET. البايتات تتدفّق مباشرةً بين الاثنين — لا تخزين وسيط على الخادم.
curl -T - /pipe/tokenscurl /pipe/tokensتخزين على الخادم: صفر. البايتات تبثّ من المرسِل إلى المستقبِل لحظة اتّصالهما، مع ضغط عكسي لكل مستقبِل. نقطة النهاية موجودة فقط لأن أمرَي curl لمساها.
# Step 3 — agent generates and pipes tokens upward.
ai.generate({ model, stream: true }) \
| jq -c '{delta: .text}' \
| curl -T - https://pipe.hoody.com/api/v1/pipe/run-42/tokens?n=3
# Step 4 — three readers GET the same path. The pipe fans out.
curl https://pipe.hoody.com/api/v1/pipe/run-42/tokens?n=3 | tee evaluator.log
curl https://pipe.hoody.com/api/v1/pipe/run-42/tokens?n=3 | jq -c .delta
curl https://pipe.hoody.com/api/v1/pipe/run-42/tokens?n=3 | websocketd --port=8080
# All four processes block until the n=3 readers connect, then bytes flow.PUT يدفع البايتات للأعلى، GET يسحبها للأسفل. مُعامل ?n يقول كم قارئاً ينتظر؛ الأنبوب يُحاصَر حتى يتّصل ذلك العدد، ثم يتفرّع في الوقت ذاته. لا SDK عميل، لا وسيط، لا تثبيت SDK — فقط HTTP.
حالما يُمرّر المُنتِج، أيّ شيء يتحدّث HTTP يستطيع الاشتراك. حتى 256 قارئاً على نفس البثّ، يتفرّعون عبر الأنبوب مع ضغط عكسي لكل مستقبِل. لا مكتبة عميل لتثبيتها، لا relay لتوفيره.
قارئ EventSource أو fetch يصل إلى مسار الأنبوب فيحصل على نفس بثّ البايتات الذي يُنتجه الوكيل. لا تأطير SSE على خادمك — الأنبوب يحمل البايتات التي يبثّها النموذج، خاماً.
عمليّة مُقيِّمة تشترك في نفس المسار. تستطيع مقاطعة المُنتِج لحظة انحراف المخرَج. وكيلان على نفس السلك، لا إطار تنسيق يتوسّط بينهما.
مستهلِك تسجيل يقرأ ويضغط ويكتب على القرص. واجهة مُنقِّح تقرأ بالتوازي. لا أحد منهم يعرف بالآخرين — الأنبوب يُسلّم كل قارئ نفس البايتات.
نموذج اللغة يبثّ. الأنبوب يبثّ. القارئ يبثّ. لا طبقة وسطى.
الأسلاك التي تمدّ يدك إليها حين تحتاج عمليّة لبثّ رموز إلى أخرى في الزمن الحقيقي. كلّ واحدة تُشحن بتأطيرها وSDK خاصّ بها وسطح عمليّاتها. الأنبوب هو السلك.
توقّف عن وصل بنية بثّ بين عمليّتَين تتحدّثان HTTP أصلاً. افتح مساراً. مرِّر إليه. اقرأ منه.