إذا كنت تبني AI Agent حقيقي (أو نظام Multi‑Agent) فغالباً اكتشفت المشكلة بسرعة: الوكيل يعمل “جيداً” في الديمو… ثم يبدأ في الإنتاج بإخفاقات غريبة: أدوات لا تُستدعى، قرارات غير مفسّرة، تكاليف ترتفع فجأة، أو إجابات صحيحة أحياناً وخاطئة أحياناً أخرى.
الحل ليس “برومبت أفضل” فقط. في 2026، الأنظمة القوية تعتمد على ثلاث طبقات مترابطة:
- Observability / Tracing لفهم مسار القرار خطوة بخطوة.
- Evaluation (Evals) لقياس الجودة بشكل قابل للتكرار.
- Monitoring & Alerting لملاحظة الانحراف قبل أن يراه المستخدم.
في هذا الدليل ستتعلم كيف تبني هذه الطبقات لوكلاء AI (سواء LangGraph / CrewAI / AutoGen أو نظام خاص بك)، وما الأدوات الأكثر شيوعاً للمراقبة والتقييم (Langfuse, LangSmith, Phoenix, Helicone, AgentOps, TruLens…)، مع أمثلة عملية وقائمة “جاهز للإنتاج”.
المحتويات
- ما معنى Observability لوكلاء AI؟ ولماذا تختلف عن مراقبة التطبيقات التقليدية؟
- ما الذي يجب أن تسجله فعلاً؟ (Events + Spans + Metadata)
- اختيار الأداة المناسبة: Langfuse vs LangSmith vs Phoenix vs Helicone vs AgentOps vs TruLens
- بنية قياسية لتتبع الوكيل: Trace → Spans → Scores
- تتبع التكاليف والـ Latency لكل خطوة: كيف تمنع “فاتورة مفاجئة”؟
- Evals في التطوير: Datasets + Regression tests + Prompt/versioning
- Evals في الإنتاج: LLM-as-a-judge + Feedback + Sampling
- أمثلة عملية (Python): OTel + تسجيل tool calls + حفظ النتائج
- جداول قياس الجودة: ما المقاييس التي تهم وكلاء AI؟
- أخطاء شائعة عند مراقبة الوكلاء وكيف تتجنبها
- Best Practices جاهزة: Checklist إنتاج لوكيل أو Multi‑Agent
- FAQ: أسئلة شائعة
- الخلاصة
1) ما معنى Observability لوكلاء AI؟ ولماذا تختلف عن مراقبة التطبيقات التقليدية؟
في التطبيقات التقليدية، غالباً تكفيك metrics مثل CPU/Memory وLatency لطلبات API. لكن “الوكيل” ليس دالة واحدة؛ هو سلسلة قرارات غير حتمية (non‑deterministic) تتضمن:
- استدعاءات نموذج (LLM calls)
- استدعاءات أدوات (APIs, Search, DB)
- خطوات تخطيط (planning) وتنفيذ (execution)
- محاولات فاشلة وإعادة المحاولة
لذلك Observability لوكلاء AI تعني: أن ترى القصة كاملة: ما المدخل؟ ما الخطة؟ ما الأدوات؟ ما النتائج؟ ولماذا اتخذ الوكيل قراراً بعينه؟
أدوات مثل Langfuse تركز على tracing شامل لكل LLM وغير LLM، وربط ذلك بالجلسات والمستخدمين، مع دعم OpenTelemetry وتكاملات كثيرة. (مصدر: Langfuse Docs)
مقال ذو صلة (للتأسيس العام)
- راجع هذا المقال إذا أردت الأساسيات العامة لوكلاء AI قبل الدخول في المراقبة: قبل الدخول في المراقبة
2) ما الذي يجب أن تسجله فعلاً؟ (Events + Spans + Metadata)
قاعدة ذهبية: لا تكتفِ بتسجيل “نص المحادثة”. ما تحتاجه للتشخيص يكون عادة في التفاصيل الصغيرة.
سجّل على الأقل:
- Trace ID لكل “مهمة” (Task) أو لكل Session
- Span لكل خطوة:
- LLM call (model, prompt version, tokens, temperature)
- Tool call (اسم الأداة، args، زمن التنفيذ، status)
- Retrieval step (vector DB / search)
- Artifacts:
- المخرجات الوسيطة (plan / intermediate thoughts إن كانت محفوظة بشكل آمن)
- نتائج الأدوات (مختصرة أو hashed إذا كانت حساسة)
- Metadata:
- userId / tenantId
- بيئة التشغيل (dev/staging/prod)
- release version للوكيل
ملاحظة مهمة: كثير من المنصات (Langfuse / Phoenix) تبني على OpenTelemetry، ما يسهل توحيد التتبع بين أكثر من أداة وتجنب “vendor lock‑in”. (مصدر: Langfuse Docs + OpenTelemetry Docs + Phoenix Docs)
3) اختيار الأداة المناسبة: Langfuse vs LangSmith vs Phoenix vs Helicone vs AgentOps vs TruLens
في 2026 لم تعد “أداة واحدة” تكفي كل الحالات. بعض الفرق تريد منصة شاملة، والبعض يريد حل tracing خفيف، والبعض يركز على Evals.
الجدول التالي يعطيك صورة سريعة:
| الأداة | أفضل استخدام | نقاط قوة واضحة | ملاحظات مهمة |
|---|---|---|---|
| Langfuse | Tracing + analytics + prompt mgmt + evals | Open-source، self-host، تكاملات كثيرة، مبني على OTel | مناسب إذا تريد منصة “هندسة LLM” متكاملة |
| LangSmith | تطوير/تصحيح وقياس وكلاء وLLM apps | tracing + evals + نشر/Deployments ضمن منظومة LangChain | framework-agnostic لكن يحسّن التجربة مع LangChain/LangGraph |
| Arize Phoenix | Observability + Evals مع تركيز على debugging | مبني على OTel + OpenInference، تدفق عمل واضح للتصحيح والتجارب | قوي جداً للـ traces والتقييمات وربطها |
| Helicone | AI Gateway + Observability | بوابة ونقطة تحكم + جلسات + تتبع كلفة/زمن | مناسب عندما تريد routing/fallbacks عبر بوابة واحدة |
| AgentOps | Observability للـ agents + replay | تتبع أحداث الوكيل + “time travel debugging” + تكلفة | جيد للفرق التي تريد replay وفهم السلوك |
| TruLens | Evals + tracking للتجارب | تقييمات feedback functions + RAG triad + tracking | ممتاز لقياس الجودة بشكل منهجي خصوصاً في RAG/agents |
| Promptfoo | اختبار prompts/agents + red teaming | configs + CI/CD + مقارنة نماذج + اختبارات أمنية | رائع كـ “اختبارات وحدات” لطبقة prompt/agent |
مصادر: Langfuse Docs، LangSmith Docs، Phoenix Docs، Helicone GitHub، AgentOps site، TruLens GitHub، Promptfoo GitHub.
مقال ذو صلة (Framework عملي للـ agents)
- إذا أردت تطبيق عملي لبناء agent بـ LangGraph مع نموذج محلي، هذا مفيد: تطبيق عملي بـ LangGraph
4) بنية قياسية لتتبع الوكيل: Trace → Spans → Scores
طريقة عملية للتفكير في أي نظام monitoring لوكيل AI:
- Trace = رحلة كاملة لإنجاز مهمة (مثلاً: “حل مشكلة عميل + فتح تذكرة + إرسال بريد”).
- Spans = خطوات داخل الرحلة (LLM call / tool call / retrieval / parse).
- Scores = تقييمات على مستوى trace أو span:
- نجاح المهمة (task success)
- صحة المعلومات (factuality)
- سلامة الاستدعاء (did the agent call the right tool?)
- تكلفة (cost) ووقت (latency)
بعض الأنظمة تسمح بإضافة “Scores” مباشرة عبر API/SDK. مثلاً Langfuse يوضح إضافة custom scores عبر endpoint /api/public/scores أو عبر SDK. (مصدر: Langfuse Docs) (اقرأ أيضاً: وكلاء الذكاء الاصطناعي: الدليل الشامل لبناء أنظمة …)
5) تتبع التكاليف والـ Latency لكل خطوة: كيف تمنع “فاتورة مفاجئة”؟
مشاكل التكلفة في الوكلاء عادة تأتي من:
- loops غير مقصودة (agent يرجع لنفس الأداة)
- retrieval مبالغ فيه
- استخدام نموذج كبير في كل خطوة
الحل العملي:
- سجّل tokens وcost لكل LLM span.
- سجّل latency لكل tool span.
- ضع budgets (per user / per task) + alerts.
أدوات مثل AgentOps تذكر “Track spending across multiple agents” وتعرض token/cost tracking. (مصدر: AgentOps)
كما أن LiteLLM (كبوابة/Proxy) يوفر تتبع الإنفاق وRouting/fallbacks عبر Proxy Server، ما يفيد عندما لديك عدة مزودين/نماذج. (مصدر: LiteLLM Docs)
رابط داخلي مفيد لفهم جانب البيانات والاسترجاع (خصوصاً إن كان وكيلك يعتمد على RAG):
- قواعد البيانات المتجهية: مقال قواعد البيانات المتجهية
6) Evals في التطوير: Datasets + Regression tests + Prompt/versioning
قبل الإنتاج، احتج “مجموعة اختبار” تشبه بيانات العالم الحقيقي.
كيف تبني Dataset بسرعة؟
- خذ 50–200 مثال من logs (حتى لو من staging)
- صنّفها حسب سيناريوهات مهمة: أسئلة سهلة/صعبة، لغات مختلفة، أدوات مختلفة
- أضف ground truth عندما يمكن (أو على الأقل rubric للتقييم)
Regression tests
القاعدة: كل تعديل (prompt/tool/route) يجب أن يمر على نفس dataset.
- TruLens صُممت لهذا النوع من التقييم المنهجي: feedback functions + تتبع التجارب. (مصدر: TruLens)
- Phoenix يربط التتبع بالتقييمات والتجارب على datasets. (مصدر: Phoenix Docs)
- Promptfoo مناسب جداً لتشغيل اختبارات prompt/agent في CI/CD ومقارنة نماذج متعددة. (مصدر: Promptfoo GitHub)
7) Evals في الإنتاج: LLM-as-a-judge + Feedback + Sampling
في الإنتاج لا يمكن تقييم كل شيء بدقة بشرية. لذلك كثير من الفرق تستخدم مزيجاً من:
- Sampling: قيم 1%–5% من الترايسات يومياً.
- LLM-as-a-judge: تقييم تلقائي وفق rubric.
- User feedback: thumbs up/down + سبب.
Langfuse تذكر دعم طرق تقييم متعددة (LLM-as-a-judge, user feedback, manual labeling, custom). (مصدر: Langfuse Docs)
نصيحة عملية: اجعل التقييمات “مستوى span” أيضاً، لأن الفشل غالباً يحدث في خطوة واحدة (مثلاً retrieval أو tool call) ثم يتضاعف.
8) أمثلة عملية (Python): OTel + تسجيل tool calls + حفظ النتائج
المثال التالي يوضح الفكرة (بشكل مبسّط):
- نبدأ trace لكل مهمة
- ننشئ span لاستدعاء أداة
- نضيف attributes مفيدة للتشخيص
from opentelemetry import trace
tracer = trace.get_tracer("my-agent")
def run_task(user_id: str, query: str):
with tracer.start_as_current_span("agent.task") as task_span:
task_span.set_attribute("user.id", user_id)
task_span.set_attribute("task.query", query)
# مثال: استدعاء أداة بحث
with tracer.start_as_current_span("tool.search") as tool_span:
tool_span.set_attribute("tool.name", "web_search")
tool_span.set_attribute("tool.args.query", query)
result = my_search(query)
tool_span.set_attribute("tool.status", "ok")
# مثال: استدعاء LLM (ضع هنا مزودك)
with tracer.start_as_current_span("llm.generate") as llm_span:
llm_span.set_attribute("llm.model", "<your-model>")
answer = my_llm_generate(query, context=result)
llm_span.set_attribute("llm.output.length", len(answer))
return answer
نقطة مهمة: إن استخدمت Phoenix أو أي منصة مبنية على OpenTelemetry/OpenInference، تستطيع إرسال traces عبر OTLP وتشاهدها في واجهة واحدة. (مصدر: Phoenix Docs + OpenTelemetry Docs + OpenInference GitHub)
9) جداول قياس الجودة: ما المقاييس التي تهم وكلاء AI؟
ليس كل مقياس مناسب لكل وكيل. لكن هذه “مجموعة بداية” قوية:
| المقياس | ماذا يقيس؟ | كيف تجمعه عملياً؟ |
|---|---|---|
| Task Success Rate | نسبة إنجاز المهمة كاملة | rule-based + human review على عيّنة |
| Tool Use Correctness | هل استدعى الأداة الصحيحة؟ | span eval (did_call_tool + correctness rubric) |
| Groundedness / Citation | هل الإجابة مبنية على مصادر/بيانات؟ | eval على spans الخاصة بـ retrieval + judge rubric |
| Hallucination Rate | اختلاق معلومات | LLM-as-a-judge + عينات بشرية |
| Cost per Task | تكلفة المهمة | tokens/cost attributes لكل LLM span |
| P95 Latency | أسوأ زمن للمهمة | metrics على traces + تنبيهات |
إذا كان وكيلك يعتمد على RAG، ركّز على المقاييس المرتبطة بالاسترجاع (Recall@k، relevance) قبل أن تلوم النموذج.
10) أخطاء شائعة عند مراقبة الوكلاء وكيف تتجنبها
- تسجيل بيانات حساسة كما هي
- الحل: masking/ hashing، أو حفظ summaries فقط.
- الاكتفاء بتتبع “آخر رسالة”
- الحل: trace كامل + spans + metadata.
- عدم ربط traces بإصدار الوكيل
- الحل: attribute مثل agent.version وprompt.version.
- Evals بلا rubric واضح
- الحل: اكتب rubric من 3–5 نقاط (صحة، اكتمال، أسلوب، سلامة).
- مقاييس كثيرة بلا قرارات
- الحل: اختر 5–7 مؤشرات KPI، وضع thresholds وتنبيهات.
11) Best Practices جاهزة: Checklist إنتاج لوكيل أو Multi‑Agent
قبل إطلاق agent إلى الإنتاج (أو قبل زيادة الترافيك):
- [ ] Trace لكل مهمة + spans لكل tool/LLM call
- [ ] تسجيل tokens/cost + latency لكل span
- [ ] Dataset للتقييم (50+ مثال) + regression suite
- [ ] Sampling في الإنتاج + LLM-judge rubric
- [ ] Alerts على: تكلفة/مهمة، P95 latency، tool error rate، drop في task success
- [ ] فصل البيئات: dev/staging/prod في التتبع
- [ ] سياسة privacy واضحة للـ logs
مقال ذو صلة (نظرة عامة متقدمة عن Multi‑Agent)
- إن أردت مرجعاً شاملاً عن أنظمة Multi‑Agent على موقعك: مرجع شامل عن Multi‑Agent
12) FAQ: أسئلة شائعة
1) هل أحتاج Observability لوكيل بسيط؟
إذا كان الوكيل يتصل بأداة واحدة فقط، ربما تكفي logs بسيطة. لكن بمجرد وجود tool-calling أو retrieval، ستستفيد جداً من tracing.
2) ما الفرق بين Langfuse وLangSmith؟
Langfuse منصة مفتوحة المصدر تركّز على observability/prompt mgmt/evals مع تكاملات كثيرة وOTel. LangSmith منصة تطوير/تصحيح/تقييم لوكلاء وتطبيقات LLM مع تجربة قوية داخل منظومة LangChain. (مصادر: Langfuse Docs + LangSmith Docs)
3) هل Phoenix بديل أم مكمل؟
Phoenix قد يكون منصة رئيسية للتتبع والتقييم خصوصاً مع OpenInference، ويمكن تشغيله جنباً إلى جنب مع بنية OTel. (مصدر: Phoenix Docs + OpenInference)
4) كيف أقلل التكلفة بدون كسر الجودة؟
ابدأ بتتبع cost per span، ثم:
- استخدم نموذج أصغر في خطوات التخطيط/التصنيف
- اجعل النموذج الأكبر فقط في خطوة الإخراج النهائي
- قلل loops بإضافة limits وtimeouts
5) هل بوابة مثل Helicone أو LiteLLM مفيدة للـ agents؟
نعم عندما تريد توحيد مزودين متعددين + fallbacks + logging مركزي. (مصادر: Helicone GitHub + LiteLLM Docs)
13) الخلاصة
في 2026، بناء AI Agent جيد لا يعني فقط “يجاوب صح”؛ بل يعني:
- يمكن تشخيصه (traces مفهومة)
- يمكن قياسه (evals قابلة للتكرار)
- يمكن الوثوق به (monitoring + alerts + privacy)
ابدأ بخطوة واحدة اليوم: فعّل tracing لكل tool/LLM span، ثم ابنِ Dataset صغير للتقييم، وبعدها أضف alerts بسيطة على التكلفة والزمن. خلال أسبوع ستلاحظ تحسن كبير في الاستقرار والثقة.
رابط داخلي اختياري لمن يهتم بمراجعة أداة حديثة قد تفيد في سيناريوهات agents متعددة (كمثال على “مقال أدوات” مرتبط):
- Grok AI مراجعة شاملة 2026: مراجعة Grok AI 2026
نبذة عن الكاتب
أنا محرر تقني متخصص في الذكاء الاصطناعي وتطبيقاته العملية (وكلاء AI، RAG، مراقبة الجودة في الإنتاج). أركز على تبسيط المفاهيم المعقدة وتحويلها إلى خطوات قابلة للتطبيق.
عن الكاتب
علي – خبير تحسين محركات البحث (SEO) ومطور مهتم بالذكاء الاصطناعي. يدير موقع Lira Now المتخصص في أخبار وشروحات AI، ويساعد المواقع العربية على تحسين ترتيبها في نتائج البحث. شغوف باستكشاف أدوات الذكاء الاصطناعي الجديدة وتطبيقها عملياً.

اترك تعليقاً