Skip to main content

التثبيت

مدعوم: llama-index-core 0.14.23 إلى 0.15. 0.14.23 هو الإصدار حيث بدأ تدفق سير العمل بنقل أحداث الوكيل المكتوبة بشكل صريح التي يقرأها هذا المحول. تحته، تختفي أسماء النموذج وهيكل الوكيل معاً.

الضبط

واجهة برمجة التطبيقات للوكيل في LlamaIndex غير متزامنة. كل نطاق يعمل تحت async with وكذلك with وينتج أحداثاً متطابقة. instrument() تربط معالج حدث ومعالج امتداد لموزع LlamaIndex العام. معاً يجعلان حلقة الوكيل مرئية، وليس فقط استدعاءات نموذجه.
بدون وسيطة إضافية على نموذجك، كل عدد رموز في تتبعك قيمته null. انظر عدد الرموز أدناه.

عدد الرموز

FunctionAgent يستدعي astream_chat، وllama-index-llms-openai لا يرسل stream_options={"include_usage": True} عند البث. المزود بالتالي لا يرسل أبداً مقطع الاستخدام، ولا شيء لأي أداة ضبط لقراءته. هذا سلوك LlamaIndex الأساسي. قم بالاشتراك في نموذجك:
تم القياس في نفس التشغيل والنموذج: استدعاءات البث غير المتزامن (llm.chat, llm.achat) تقرر الاستخدام بدون تكوين. فقط مسار البث، وهو المسار الافتراضي للوكيل، يحتاج إلى هذا.

ما يتم تسجيله

agent_id هو FunctionAgent.name عندما تحدده، واسم فئة سير العمل وإلا. تحت AgentWorkflow، كل وكيل يأخذ دوره يحصل على امتداده الخاص المتداخل تحت سير العمل، لذا تُقرأ المسلمة كوكيلين بدلاً من واحد. الناتج من الاسترجاع مختصر بدلاً من أن يُرمى. يعيد المسترجع المستندات، وتخزينها في الحمل سيضع مجموعة النصوص الخاصة بك في مخزن الأحداث مرة واحدة لكل استعلام. يتم الاحتفاظ بالعدد، نطاق النقاط، والمقاطع المختصرة بدلاً من ذلك.

مثال

تظهر حلقة الوكيل في التتبع كأزواج hook: init_run، setup_agent، run_agent_step، parse_agent_output، call_tool، وaggregate_tool_results. إنها حلقة الإطار نفسه، لذا فهي hooks بدلاً من وكلاء، مما يحافظ على معنى agent_id.

سمِّ امتدادك

agent_id هو FunctionAgent.name عندما تحدده، واسم فئة سير العمل وإلا.
في AgentWorkflow، هذا الاسم هو أيضاً ما يتم تسجيل كل مسلمة تحته:
إذاً agent_id يخبرك أي وكيل قام بالعمل وparent_id يخبرك أي سير عمل انتمى إليه. يفتح الوكيل الذي يسلم التحكم لاحقاً دوره الثاني بدلاً من إعادة فتح الأول. لف التشغيل لتجاوزه، أو لتجميع عدة وكلاء تحت أب واحد:
أبق agent_id ذو كاردينالية منخفضة. إنها الجانب الأساسي على كل سطح لوحة معلومات، لذا استخدم دوراً أو اسم سير عمل، لا تستخدم UUID أو سلسلة لكل تشغيل.

تحكم في الجلسة

هذا المحول لا يأخذ خيار session_id. تأتي الجلسة من النطاق المحيط، وإلا uuid4().hex مُولدة لكل تشغيل سير عمل:

الخيارات

الإنسان في الحلقة

يتم الالتقاط عند حدوث الانتظار داخل أداة:
ctx.wait_for_event في خطوة سير عمل عادية لا يتم التقاطها. يمسك وقت التشغيل بالقطرة قبل وصولها للموزع، لذا تخرج الخطوة وتعاد لاحقاً بدون إشارة لمفتاح الإيقاف عليها. نمط FunctionAgent، الذي توثقه LlamaIndex، ينتظر داخل أداة ويتم التقاطه بالكامل.

مشاكل شائعة

أضف additional_kwargs={"stream_options": {"include_usage": True}} إلى نموذجك. انظر عدد الرموز.
LlamaIndex لا يملك حقل استخدام قياسي. يحاول المحول عدة أشكال معروفة، والتكامل الذي يسمي العدادات الخاصة به بشيء جديد لن يطابق أي منها.يشحن القاموس الخام دائماً، لذا تحقق من usage في الحمل لترى ما سماه مزودك.usage مملوء بجانب أعمدة رموز فارغة مقصود — يفوق عدداً خاطئاً واثقاً.
هذه حلقة FunctionAgent، مجموعة واحدة لكل تكرار. صفِّ حسب اسم hook على لوحة المعلومات. توقيتات الخطوة هذه عادة ما تكون السبب لاستخدام هذا المحول بدلاً من محول نموذج فقط.
تحقق بهذا الترتيب: instrument() تم تشغيله قبل التشغيل؛ هناك async with failproofai_sdk.session(): حول await؛ llama-index-core هو 0.14.23 أو أحدث؛ FAILPROOFAI_SDK_STRICT=1 مضبوط، لذا يرفع hook متدهور بدلاً من أن يبتلع.

التالي

كيف يعمل

الأزواج والمعرفات ودورة حياة الجلسة والتسليم.

اقرأ تتبعاً

اتبع السببية عبر الجلسة التي استقطتها للتو.

أطر عمل أخرى

LangGraph، CrewAI، Pydantic AI، والوكلاء المخصصين.