Skip to main content

من يحتاج هذه الصفحة

كل من لديه شيفرة مكتوبة على 1.0.0-alpha.8 أو إصدار 1.0.0-alpha.* أقدم. بين آخر إصدارات alpha وبين 1.0.0-rc.0 أُعيد تنظيم السطح العام للحزمة: انتقلت الواردات إلى مسارات فرعية، وحُذفت واجهات API ميتة أو تجاوزتها بدائل، وسُمّيت حواجز حماية الترقيعات فحوصات ترقيع (patch checks). لم تتغير createAgent() ولا خياراتها - الوكيل الذي لا يفعل شيئًا سوى createAgent({ model, instructions, tools }) وagent.send() يُرقَّى دون تغيير شيء سوى رقم الإصدار.

مسارات الاستيراد التي انتقلت

يضم جذر الحزمة الآن createAgent() والأسماء التي تستخدمها إعداداتها ونتائجها. كل ما يلي انتقل إلى مسار فرعي مخصص؛ والتعريفات لم تتغير سوى في مكان وجودها. لم يعد المسار الفرعي @lousho/build-ai-agent/core موجودًا؛ كل ما كان يصدّره أصبح تحت /executor.

واجهات API المحذوفة وبدائلها

  • AgentType وAgentTypeDescriptor وAgentConfig.agentType وAgentBuilder.setType() وسجل أنواع الوكلاء (agentTypesRegistry, getAgentTypeDescriptor, getAllAgentTypeDescriptors, isValidAgentType, validateAgentConfig, validateAgentTools). لم يكن لها أي أثر وقت التشغيل: احذف استدعاء setType(...) وحقل agentType. نقطة الحفظ المحفوظة مع agentType ما زالت تُحمَّل؛ ويُتجاهَل الحقل.
  • ExecuteOptions.onEvent ونوعا ExecutionEvent / ExecutionEventType. مرّر onAgentEvent إلى AgentExecutor.execute() / stream() / resumeAfterApproval() بدلًا منها؛ فالأحداث التي تصلك الآن هي AgentEvent. جدول مقابلة أسماء الأحداث في البث. ومع createAgent()، يستقبل onEvent أصلًا AgentEvent ولم يتغير.
  • createDelegateTool() وDelegateAgentOptions وDelegateAgentResult وDelegationDepthExceededError. استخدم خيار subagents في createAgent() أو AgentExecutor.execute(): يحصل النموذج على أداة task واحدة لكل وكيل فرعي، مع حدّ للعمق (maxSubagentDepth، الافتراضي 1) بدل الخطأ المرمي. انظر الوكلاء الفرعيون.
  • أنواع لم يُنفّذها شيء ولم يستخدمها شيء: واجهات المستودعات (IRepository, IAgentRepository, ISessionRepository, IResultRepository, SessionData, ResultData, SDKRepositories)، وDataLoadingStatus، وPaginationParams، وPaginatedResponse، وDeepPartial، وTimestamped، وIdEntity، وAgentExecutionOptions، وAgentExecutionResult، وAgentDefinition وToolSetting. إن كانت شيفرتك تستخدم واحدًا منها، انسخ تعريفه إلى مشروعك.

واجهات API أُعيدت تسميتها

أصبحت حواجز حماية الترقيعات تُسمى فحوصات ترقيع (patch checks)، حتى لا تعني كلمة «حاجز حماية» (guardrail) إلا حواجز المدخلات والمخرجات والأدوات في createAgent({ guardrails }). المعاملات والنتائج والسلوك لم تتغير؛ واحتفظ SECRET_PATTERNS باسمه. انظر حواجز الحماية والبيئات المعزولة.

مُهمَلة لكنها ما زالت تعمل في 1.x

هذه الأسماء ما زالت تعمل في 1.x وتُحذف في 2.0. انتقل عنها حين تعدّل الشيفرة؛ ولن ينكسر شيء إن لم تفعل.

تغييرات سلوكية أخرى منذ alpha.8

القائمة الكاملة في CHANGELOG. البنود التي تغيّر سلوك وقت التشغيل أو الأنواع التي قد تعتمد عليها شيفرتك، سطر لكل منها:
  • عمليات النقل والحذف وإعادة التسمية أعلاه هي قسم ### Breaking؛ والملاحظات أدناه هي بنود ### Changed التي تغيّر السلوك.
  • الأداة التي يعيد execute فيها مولّدًا غير متزامن تُستهلَك الآن بالتكرار - آخر قيمة يولّدها هي النتيجة - ويكتسب AgentEvent الحدث tool.partial (ToolPartialEvent)؛ فإن قصدت إعادة مولّد كقيمة فغلّفه ({ items: generator }). انظر الأدوات وأحداث البث.
  • يكتسب AgentEvent حدث handoff ويكتسب ExecutionResult الحقل الاختياري agentName: عبارة switch شاملة على event.type تحتاج حالة handoff. انظر التسليم بين الوكلاء.
  • يكتسب McpServerStatus القيمة 'needs-auth' ويكتسب AgentOAuth المنهج mcpSignInUrl(server): عبارة switch شاملة على connectMcp().status() تحتاج الحالة الجديدة. انظر MCP وOAuth.
  • يكتسب ToolExecutionContext المنهجين getToken(provider) وrequireAuth(provider)، ويكتسب ApprovalKind القيمة 'sign-in': سياق أداة مبني يدويًا في اختبار يحتاج المنهجين (أو تحويل نوع). انظر OAuth.
  • مع مستمع (createAgent({ onEvent }), onAgentEvent)، يبثّ send() وexecute() الآن استدعاءات النموذج: يصل نص الخطوة على هيئة عدة أحداث text.delta بدل حدث واحد. execute({ streamModelCalls: false }) يعيد الشكل القديم. انظر أحداث البث.
  • MockLLMProvider / createMockProvider(): يبثّ stream() الآن الخطوة نفسها التي يعيدها generate() - استدعاءات الأدوات نفسها وسبب الإنهاء والاستهلاك نفسها - لذا فإن تشغيلًا وهميًا مبثوثًا يستدعي الأدوات كما يفعل send(). انظر اختبار الوكلاء.
  • تشغيلات Agent Forge تبثّ استدعاءات نماذجها؛ وعروض المحادثة والسجلات والتتبّع لم تتغير. انظر Agent Forge.
  • lousho init --provider ollama يجهّز الآن ai@^7 مع ollama-ai-provider-v2@^4 وzod@^4 (كان ai@^4 مع ollama-ai-provider@^1 وzod 3). المشاريع القائمة لا تُمسّ. انظر التثبيت.
  • التشغيل المتوقف مؤقتًا داخل وكيل فرعي يقارن الوكيل الفرعي بتعريفه الحالي عند الاستئناف، تحت onAgentDrift التابع للوكيل الرئيسي - ومع 'error' يرفض الوكيل الفرعي المتغيّر الآن agent.approvals.resolve() أيضًا. انظر التنفيذ المتين.
  • lousho add يفرض بيان صلاحيات السجل عند التثبيت، ومجلد الوكيل المحمَّل يشغّل أدوات كل عنصر داخل بيانه المقبول (الموافقة مفعّلة دائمًا لعناصر exec/needsApproval/غير الموثَّقة، وfetch وprocess.env مقيّدان بنطاق التصريح)؛ والشيفرة غير المطابقة تُرفَض بـLOUSHO_REGISTRY_MANIFEST_MISMATCH، و--yes يحتاج --allow للصلاحيات المرتفعة. انظر السجل.
  • متابعة تشغيل محفوظ غير مكتمل بـprincipal غير الذي حُفظ به يرمي الآن LOUSHO_CONFIG_INVALID؛ فنقاط الحفظ ولقطات الموافقة تخزّن principal التشغيل. انظر مصادقة المسارات والهويات (principals).
  • الحزمة المنشورة أصغر: ملفات الاختبار لم تعد تُشحَن، وخرائط المصدر لم تعد تضمّن sourcesContent (وما زالت sources فيها تشير إلى src/ المشحون). لا تغيير في API.

ما الذي تعد به 1.0

ابتداءً من 1.0 تتبع الحزمة semver على سطحها العام:
  • عام: كل نقطة دخول يصرّح بها exports - الجذر @lousho/build-ai-agent والمسارات الفرعية /executor و/tools و/flows و/integrations و/utils و/mcp و/types و/testing و/otel و/hooks و/sqlite و/auth و/kv و/worker و/traces و/triggers و/react و/vue و/svelte - وكل اسم في تقارير API المودعة في المستودع (api/index.api.md, api/executor.api.md, … في المستودع). حذف أحدها أو إعادة تسميته أو تغيير توقيعه يتطلب إصدارًا رئيسيًا.
  • داخلي: كل ما عداه، بما فيه الاستيرادات العميقة داخل dist/ أو src/ (أي مسار لا يذكره exports) والأسماء التي يستخدمها توقيع عام دون أن يصدّرها (بنود ae-forgotten-export في التقارير). يمكن أن تتغير هذه في أي إصدار.
  • مُهمَل: الأسماء المعلَّمة بـ@deprecated تبقى تعمل طوال 1.x وتُحذف في 2.0.
يقارن CI التقارير في كل pull request، لذا فإن أي تغيير في السطح العام يكون دائمًا تعديلًا مقصودًا مُراجَعًا.