generateText({ tools })
أو streamText({ tools }) مع حد للخطوات، أو new ToolLoopAgent({ ... }). تقدر تحتفظ
بالـ models والـ tools وواجهة useChat الأمامية كما هي. ثلاثة adapters تنقلها
بدون إعادة كتابة:
وما تحصل عليه بالمقابل هو ما يضيفه
createAgent() فوق حلقة الـ model: approvals متينة
تصمد بعد إعادة التشغيل، و sessions في الذاكرة أو ملفات أو SQLite، واستئناف بعد الانهيار،
وميزانيات، وقواعد صلاحيات، و sub-agents و handoffs، وخوادم MCP، والتتبّع، والتقييمات (evals).
المقابلات
الـ Models: fromAiSdk()
fromAiSdk(model) يغلّف أي LanguageModel من الـ AI SDK ليصبح الـ provider الخاص بالـ agent، فالـ model
الذي ضبطته مسبقًا (المفاتيح، الـ base URL، خيارات الـ provider) يشتغل كما هو:
createAgent({ model: 'openai/gpt-4o-mini' }).
راجع الـ Providers للخيارات ولإصدارات ai
الرئيسية المدعومة.
الـ Tools: fromAiSdkTools()
fromAiSdkTools() يأخذ نفس الـ record الذي تمرّره إلى generateText({ tools }) أو
ToolLoopAgent، ويرجع tools خاصة بـ Lousho؛ وكل مفتاح يصير اسم الـ tool:
ai، فالـ tool يشتغل أيًّا كان إصدار ai الذي بناه،
والـ object العادي يشتغل كذلك. هذا المثال يعمل بدون شبكة:
لا يُنقل
experimental_context، ولا onInputStart / onInputDelta / onInputAvailable، ولا
toModelOutput. وللـ tool الجديد، الأفضل defineTool()
(الـ Tools): فهو يقبل أيضًا timeoutMs وannotations وeditsFiles و
deferLoading.
useChat
الواجهة الأمامية المبنية بـuseChat تبقى تعمل: الـ route يرجع الـ run الخاص بالـ agent كـ UI message
stream.
createRouteHandler(agent) (Next.js).
انظر أيضًا
- المقارنة: أين تختلف Lousho عن الـ AI SDK، بما في ذلك المواضع التي تكون فيها Lousho أضعف.
- الانتقال إلى createAgent() يخص الـ API الأقدم في Lousho نفسها،
AgentBuilder/AgentExecutor، وليس الـ AI SDK.