Workstation Logo
المنتجات
مختبرات الذكاء الاصطناعيوكلاء OpenAIوكلاء ClaudeGrok BotWorkstation CRM (WSL CRM)التسويقجميع المنتجات
حلول الذكاء الاصطناعي
محطات عمل الذكاء الاصطناعيAI SME Packagesذكاء اصطناعي خاصمجموعات GPUذكاء اصطناعي طرفيمختبر الذكاء الاصطناعي للمؤسساتالذكاء الاصطناعي حسب الصناعة
الخدمات
Platform ModernisationDigital EngineeringData Foundations & AIAutonomous Operationsاستشارات الذكاء الاصطناعيأتمتة DevOpsالأمن السيبرانيتطوير البرمجياتبناء الوكلاءإعداد MLOps
من نحن
الشركاءقصص العملاء
المقالات
الوثائق
WSL ProxyRing PromoterWSL VaultJobshoutSysOps 24/7
المدونة
اتصل بناLogin
Workstation

محطات عمل الذكاء الاصطناعي وبرمجيات الوكلاء المتعددة والبنية التحتية لوحدات GPU وحلول الوكلاء الأذكياء للشركات الحديثة.

اتصل بنا

حلول الذكاء الاصطناعي

محطات عمل الذكاء الاصطناعيAI SME Packagesذكاء اصطناعي خاصمجموعات GPUذكاء اصطناعي طرفيمختبر الذكاء الاصطناعي للمؤسساتالذكاء الاصطناعي حسب الصناعة

المنتجات

جميع المنتجاتWSL CRM و ERPالتسويقوكلاء OpenAIWSL ProxyRing PromoterWSL VaultJobshoutSysOps 24/7

الشركة

من نحنلماذا Workstationالشركاءقصص العملاءالأسعاراتصل

الموارد

المقالاتالتوثيقالمدونةبحثخريطة الموقع
مكتب المملكة المتحدة
77-79 Marlowes, Hemel Hempstead HP1 1LFالاتجاهات - اسلك المخرج 20 من الطريق M25 في لندن الخارجيةرقم الشركة: 11641870الاثنين - الجمعة: 9:00 ص - 6:00 م بتوقيت GMT
+44 7515 356 146
مكتب بلجيكا
Workstation SRL, Rue Vanderkindere 34, 1180 Uccle, BrusselsBE 0751.518.683الاثنين - الجمعة: 9:00 ص - 6:00 م بتوقيت CET
+32 492 45 67 46
مكتب الهند
#159 Sector 9, Pocket 1, DDA Flats, 110077 Dwarka, New Delhi
+91 98881 98841

© 2026 Workstation AI. جميع الحقوق محفوظة.

الخصوصيةملفات تعريف الارتباطشروط الخدمةخريطة الموقع الإلكتروني
Home / Articles / Technology
الذكاء الاصطناعيLLMMLOpsObservabilityFinOps

الكشف عن اختناقات LLM: إمكانية المراقبة، وOTEL، والتحكم في التكلفة

الموجز الفني: مخططات OTEL الممتدة، والمجمعات، وFinOps PromQL، وميزانيات الوكلاء، والتسجيل، ومنصات LLM لوكلاء الإنتاج

September 4, 2026Technology9 min read

Workstation الموجز الفني: كيفية الكشف عن LLM واختناقات الوكلاء المتعددين باستخدام فتح القياس عن بعدومنصات Prometheus/Grafana/Thanos وLLM مثل لانجفيوز / لمنر - بما في ذلك المخططات الممتدة، وإسناد التكلفة، وأخذ العينات، والحد الأقصى للاستخدام الصعب. رفيق: مدونة الأعمال · التقديم: الشحن التوربيني LLMs · المعمل: مختبر الذكاء الاصطناعي للمؤسسات.

الكشف عن اختناقات LLM باستخدام OpenTelemetry والتحكم في التكلفة

ملخص الوكيل.
  • مشكلة: يتم إخفاء تكلفة الوكيل ووقت الاستجابة في القفزات (LLM → الأدوات → RAG → إعادة المحاولة)، وليس في مقياس واحد "النموذج بطيء".
  • معيار: أداة مع OpenTelemetry؛ مخطط سمة واحد للرموز المميزة والنموذج والمستأجر والطريق والتكلفة المقدرة_بالدولار الأمريكي.
  • مسار المقاييس: بروميثيوس (+ ثانوس) للإشارات الذهبية؛ Grafana لـ SLOs ولوحات FinOps.
  • مسار LLM: Langfuse/LMNR للآثار والنتائج ومجموعات البيانات والإصدارات السريعة.
  • يتحكم: الرموز المميزة واستدعاءات الأدوات وجولات التصحيح؛ نماذج الطريق بصعوبة الخطوة.
  • يفوز: قم بقياس التكلفة لكل مهمة ناجحة قبل شراء المزيد من GPU أو زيادة حصص API.

1. ماذا يعني "عنق الزجاجة" بالنسبة لوكلاء LLM

تختلف اختناقات وقت التدريب (البيانات، FLOPs) عن وقت الخدمة و وقت الوكيل الاختناقات. في عوامل الإنتاج، أنماط النفايات السائدة هي:

  • انتفاخ سريع - مطالبات النظام كبيرة الحجم، والسياق غير المستخدم، وفقدان البادئة/ذاكرة التخزين المؤقت.
  • مبالغة في النموذج - النماذج الحدودية المستخدمة لتصنيف/توجيه الخطوات التي يمكن لنموذج صغير القيام بها.
  • حلقات لا حدود لها - إعادة محاولة الأداة ودورات التصحيح الذاتي بدون ميزانية صعبة (راجع مقايضات Self-Debugging في الشحن التوربيني LLMs).
  • الإنتظار الخارجي - قواعد البيانات المتجهة، وSaaS APIs، وبوابات الإنسان داخل الحلقة المنسوبة بشكل خاطئ إلى "زمن استجابة LLM".
  • خدمة التجزئة — نفايات ذاكرة التخزين المؤقت KV على منطقة GPU (منطقة PagedAttention/vLLM) بعد التأكد بالفعل من أن الرسم البياني للوكيل سليم.

بدون الآثار الموزعة لا يمكنك فصلها. وبالتالي، فإن إمكانية المراقبة ليست لوحة معلومات من الجيد امتلاكها، بل هي مستوى التحكم لـ FinOps وSRE في منتجات الذكاء الاصطناعي.

2. العمارة المرجعية

جامع OpenTelemetry يمتد إلى Prometheus وLangfuse وGrafana وFinOps

User / Orchestrator
    → Agent runtime (tools, RAG, LLM calls)
        → OpenTelemetry SDK (spans + metrics)
            → OTEL Collector (filter, sample, redact)
                ├─→ Prometheus / Thanos   (rates, costs, SLOs)
                ├─→ Grafana              (boards, alerts)
                └─→ Langfuse / LMNR      (traces, scores, datasets)
FinOps / policy layer reads the same metrics to enforce caps and model routing.

3. مخطط نطاق OpenTelemetry لمكالمات LLM

اعتماد اتفاقية واحدة عبر الأطر (LangChain، ووكلاء Go/Python المخصصون، ومجموعات Bedrock SDK). تفضيل الاصطلاحات الدلالية حيثما وجدت، والتوسع باستخدام سمات Workstation المستقرة:

يصف مثال لماذا
gen_ai.systemopenai / أنثروبي / حجر الأساس / vllmمجموعات الموفر
gen_ai.request.modelكلود السوناتة-4 / اللاما-3.1-8بالتكلفة والجودة حسب الموديل
gen_ai.usage.input_tokens1820سائق التكلفة الفوري
gen_ai.usage.output_tokens410سائق تكلفة الإنجاز
wsw.estimated_cost_usd0.0124FinOps دون الانضمام إلى جداول الأسعار لاحقًا
wsw.tenant_idذروة-منتجرد المبالغ المدفوعة
wsw.routesupport.triageإسناد ميزة المنتج
wsw.agent_stepخطة / أداة / نقدالعثور على خطوات باهظة الثمن
wsw.retry_n2كشف الحلقة
wsw.prompt_versionالفرز@v17الارتباط الانحدار
from opentelemetry import trace
from opentelemetry.trace import Status, StatusCode

tracer = trace.get_tracer("workstation.agents")

PRICE_IN = 0.003 / 1000   # example $/token — load from config
PRICE_OUT = 0.015 / 1000

def complete_llm(model: str, prompt: str, tenant: str, route: str):
    with tracer.start_as_current_span("gen_ai.chat") as span:
        span.set_attribute("gen_ai.system", "openai")
        span.set_attribute("gen_ai.request.model", model)
        span.set_attribute("wsw.tenant_id", tenant)
        span.set_attribute("wsw.route", route)
        try:
            resp = client.chat.completions.create(
                model=model,
                messages=[{"role": "user", "content": prompt}],
            )
            usage = resp.usage
            cost = usage.prompt_tokens * PRICE_IN + usage.completion_tokens * PRICE_OUT
            span.set_attribute("gen_ai.usage.input_tokens", usage.prompt_tokens)
            span.set_attribute("gen_ai.usage.output_tokens", usage.completion_tokens)
            span.set_attribute("wsw.estimated_cost_usd", round(cost, 6))
            return resp.choices[0].message.content
        except Exception as e:
            span.record_exception(e)
            span.set_status(Status(StatusCode.ERROR, str(e)))
            raise
يمارس: حساب estimated_cost_usd في المدى. لا تنتظر وظيفة ليلية لضم أعداد الرموز المميزة إلى قوائم الأسعار - يحتاج أصحاب المنتجات عند الطلب وأصحاب المنتجات إلى FinOps مباشرة.

3ب. التسلسل الهرمي والأمتعة المتعددة للوكلاء

تحتاج الرسوم البيانية للوكلاء إلى نموذج ثابت للأصل/الفرع، لذا يتم تجميع التكلفة بشكل صحيح:

session (root)
  └─ agent.run {wsw.route, wsw.tenant_id}
       ├─ rag.retrieve {wsw.agent_step=retrieve}
       ├─ gen_ai.chat {wsw.agent_step=plan, model=…}
       ├─ tool.execute {tool=…, wsw.retry_n}
       ├─ gen_ai.chat {wsw.agent_step=synthesize}
       └─ eval.score {score.name, score.value}
  • جذر واحد لكل مهمة مستخدم - ليس لكل مكالمة LLM. تكلفة الجلسة = مجموع الأطفال wsw.estimated_cost_usd.
  • أمتعة - نشر wsw.tenant_id و wsw.route عبر العمال / قوائم الانتظار غير المتزامنة، بحيث ترث امتدادات الأداة تسميات رد المبالغ المدفوعة دون إعادة توصيل كل موقع اتصال.
  • روابط - عندما يبدأ وكيل فرعي تتبعًا جديدًا (على سبيل المثال، مستهلك قائمة انتظار منفصل)، استخدم روابط الامتداد مرة أخرى إلى الجلسة الرئيسية حتى يتمكن Langfuse/Grafana من دمج الرسم البياني.
  • دائما عينة عالية التكلفة - أخذ عينات من الرأس بنسبة 5-20% يعد أمرًا جيدًا للمسارات السعيدة؛ فرض العينة عندما يتجاوز إنفاق الجلسة الحد أو الحالة = خطأ.

4. المقاييس المهمة (بروميثيوس)

تصدير الرسوم البيانية والعدادات (عبر مقاييس OTEL أو عميل Prometheus). الحد الأدنى لمجموعة قابلة للحياة:

  • llm_requests_total{model,route,status}
  • llm_tokens_total{model,direction} حيث الاتجاه ∈ {الإدخال والإخراج}
  • llm_estimated_cost_usd_total{model,tenant,route}
  • llm_ttft_seconds / llm_e2e_seconds الرسوم البيانية
  • agent_tool_calls_total{tool,status}
  • agent_retries_total{route}
  • agent_task_success_total{route} - القاسم للتكلفة لكل نجاح

استعلامات FinOps المشتقة (رسومات PromQL):

# Cost per successful task (last 1h), by route
sum(rate(llm_estimated_cost_usd_total[1h])) by (route)
  /
sum(rate(agent_task_success_total[1h])) by (route)

# Retry tax
sum(rate(agent_retries_total[1h])) by (route)
  /
sum(rate(llm_requests_total[1h])) by (route)

ثانوس (أو Mimir/Cortex) مهم عندما يطلب قسم Finance إنفاق نموذج ربع سنوي. يعد بروميثيوس المحلي وحده مناسبًا عند الطلب؛ إنه ليس أرشيف FinOps.

5. لوحات جرافانا والتنبيهات

شحن ثلاثة جماهير من مصدر بيانات واحد:

  1. عند الطلب: معدل الخطأ، p95 e2e، فشل التبعية (ناقل DB / الأدوات).
  2. منصة: الرموز المميزة/الرموز، GPU util (إذا كانت مستضافة ذاتيًا)، عمق قائمة الانتظار، TTFT.
  3. العمليات المالية / المنتج: $/النجاح من قبل المستأجر والطريق، أعلى المطالبات باهظة الثمن، مزيج النماذج.

التنبيه على الحرق، وليس الغرور:

  • التكلفة لكل نجاح > ميزانية SLO لـ 30 مليونًا
  • معدل إعادة المحاولة > 15% للمسار
  • خرق p95 e2e مع ارتفاع رموز الإدخال (الانحدار السريع)

6. منصات LLM الأصلية: Langfuse، وLMNR، والأصدقاء

المقاييس تخبرك الذي - التي ارتفعت التكلفة؛ تخبرك منصات LLM التي موجه الإصدار و ما مدى الأداة فعلت ذلك. لانجفيوز و لمنر أمثلة مفتوحة المصدر لهذه الفئة:

  • الآثار الهرمية (الجلسة → الوكيل → LLM / امتدادات الأداة)
  • درجات الإنسان وLLM كقاضي
  • مجموعات البيانات للتقييم دون الاتصال بالإنترنت عند تغيير المطالبات
  • قياس الاستخدام الاختياري عن بعد لتحسين المنتج (احترام سياسات الخصوصية)

نمط التكامل: احتفظ بـ OTEL كنظام تسجيل لـ SRE؛ التصدير المزدوج أو الجسر إلى Langfuse للهندسة السريعة. لا تخترع قاموس سمات ثانيًا غير متوافق.

يمكن للتجارب الإطارية، مثل أوقات تشغيل الوكيل الوظيفي الأول (التي يتم تسويقها تاريخيًا حول وكلاء التدفق المنظمين)، أن تقلل من النمط المعياري، ولكنها تتعامل مع الأطر المتخصصة باعتبارها اختيارية - حيث أن معايير قابلية المراقبة تدوم أكثر من ذلك.

7. خط أنابيب التسجيل: يدوي مقابل تلقائي

طريقة تطبيق وضع الفشل
يدوي الإبهام / نماذج التقييم في Langfuse UI؛ تقييمات ومراجعات مجموعة الذهب. لا مقياس. لا تزال مطلوبة للمعايرة.
تلقائي LLM-كحكم، وفحص الوحدات، ومدققات المخطط، واستدعاء الاسترجاع. انجراف القاضي؛ الألعاب إذا كان التحسين فقط للقاضي.

قم بإرفاق النتائج كأحداث ممتدة أو نتائج Langfuse بمفتاح wsw.prompt_version. بوابة الترقيات للمطالبات بنفس الطريقة التي تقوم بها ببوابة إصدارات التطبيق - Ring Promoter للكود؛ بوابات التقييم للمطالبات.

8. عملية توفير التكاليف (تفصيلية)

  1. الأسبوع الأساسي: لا تغيير في السلوك؛ الأجهزة فقط. احصل على $/النجاح، والرموز المميزة/النجاح، ومعدل إعادة المحاولة.
  2. الإسناد: ترتيب المسارات حسب الإنفاق × الحجم. اختر الثلاثة الأوائل.
  3. توجيه النموذج: تقسيم التصنيف/الاستخراج إلى نماذج صغيرة/محلية؛ الحفاظ على الحدود للتوليف. إعادة قياس درجات الجودة.
  4. الجراحة العاجلة: إزالة مخططات الأدوات غير المستخدمة؛ تقصير عدد قليل من اللقطات. تمكين ذاكرة التخزين المؤقت للبادئة حيثما تكون آمنة.
  5. قبعات الحلقة: الحد الأقصى لاستدعاءات الأداة، والحد الأقصى لجولات التصحيح الذاتي، والتراجع الأسي باستخدام قواطع الدائرة.
  6. أخذ العينات: الاحتفاظ بالمقاييس بنسبة 100%؛ تتبعات العينات (على سبيل المثال، 5-20%) بالإضافة إلى أخذ العينات دائمًا بحثًا عن الأخطاء والجلسات عالية التكلفة.
  7. التنقيح: إزالة معلومات تحديد الهوية الشخصية (PII) من سمات الامتداد قبل التصدير؛ قم بتخزين المطالبات الكاملة فقط في المتاجر المعتمدة مع TTL.
  8. إيقاع المراجعة: لوحة FinOps الأسبوعية؛ معايرة القاضي الشهرية ضد البشر.

8 ب. إدارة استخدام الوكيل بالميزانيات المباشرة

لوحات المعلومات وحدها لا توقف العملاء الهاربين. فرض الميزانيات في وقت التشغيل، وإصدار القرار كحدث ممتد، والتنبيه عندما تصل الجلسات إلى الحد الأقصى في كثير من الأحيان:

# Pseudocode: hard budget around an agent session
class Budget:
    def __init__(self, max_usd=0.50, max_tool_calls=8, max_llm_calls=12):
        self.max_usd, self.max_tool_calls, self.max_llm_calls = max_usd, max_tool_calls, max_llm_calls
        self.spent = 0.0
        self.tools = self.llms = 0

    def charge(self, usd: float, kind: str):
        self.spent += usd
        if kind == "tool":
            self.tools += 1
        else:
            self.llms += 1
        if self.spent > self.max_usd or self.tools > self.max_tool_calls or self.llms > self.max_llm_calls:
            raise RuntimeError("agent budget exhausted")
  • قبعات لكل جلسة - مكالمات USD، LLM، مكالمات الأدوات (أعلاه).
  • الحصص اليومية لكل مستأجر - Redis/العداد بمفتاح wsw.tenant_id; إرجاع مسار متدهور يمكن التحكم فيه عند استنفاده.
  • سياسة النموذج لكل مسار — نماذج القائمة المسموح بها لـ support.triage مقابل legal.draft; رفض أو خفض السرعة في السياسة المفقودة والتسجيل wsw.policy_action=downshift.
  • مفاتيح أداة عاجزة - وسيطات أداة التجزئة بحيث لا تؤدي عمليات إعادة المحاولة إلى إصدار فاتورة مزدوجة لـ APIs الخارجية.
  • صيغة التكلفة — cost = in_tokens × p_in + out_tokens × p_out + tool_fees; ينعش p_in/p_out من ورقة أسعار تم إصدارها بحيث تظل بيانات Thanos التاريخية قابلة للمقارنة.

المقياس الذي يجب مراقبته بعد هبوط الأحرف الاستهلالية: agent_budget_exhausted_total{route,reason}. الارتفاع المفاجئ يعني إما إساءة الاستخدام، أو حلقة أدوات معطلة، أو ميزانية ضيقة للغاية بالنسبة لأعباء العمل الحقيقية.

9. رسم تكوين المجمع

# otel-collector-config.yaml (illustrative)
receivers:
  otlp:
    protocols:
      http:
      grpc:
processors:
  memory_limiter: {}
  batch: {}
  attributes/redact:
    actions:
      - key: gen_ai.prompt
        action: delete
exporters:
  prometheus:
    endpoint: "0.0.0.0:8889"
  otlp/langfuse:
    endpoint: "${LANGFUSE_OTLP_ENDPOINT}"
    headers:
      Authorization: "Bearer ${LANGFUSE_KEY}"
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, attributes/redact, batch]
      exporters: [otlp/langfuse]
    metrics:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [prometheus]

10. الإيجابيات والسلبيات، ومتى لا داعي للقلق

الايجابيات: رد المبالغ المدفوعة، وفرز أسرع للحوادث، وعائد استثمار قابل للقياس على التغييرات السريعة/النموذجية، ومسارات التدقيق الملائمة للامتثال، واللغة المشتركة بين فرق تعلم الآلة والمنصة.

سلبيات: ديون الأجهزة؛ تكلفة التخزين إذا احتفظت بكل مطالبة إلى الأبد؛ خطر إرسال معلومات تحديد الهوية الشخصية إلى الواجهة الخلفية الخاطئة؛ وحدة تحكم أخرى للمهندسين للتعلم.

تخطي (في الوقت الحالي) إذا: لديك مهمة مجمعة واحدة غير متصلة بالإنترنت مع إنفاق يومي ثابت ولا يوجد وكلاء تفاعليون. لا تزال الرموز المميزة للسجل؛ تخطي المكدس متعدد الخلفيات بالكامل حتى يظهر التزامن.

11. قائمة التحقق من الهجرة

  • ☐ OTEL SDK في وقت تشغيل الوكيل؛ جامع في الكتلة
  • ☐ تشمل سمات النطاق النموذج والرموز المميزة والتكلفة والمستأجر والطريق
  • ☐ مقاييس بروميثيوس + لوحة Grafana FinOps
  • ☐ يتم توصيل Langfuse (أو LMNR) لمسار حرج واحد على الأقل
  • ☐ أحرف كبيرة على الرموز / الأدوات / إعادة المحاولة
  • ☐ سياسة التنقيح التي تمت مراجعتها من قبل الأمن
  • ☐ مراجعة أسبوعية للدولار/النجاح لأفضل الطرق
  • ☐ وثيقة ADR تربط إمكانية الملاحظة ← التقديم (vLLM) ← الترويج (Ring Promoter)

12. مادة Workstation ذات الصلة

  • رفيق مدونة الأعمال
  • الشحن التوربيني LLMs - قم بإصلاح التقديم بعد أن تتمكن من رؤية عنق الزجاجة
  • Ring Promoter - تعزيز خدمات الوكيل مع البوابات الصحية
  • Muse Glimmer / الوكلاء المحليين
  • اتصل بـWorkstation لارتباطات Enterprise AI Lab

مراجع

  1. وثائق القياس عن بعد مفتوحة
  2. لانجفيوز/لانجفيوز
  3. lmnr-ai/lmnr
  4. بروميثيوس · ثانوس · جرافانا

نشرت من قبل Workstation.

Share this article

More in Technology

Jobshout SEO Analyst AI Agent — Analyse Any Website & Fix SEO Issues Automatically

Jobshout SEO Analyst AI Agent — Analyse Any Website & Fix SEO Issues Automatically

Technical brief: SEO Analyst modes, real workstation.co.uk run (score 44), findings with fix prompts, Improve/Publish paths, and Jobshout supervised agents

Read more
WSLVault: Steal the Server. Not the Secrets.

WSLVault: Steal the Server. Not the Secrets.

Technical brief: AES-256-GCM envelope hierarchy, cryptographic tenant isolation, engines, identity/MFA, active/active regions, Kubernetes deploy, and video chapters

Read more
Workstation WSL Proxy — Docker Image Optimisation, Build Cache, Full Deploy Workflow, and Shipping It with AI Assistance

Workstation WSL Proxy — Docker Image Optimisation, Build Cache, Full Deploy Workflow, and Shipping It with AI Assistance

Technical brief: prebuilt OpenResty Dockerfile, Buildx/GHA cache, Ansible extract, delivery pipeline DEPLOY_MODE, and an operator+agent loop for finishing pipeline work

Read more