
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
أطلقت وكيلاً مدّته أربعون دقيقة قبل مغادرة المكتب. الآن أنت في القطار. الوكيل يبثّ تتبّعه إلى مسار أنبوب؛ تطلب الرابط نفسه بـ curl من هاتفك وتشاهد رسائل الحالة تمرّ. عندما تنتهي الحلقة، hoody-notifications يهزّك. رابطان وهزّة — لا SDK، لا لوحة تحكم، لا polling.
tail مباشر في الأعلى، إشعار push في الأسفل — نفس الهاتف، نفس الوكيل. التتبّع هو المونولوج الجاري الذي تنظر إليه؛ الإشعار هو نقطة النهاية. لا تضطرّ لاختيار أيّهما توصّله: كلاهما يأتي من الوكيل، كلاهما يهبط على الجهاز الموجود في جيبك أصلاً.
حلقة وكيلك تُمرّر كلّ حدث إلى مسار بـ PUT. من القطار، تُرسل GET إلى المسار نفسه في تطبيق طرفيّة. الأسطر تهبط بمجرّد حدوثها — لا تحديث كلّ خمس ثوانٍ، لا ختم "آخر تحديث". تنظر إلى الشاشة، ترى أنّ الوكيل حيّ، وتضع الهاتف.
عندما تنتهي الحلقة الخارجيّة، آخر استدعاء للوكيل يُرسل إلى hoody-notifications مع ملخّص بسطر واحد. هاتفك يهتزّ. لا تفتح القفل — تقرأ اللافتة، وتعرف أنّ التشغيل اكتمل قبل أن تصل إلى المحطّة التالية.
Hoody Pipe يحمل tail المباشر؛ hoody-notifications يحمل الهزّة. الوكيل يعاملهما كأيّ استدعاء HTTP آخر — PUT و POST، لا SDK في المنتصف.
الوكيل يعمل على خادم أعددته قبل المغادرة. أثناء تنقّلك، هاتفك هو العميل الوحيد في الحلقة. الوكيل يقوم بكلّ العمل؛ الهاتف يقوم بكلّ المشاهدة.
داخل الحلقة، كلّ حدث — think، tool_use، result — يُمرَّر إلى مسار واحد. الأنبوب يبثّ إلى من يقرأ؛ إن لم يكن أحد يقرأ بعد، المسار يبقى مفتوحاً حتى خمس دقائق.
PUT https://agent-pipe.…hoody.com/api/v1/pipe/agent-traceافتح طرفيّة على الهاتف. curl -N للمسار. التتبّع يُطبع وهو يهبط — لا أنابيب SSE، لا وسيط، لا تطبيق للتثبيت. أغلق التبويب عندما لا تريد النظر بعد الآن.
$ curl -N https://agent-pipe.…hoody.com/api/v1/pipe/agent-traceعندما تعود الحلقة الخارجيّة، الوكيل يُرسل ملخّصاً بسطر واحد إلى hoody-notifications. هاتفك يحصل على push النظام من هناك — نفس الهزّة كتذكير تقويم، لا تطبيق مطلوب.
POST /notify ["summary":"billing-reconcile-7","body":"completed in 41:08"]مساران HTTP وثالث للهزّة. الوكيل لا يعرف أنّ هاتفك موجود؛ يتحدّث HTTP فقط. الهاتف لا يعرف حاوية الوكيل؛ يفتح رابطاً فقط.
لا تقرأ كلّ كلمة. تمسح ثلاثة رموز: فكرة، استدعاء، نتيجة. إن كانت تتحرّك، الوكيل حيّ. إن توقّفت، تتحقّق من الوقت في push التالي.
لماذا اختار الوكيل هذه الأداة، ما الذي يتوقّعه بالعودة، أين قد يتفرّع. قراءة هذه في القطار هي قراءة عقل الوكيل في الزمن الحقيقيّ — سطر واحد لكلّ خطوة تفكير.
[think] مطابقة الفواتير من أجل يوليوالدالّة الدقيقة والوسائط التي قرّر الوكيل استدعاءها. سطر واحد لكلّ استدعاء، بترتيب إطلاقها. لا تجريد SDK، لا معرّف غامض — فقط الطلب على مستوى السلك.
[tool_use] sql.exec("SELECT …")أعداد صفوف، مدد، رموز حالة — الأشياء التي سيفكّر فيها سطر [think] التالي. عندما تنتهي الحلقة الخارجيّة، النتيجة النهائيّة تهبط على السلك ويهزّ hoody-notifications الهاتف في جيبك.
[result] 412 rows · 88 msهاتفك هو شريط حالة الوكيل.
لا لوحة تحكم. لا تطبيق. لا SDK مُرسَل إلى الجهاز. الوكيل يعمل على خادم، الحالة تعيش على هاتفك، والشيء الوحيد بينهما هو HTTP. تستطيع تبديل القطارات، تبديل المُشغِّلين، فقدان الإشارة لمحطّتين — عندما تعود للاتصال، سطر [result] التالي يستمرّ بالطباعة.
مشاهدة وكيل طويل المدى عنت تاريخيّاً SaaS، أو تبويب لوحة تحكم، أو webhook + bot مخصّص. لا شيء من ذلك يصمد أمام السؤال "ماذا لو طلبته فقط بـ curl من هاتفي؟".
مرّر التتبّع، أرسل الهزّة. هاتفك هو شريط حالة الوكيل — لا تطبيق مطلوب.