أنشئ وكيلًا
تنشئ وكيلًا من تعريف. ينطبق حد الخطوات في التعريف على كل استدعاء تشغيل أو متابعة.حقول التعريف
تبني Rust التعريف بدوال بدلًا من الحقول:AgentDefinition::new(id, model)، ثم .instructions(text) و.tool(tool) (مرة لكل أداة) و.max_steps(limit) و.model_retries(count, backoff) و.human_review(callback). أما AgentDefinition في Java فسجل بمُنشئات ذات 10 و13 و19 وسيطًا.
في TypeScript، يمكن أن تكون
model وinstructions وقيم أخذ العينات ثابتة أو ديناميكية.
عرّف أداة
تسرد صفحة الأدوات كل حقول الأداة.
اتصل بـ Phaseo Gateway
تسرد صفحة المخرجات وإعادة المحاولة خيارات العميل في كل لغة.
التقط عمليات التشغيل محليًا
راجع DevTools.
شروط الإيقاف
تعيد Go وJava القيمة
StopCondition؛ وتعيد C# القيمة Func<StopState, (bool Stop, string Reason)>؛ وتعيد PHP قيمة callable؛ وتعيد Ruby دالة lambda. لا توجد شروط إيقاف في Rust، بل حد الخطوات فقط. راجع شروط الإيقاف.
التشغيل والمتابعة
تعيد دالتا التشغيل والمتابعة نتيجة تشغيل:
Promise<AgentRunResult> في TypeScript، و(RunResult, error) في Go، وTask<RunResult> في C#، وResult<RunResult, AgentError> في Rust، ونتيجة التشغيل مباشرة في غيرها. وتعيد دوال البث نتيجة بث فورًا.
خيارات التشغيل
تأخذ PHP وRuby هذه الخيارات بوصفها وسائط مسمّاة أو بالكلمات المفتاحية؛ أماRunOptions في Java فسجل موضعي بالترتيب input, client, context, model, preset, maxSteps, modelRetry, toolExecution, onEvent, devtools، ثم state اختياريًا.
تقبل
run() في Python أيضًا stop_when لكنها تتجاهلها؛ اضبط شروط الإيقاف على التعريف. تأخذ stream() في PHP وstream في Ruby فقط input وclient وcontext وstate. تنشئ Rust القيم الافتراضية عبر RunOptions::new(input).
خيارات المتابعة
تأخذ خيارات المتابعة تجاوزات التشغيل أعلاه، إضافة إلى:
ترتيب
ContinueOptions في Java هو run, client, context, model, preset, maxSteps, humanInput, modelRetry, toolExecution, onEvent, devtools، ثم approvals, rejections, toolOutputs، ثم runId, state. وإلى جانب هذه الصيغة ذات الوسائط الستة عشر، توجد دوال إنشاء تأخذ أول 11 وسيطًا فقط أو أول 14 وسيطًا فقط، وتأخذ البقية قيمًا افتراضية هي قوائم فارغة أو null. تنشئ Rust القيم الافتراضية عبر ContinueOptions::new(result).
نتيجة البث
يعيد المستهلكون التشغيل من البداية، لذا يمكن لعدة مستهلكين قراءة التشغيل نفسه. ويختلف سلوكهم:
نتيجة التشغيل
النوع هو
AgentRunResult في TypeScript وPython وRunResult في غيرهما. تضيف TypeScript الحقل stepResults (نتائج الخطوات الموحّدة) وitems (الرسائل والاستدلال ونشاط الأدوات والأخطاء والمخرجات النهائية مرتّبة؛ راجع العناصر). في Rust، يكون output من النوع serde_json::Value، وتُسلسَل RunResult وRunRecord وRunStep وMessage وToolCall وHumanPause وPendingToolCall وToolDecision وToolOutput وUsageSummary باستخدام Serde.
سجل التشغيل
يخزّن
RunRecord في Rust أيضًا النموذج الفعلي وحد الخطوات. وتضيف TypeScript الحقل errorDetails مع تفاصيل خطأ Gateway.
حالات التشغيل هي queued وrunning وwaiting_for_tools وwaiting_for_human وcompleted وstopped وfailed. وتضيف TypeScript الحالة cancelled.
سجل الخطوة
النوع هو
RunStep في كل مكان باستثناء TypeScript وPython (AgentStepRecord).
ملخص الاستخدام
inputTokens وoutputTokens وcachedTokens وtotalTokens وcost (TypeScript وJava)؛ وinput_tokens وoutput_tokens وcached_tokens وtotal_tokens وcost (مفاتيح Python وPHP وRuby، وRust)؛ وInputTokens وOutputTokens وCachedTokens وTotalTokens وCost (Go وC#). النوع هو AgentUsageSummary في TypeScript وPython وUsageSummary في Go وC# وJava وRust. وتستخدم PHP وRuby مصفوفة أو Hash. راجع المراقبة لمعرفة التنبيهات المتعلقة بـ cost.
التوقفات المؤقتة والقرارات
تتبع أسماء الحقول أسلوب كل لغة:
toolCallId (TypeScript وPHP وJava)، وtool_call_id (Python وRuby وRust)، وToolCallID (Go)، وToolCallId (C#). ToolDecision في Rust للموافقة فقط. راجع الحالة والموافقة.
سياق وقت التشغيل الممرّر إلى الأدوات
أداة الوصول إلى الحالة
عملاء النموذج
نفّذ عميل نموذج لإرسال أدوار النموذج عبر وسيلة نقل أخرى، أو لتغليف عميل Gateway.
في Rust، يحتوي
ModelRequest على معرّف الوكيل والنموذج الفعلي والتعليمات والرسائل الحالية ومواصفات الأدوات (ToolSpec: id وdescription وparameters بصيغة JSON Schema) وسياق التطبيق. ويحتوي ModelResponse على message وusage وrequest_id وprovider وmodel وfinish_reason. ويتضمن Message الحقول role وcontent وtool_calls وtool_call_id وname وis_error، مع المُنشئين Message::user(content) وMessage::assistant(content)؛ ويتضمن ToolCall الحقول id وname وinput بصيغة JSON.
الأحداث والأخطاء
تصدّر TypeScript أيضًا
agentErrorIsRetryable() وagentRetryAfterMs() وagentErrorIsContextOverflow() لتصنيف الأخطاء، وrepairToolHistory(messages) للإجابة عن استدعاءات الأدوات التي بقيت دون نتيجة وحذف النتائج التي لا تجيب عن أي استدعاء، وtruncateToolOutput(text, limit) للاحتفاظ ببداية النص الطويل ونهايته مع إشعار بما قُطع. راجع خطافات دورة الحياة والأحداث والأخطاء.