@phaseo/agent-sdk عندما يحتاج تطبيقك إلى أكثر من توليد نص في طلب واحد:
حلقات أدوات متعددة الخطوات
أدوات بيئة التشغيل المحلية
عمليات تشغيل قابلة للاستئناف من الحالة التي يعيدها SDK
توقفات صريحة لانتظار موافقة بشرية
مخرجات نهائية محددة النوع
أدوار نموذجية عبر البوابة باستخدام TypeScript SDK الحالي
هذه الحزمة SDK قابلة للتثبيت وليست منصة agents مستضافة. عليك توفير التطبيق ونموذج النشر واستراتيجية حفظ حالة التشغيل التي تريدها.
نموذج الحالة
لا يحفظ Agent SDK عمليات التشغيل في أي خدمة تستضيفها Phaseo. يعيدrun() الحالة الكاملة اللازمة للمتابعة لاحقًا.
إذا احتاج تطبيقك إلى استئناف التشغيل بين الطلبات أو بعد إعادة تشغيل العملية، فاحفظ الحالة المعادة في مخزن التطبيق الخاص بك.
يقبل continueRun() حالة التشغيل السابقة مباشرةً.
لا تحفظ Phaseo أي شيء خارج تطبيقك.
التثبيت
محتويات SDK
createAgent()defineTool()createGatewayAgentClient()continueRun()لمتابعة حالة تشغيل أُعيدت سابقًاstream()وcontinueStream()لإرجاع نتائج تدريجية قابلة لإعادة التشغيل مساعدات لشروط الإيقاف مثلstepCountIs()وmaxCost()وhasToolCall()
الوكيل الأول
النموذج الذهني
تنفذ حلقة بيئة التشغيل أربع خطوات:- ترسل حالة الرسائل الحالية إلى عميل النموذج
- تنفذ أي استدعاءات أدوات محلية معادة
- تضيف نتائج الأدوات إلى الدور التالي
- تعيد حالة التشغيل المحدّثة بعد اكتمال كل خطوة
العناصر الأساسية
createAgent()
استخدم createAgent() لتعريف:
id ثابت
التعليمات
نموذج أو إعداد مسبق واحد
قائمة أدوات صغيرة
تحليل اختياري للمخرجات
قواعد اختيارية للمراجعة البشرية
عناصر تحكم اختيارية لإعادة المحاولة وتنفيذ الأدوات
اجعل نطاق الوكيل الأول محدودًا. يكفي عادةً مسار عمل واحد وأداة أو أداتان.
defineTool()
عرّف أدوات بيئة التشغيل المحلية باستخدام:
iddescriptionparametersبصيغة JSON اختياريةtimeoutMsاختياري مدققات وقت التشغيلinputSchemaوoutputSchemaexecute()أو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.
يمكنه تمرير عناصر تحكم أصلية للبوابة مثل:
responseFormatpluginsgatewayToolstoolChoicewebSearchOptionsproviderOptionspromptCacheKeyincludeMeta
التخزين الذي يديره التطبيق
إذا احتاج تطبيقك إلى استئناف التشغيل، فاحفظAgentRunResult المعاد مباشرةً أو وفّر موصل state يتضمن الدالتين غير المتزامنتين load(runId) وsave(result). عندها يمكن للتشغيل المستأنف استخدام runId دون تمرير السجل المتسلسل عبر كل طبقة.
لا يتضمن SDK عمدًا محوّلات للتخزين أو خلفية مستضافة للحالة.
وهذا يعني أنه يمكنك:
إبقاء عمليات التشغيل لمرة واحدة داخل العملية بالكامل
تسلسل عمليات التشغيل المتوقفة أو غير المكتملة في سجلات التطبيق الخاصة بك
إعادة تحميل حالة التشغيل المحفوظة وتمريرها إلى continueRun() لاحقًا
المراجعة البشرية والمتابعة
استخدمhumanReview عندما ينبغي أن يحفظ التشغيل نقطة تحقق وينتظر الموافقة:
المخرجات المحددة النوع
استخدمparseOutput عندما يحتاج تطبيقك إلى قيمة نهائية محددة النوع:
عناصر التحكم في بيئة التشغيل
إعادة محاولات النموذج
استخدمmodelRetry لإعادة المحاولة عند أخطاء النموذج المؤقتة قبل حفظ التشغيل بحالة failed:
maxRetries المحاولات الإضافية بعد طلب النموذج الأول.
يخزن سجل الخطوة المحفوظ العدد النهائي للمحاولات في modelAttempts.
الأدوات المحلية المتزامنة
إذا كان دور النموذج يستطيع استدعاء عدة أدوات مستقلة بأمان، فاضبطtoolExecution.toolConcurrency:
التوجيه باستخدام الإعدادات المسبقة
استخدمpreset لإدارة القيم الافتراضية للتوجيه أو prompt أو المعلمات في لوحة التحكم بدلًا من تثبيتها في كود التطبيق:
خطافات الأحداث
استخدمonEvent عندما يحتاج تطبيقك إلى خطافات دورة حياة للسجلات أو القياس عن بُعد أو مسارات العمل الداخلية.
تشمل الأحداث الحالية:
run.startedrun.resumedstep.startedstep.completedstep.failedstep.cancelledmodel.requestedmodel.completedmodel.failedtool.startedtool.completedtool.failedcheckpoint.savedrun.waiting_for_humanrun.cancelledrun.completedrun.failed
step.completed بعد حفظ الخطوة ذات نقطة التحقق.
معالجة الأخطاء
تُعاد أخطاء البوابة على هيئةAgentGatewayError:
errorDetails في عمليات التشغيل والخطوات الفاشلة.
أمثلة مضمنة
تتضمن الحزمة حاليًا الأمثلة التالية:examples/research-brief-agent.tsexamples/support-triage-agent.tsexamples/coding-review-agent.tsexamples/parallel-tool-agent.ts