Skip to main content
استخدم @phaseo/agent-sdk عندما يحتاج تطبيقك إلى أكثر من توليد نص في طلب واحد: حلقات أدوات متعددة الخطوات أدوات بيئة التشغيل المحلية عمليات تشغيل قابلة للاستئناف من الحالة التي يعيدها SDK توقفات صريحة لانتظار موافقة بشرية مخرجات نهائية محددة النوع أدوار نموذجية عبر البوابة باستخدام TypeScript SDK الحالي هذه الحزمة SDK قابلة للتثبيت وليست منصة agents مستضافة. عليك توفير التطبيق ونموذج النشر واستراتيجية حفظ حالة التشغيل التي تريدها.

نموذج الحالة

لا يحفظ Agent SDK عمليات التشغيل في أي خدمة تستضيفها Phaseo. يعيد run() الحالة الكاملة اللازمة للمتابعة لاحقًا. إذا احتاج تطبيقك إلى استئناف التشغيل بين الطلبات أو بعد إعادة تشغيل العملية، فاحفظ الحالة المعادة في مخزن التطبيق الخاص بك. يقبل continueRun() حالة التشغيل السابقة مباشرةً. لا تحفظ Phaseo أي شيء خارج تطبيقك.

التثبيت

محتويات SDK

  • createAgent()
  • defineTool()
  • createGatewayAgentClient() continueRun() لمتابعة حالة تشغيل أُعيدت سابقًا stream() وcontinueStream() لإرجاع نتائج تدريجية قابلة لإعادة التشغيل مساعدات لشروط الإيقاف مثل stepCountIs() وmaxCost() وhasToolCall()

الوكيل الأول

النموذج الذهني

تنفذ حلقة بيئة التشغيل أربع خطوات:
  1. ترسل حالة الرسائل الحالية إلى عميل النموذج
  2. تنفذ أي استدعاءات أدوات محلية معادة
  3. تضيف نتائج الأدوات إلى الدور التالي
  4. تعيد حالة التشغيل المحدّثة بعد اكتمال كل خطوة
يمنح ذلك تطبيقك حلقة قابلة للاستئناف دون إلزامك باستخدام منتج تنسيق مستضاف.

العناصر الأساسية

createAgent()

استخدم createAgent() لتعريف: id ثابت التعليمات نموذج أو إعداد مسبق واحد قائمة أدوات صغيرة تحليل اختياري للمخرجات قواعد اختيارية للمراجعة البشرية عناصر تحكم اختيارية لإعادة المحاولة وتنفيذ الأدوات اجعل نطاق الوكيل الأول محدودًا. يكفي عادةً مسار عمل واحد وأداة أو أداتان.

defineTool()

عرّف أدوات بيئة التشغيل المحلية باستخدام:
  • id
  • description parameters بصيغة JSON اختيارية timeoutMs اختياري مدققات وقت التشغيل inputSchema وoutputSchema execute() أو execute: false أو عمليات رد نداء بمشاركة بشرية requireApproval وonError وnextTurnParams وأحداث التقدم
عند انتهاء المهلة، توقف بيئة التشغيل context.signal وتضع علامة failed على التشغيل ثم تعيد إلقاء خطأ المهلة. يمكن أن تكون المخططات دالة أو أي كائن يوفّر parse() أو safeParse(). وتفشل وسيطات النموذج ونتائج الأداة غير الصالحة قبل تجاوز حدود الأداة.

الموافقة وHITL والأدوات اليدوية

تحكم في كل استدعاء لأداة ذات آثار جانبية:
يتوقف التشغيل عند run.pause.pendingToolCalls. استأنفه باستخدام معرّف الاستدعاء الدقيق لتجنب الخلط بين الاستدعاءات المتزامنة:
اضبط execute: false للعمل الذي تنفذه تطبيقاتك وقدّم النتيجة عبر toolOutputs. وبالنسبة إلى أداة تفاعلية، أعد null من onToolCalled؛ وبعد المتابعة، يمكن لـ onResponseReceived التحقق من استجابة الإنسان المقدمة أو تحويلها.

أدوات تنتج تحديثات التقدم

يمكن لمولّد غير متزامن نشر نتائج أولية ثم إرجاع نتيجة نهائية واحدة:
يظهر التقدم كأحداث tool.preliminary_result وضمن preliminaryResults للخطوة.

نتائج البث

يبدأ stream() آلة الحالات نفسها باستخدام عميل نموذج يدعم البث. ويمكن إعادة تشغيل مخرجاته، لذا تستطيع الواجهة والقياس عن بُعد وكود الحفظ قراءتها بالتزامن:
استخدم getReasoningStream() أو getItemsStream() أو getToolStream() أو getFullStream() للمستهلكين الأكثر تخصصًا. يوقف cancel() التشغيل.

عرض عناصر تشغيل محددة النوع

يعيد getItemsStream() النوع AgentItem<TOutput>، وهو اتحاد مميّز يمكن استخدامه بأمان مع switch:
يتوفر عقد العناصر المرتبة نفسه في completed.items بعد run() أو stream(). وتُطبّع مخرجات المزوّد إلى عناصر للرسائل والاستدلال واستدعاء الأدوات ونتائجها والأخطاء والمخرجات النهائية. وتظل الحقول الخاصة بالمزوّد متاحة عبر rawProviderItem في العناصر المطبّعة.

شروط الإيقاف والأدوار الديناميكية

تُجمع شروط الإيقاف في مصفوفة؛ ويسجل أول شرط متحقق سببه ويعيد تشغيلًا بحالة stopped:
يمكن للأدوات ضبط سياق التطبيق عبر context.setContext() وتجاوز معاملات الدور التالي مباشرةً عبر nextTurnParams.

createGatewayAgentClient()

استخدم المحوّل المرتبط بالبوابة عندما ينبغي تنفيذ أدوار النموذج عبر Phaseo Gateway. يمكنه تمرير عناصر تحكم أصلية للبوابة مثل:
  • responseFormat
  • plugins
  • gatewayTools
  • toolChoice
  • webSearchOptions
  • providerOptions
  • promptCacheKey
  • includeMeta
يتيح ذلك لتطبيقك إبقاء التوجيه والبحث والمخرجات المنظمة والقيم الافتراضية للإضافات قرب عميل النموذج بدلًا من إعادة بناء حمولة الطلب الخام في كل تشغيل.

التخزين الذي يديره التطبيق

إذا احتاج تطبيقك إلى استئناف التشغيل، فاحفظ AgentRunResult المعاد مباشرةً أو وفّر موصل state يتضمن الدالتين غير المتزامنتين load(runId) وsave(result). عندها يمكن للتشغيل المستأنف استخدام runId دون تمرير السجل المتسلسل عبر كل طبقة. لا يتضمن SDK عمدًا محوّلات للتخزين أو خلفية مستضافة للحالة. وهذا يعني أنه يمكنك: إبقاء عمليات التشغيل لمرة واحدة داخل العملية بالكامل تسلسل عمليات التشغيل المتوقفة أو غير المكتملة في سجلات التطبيق الخاصة بك إعادة تحميل حالة التشغيل المحفوظة وتمريرها إلى continueRun() لاحقًا

المراجعة البشرية والمتابعة

استخدم humanReview عندما ينبغي أن يحفظ التشغيل نقطة تحقق وينتظر الموافقة:
تابع بإدخال بشري صريح:

المخرجات المحددة النوع

استخدم parseOutput عندما يحتاج تطبيقك إلى قيمة نهائية محددة النوع:
لضبط سلوك النموذج بصرامة أكبر، ادمج ذلك مع المخرجات المنظمة في محوّل البوابة:

عناصر التحكم في بيئة التشغيل

إعادة محاولات النموذج

استخدم modelRetry لإعادة المحاولة عند أخطاء النموذج المؤقتة قبل حفظ التشغيل بحالة failed:
يحسب maxRetries المحاولات الإضافية بعد طلب النموذج الأول. يخزن سجل الخطوة المحفوظ العدد النهائي للمحاولات في modelAttempts.

الأدوات المحلية المتزامنة

إذا كان دور النموذج يستطيع استدعاء عدة أدوات مستقلة بأمان، فاضبط toolExecution.toolConcurrency:
تظل بيئة التشغيل تحافظ على ترتيب رسائل نتائج الأدوات.

التوجيه باستخدام الإعدادات المسبقة

استخدم preset لإدارة القيم الافتراضية للتوجيه أو prompt أو المعلمات في لوحة التحكم بدلًا من تثبيتها في كود التطبيق:

خطافات الأحداث

استخدم onEvent عندما يحتاج تطبيقك إلى خطافات دورة حياة للسجلات أو القياس عن بُعد أو مسارات العمل الداخلية. تشمل الأحداث الحالية:
  • run.started
  • run.resumed
  • step.started
  • step.completed
  • step.failed
  • step.cancelled
  • model.requested
  • model.completed
  • model.failed
  • tool.started
  • tool.completed
  • tool.failed
  • checkpoint.saved
  • run.waiting_for_human
  • run.cancelled
  • run.completed
  • run.failed
عند نجاح إحدى الخطوات، تصدر بيئة التشغيل step.completed بعد حفظ الخطوة ذات نقطة التحقق.

معالجة الأخطاء

تُعاد أخطاء البوابة على هيئة AgentGatewayError:
إذا كان الخطأ صادرًا عن البوابة، فسيتم أيضًا حفظ errorDetails في عمليات التشغيل والخطوات الفاشلة.

أمثلة مضمنة

تتضمن الحزمة حاليًا الأمثلة التالية:
  • examples/research-brief-agent.ts
  • examples/support-triage-agent.ts
  • examples/coding-review-agent.ts
  • examples/parallel-tool-agent.ts

النطاق الحالي

يركز SDK عمدًا على العناصر الأساسية لبناء التطبيقات: حفظ نقاط التحقق محليًا أو بإدارة التطبيق أدوار نموذجية عبر البوابة أدوات محلية حلقات agent قابلة للاستئناف استخدام الرموز والتكلفة والتحذيرات وأسباب الإنهاء ونتائج الأدوات الموحّدة لكل خطوة لا يحاول أن يكون منصة تنسيق مستضافة أو أن يوفّر خلفية تخزين بعيدة واحدة مفروضة.

أدلة ذات صلة

آخر تعديل في ٢ أكتوبر ٢٠٢٦