lousho هي هذه الحلقة وهذه الإجابات مدمجة فيها. مكتبة، لا web framework ولا hosted runtime: حلقة استدعاء tools من نوع typed، مع approvals (موافقات) و sessions (جلسات) و streaming و sub-agents و skills و MCP و CLI. والـ agent نفسه يعمل في سكربت، أو سيرفر Node، أو حاوية Docker، أو Cloudflare Worker (الـ Worker يدعم جزءًا فقط من الـ providers والـ tools).
ما يميّزها
تسجيل وإعادة تشغيل واكتشاف الانحراف
lousho eval --record يحفظ run حقيقي لكل حالة مع الـ provider في cassette، و--replay يشغّلها في CI بدون شبكة ولا مفتاح، و--drift يعيد التسجيل ويوضّح كيف تغيّر مسار استدعاءات الـ tools. وdefineEval() يتحقق من الـ tools التي استُدعيت، وبأي ترتيب، وبأي معاملات.Approvals متينة على stores عندك
الـ sessions والـ checkpoints وتوقفات الـ approval محفوظة في الذاكرة، أو ملفات، أو ملف SQLite واحد، أو Cloudflare KV. والـ run المتوقف مؤقتًا أو المنقطع يستأنف من طلب آخر أو عملية أخرى، حتى على Worker.
agent واحد وواجهات كثيرة
lousho build ينشر الـ agent على سيرفر Node أو Docker أو Worker؛ وlousho acp يقدّمه للمحررات، وserveMcp لعملاء MCP. وكل run يصدر spans وفق OpenTelemetry GenAI مع استهلاك الـ tokens والتكلفة بالدولار الأمريكي.مستضاف عندك، مع كل إصدارات AI SDK
حزمة واحدة، بدون حساب على منصة ولا control plane مستضاف. الـ peer
ai يقبل v4 و v6 و v7، وfromAiSdk() / fromAiSdkTools() يعيدان استخدام الـ models والـ tools التي لديك من AI SDK.المكوّنات
كل مكوّن هو دالة واحدة أو خيار واحد علىcreateAgent(). استخدم ما تحتاجه؛ لا مكوّن يتطلب غيره.
أين يعيش الـ agent
الـ agent هو الكائن نفسه في كل مكان. ما يتغير هو الواجهة التي تقف أمامه.في تطبيق ويب
useLoushoAgent() لـ React و Vue، وstore لـ Svelte، وuseChat من Vercel AI SDK، أو createRouteHandler(agent) في أي إطار عمل مبني على Fetch API.في المحادثات وعلى جدول
قنوات Slack و Discord و webhooks و HTTP العادي تربط الرسائل بالـ sessions وترجّع الـ approvals للقناة. وجدولات cron تبدأ runs من تلقاء نفسها.
في محرّر
lousho acp يقدّم الـ agent عندك إلى Zed وغيره من محررات Agent Client Protocol، مع الـ tool calls وطلبات الصلاحيات.كخدمة منشورة
lousho build ينتج سيرفر Node أو صورة Docker أو Cloudflare Worker من spec واحد.مقارنة بمكتبات أخرى
lousho يقع في طبقة واحدة فوق استدعاء الـ model: مثل agents الخاصة بـ AI SDK 7، و eve، و Mastra، و LangGraph، و OpenAI Agents SDK، و Claude Agent SDK، يشغّل agent loop كامل. وهو مبني فوق Vercel AI SDK وليس بديلًا عنه: الـ providers المدمجة تستخدم ai و@ai-sdk/*، وfromAiSdk() يغلّف أي model آخر من AI SDK.
الـ approvals المتينة والـ evals والـ agent directories و harnesses الـ coding agents لم تعد ميزات حصرية: AI SDK 7 و eve و Mastra تقدّم نسخها الخاصة. ما يميّز Lousho حتى الآن هو التسجيل وإعادة التشغيل مع اكتشاف انحراف المسار، والـ approvals المتينة على Cloudflare Workers KV، وتقديم نفس الـ agent عبر ACP و MCP، والعمل كحزمة واحدة مستضافة عندك. وهو أضعف حيث ما زال صغيرًا: في مرحلة alpha، بدون store لـ Postgres، وبـ providers مدمجة أقل، وبدون لوحة تحكم مستضافة.
متى يكون خيار آخر أنسب: إذا كان كل ما تحتاجه هو بثّ نص الـ model في route من Next.js، فـ AI SDK وحده أخفّ وأقل سطحًا. وإذا كنت تنشر على Vercel وتريد الـ runtime الخاص بها، فـ eve يناسبها مباشرة. وإذا أردت الـ harness الخاص بـ Claude Code كما هو، فـ Claude Agent SDK يعطيك ذلك بالضبط. وإذا كان فريقك يعمل بـ Python أو يشغّل LangGraph Platform أصلًا، فالبقاء هناك يوفّر عليك stack إضافيًا. قادم من AI SDK؟ اقرأ الانتقال من AI SDK.
لمقارنة ميزة بميزة مع AI SDK وOpenAI Agents SDK وMastra وLangGraph.js، راجع مقارنة Lousho بغيرها.
الخطوات التالية
- البدء السريع: جهّز مشروعًا بقالب جاهز، أو شغّل الـ agent المكوّن من خمسة أسطر. المقتطفات تعمل دون اتصال بفضل الـ mock provider المدمج.
- التثبيت: المتطلبات، وpeer dependencies، وأي حزمة provider تلائم أي إصدار رئيسي من
ai. - Tools: عرّف أول tool لك وانظر كيف يتم الـ validation للمعاملات.
- Approvals: أوقف run مؤقتًا بانتظار قرار إنسان ثم استأنفه.
- الاختبار: اكتب اختبار deterministic للـ agent بدون مفتاح API.
- الانتقال من AI SDK: انقل حلقة
ToolLoopAgentأوgenerateText، مع الـ models والـ tools الخاصة بها. - Lousho مع coding agents: وجّه Claude Code أو Cursor أو أي coding agent آخر إلى توثيق يستطيع قراءته.