زمن الاستجابة والتكلفة لكل خطوة
قِس استخدام الرموز والزمن الفعلي لكل عقدة حتى تتمكن من العثور على الخطوات البطيئة والمكلفة.
زمن الاستجابة والتكلفة لكل خطوة درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.
لماذا المقاييس لكل خطوة؟
يخبركم إجمالي زمن الاستجابة والتكلفة بأن النظام بطيء أو مكلف — لكنه لا يحدد أي خطوة بطيئة أو مكلفة. يلزم القياس لكل خطوة لإصلاح المشكلة.
تسجيل زمن الاستجابة
أضيفوه إلى كل span:
start = time.time()
# ... do work ...
span.duration_ms = (time.time() - start) * 1000فئات زمن الاستجابة
الخطوات البطيئة الشائعة في الوكلاء:
- استدعاء LLM — من 500ms إلى 10s
- بحث الويب — من 200ms إلى 2s
- Embedding — من 50ms إلى 200ms
- استعلام DB — من 5ms إلى 500ms
تسجيل التكلفة
بالنسبة إلى خطوات LLM، اضربوا عدد tokens في السعر:
PRICES = {
'gpt-4o-mini': {'in': 0.150 / 1e6, 'out': 0.600 / 1e6},
'gpt-4o': {'in': 2.50 / 1e6, 'out': 10.00 / 1e6},
'claude-sonnet-4-5': {'in': 3.00 / 1e6, 'out': 15.00 / 1e6}
}
def compute_cost(model, tokens_in, tokens_out):
p = PRICES[model]
return tokens_in * p['in'] + tokens_out * p['out']
cost = compute_cost('gpt-4o-mini', 1000, 500)
print(f"Cost for 1000 in / 500 out tokens on gpt-4o-mini: ${cost:.6f}")
التجميع لكل trace
اجمعوا الـ spans وصولًا إلى مستوى trace:
def trace_metrics(spans):
return {
'duration_ms': sum(s.duration_ms for s in spans),
'cost_usd': sum(s.cost_usd or 0 for s in spans),
'tokens': sum((s.tokens_in or 0) + (s.tokens_out or 0) for s in spans),
'step_count': len(spans)
}
from types import SimpleNamespace
spans = [
SimpleNamespace(duration_ms=120, cost_usd=0.002, tokens_in=100, tokens_out=50),
SimpleNamespace(duration_ms=340, cost_usd=0.005, tokens_in=200, tokens_out=80),
]
print(trace_metrics(spans))
p50 / p95 / p99
لا تنظروا إلى المتوسطات — فأزمنة استجابة الوكلاء ذات ذيول طويلة. أبلغوا عن النسب المئوية:
import numpy as np
durations = [t.duration_ms for t in last_1000_traces]
print('p50:', np.percentile(durations, 50))
print('p95:', np.percentile(durations, 95))
print('p99:', np.percentile(durations, 99))التكلفة لكل مستخدم
اجمعوا التكلفة حسب user_id يوميًا:
SELECT user_id, SUM(cost_usd) AS daily_cost
FROM traces
WHERE created_at::date = current_date
GROUP BY user_id
ORDER BY daily_cost DESC
LIMIT 100التكلفة حسب اسم الخطوة
ما الخطوات التي تستحوذ على معظم التكلفة؟ جمّعوا النتائج حسب الاسم:
SELECT name, SUM(cost_usd) AS total
FROM spans
WHERE trace_id IN (SELECT id FROM traces WHERE created_at::date = current_date)
GROUP BY name
ORDER BY total DESCمخططات زمن الاستجابة المتسلسلة
بالنسبة إلى trace واحد، ارسموا مخططًا متسلسلًا للـ spans بأسلوب Gantt. الشريط الأطول = عنق الزجاجة لديكم.
تعرض معظم واجهات التتبّع هذا تلقائيًا.
إطلاق تنبيهات للقيم الشاذة
- أطلقوا تنبيهًا إذا تضاعف زمن الاستجابة p95 مقارنة بالأسبوع السابق
- أطلقوا تنبيهًا إذا ارتفعت التكلفة اليومية إلى أكثر من ضعف المعتاد
- أطلقوا تنبيهًا إذا تجاوزت تكلفة أي مستخدم منفرد $X يوميًا
مقارنة نموذجين
تتيح لكم المقاييس لكل خطوة إجراء مقارنة A/B بين النماذج:
# Run 100 traces with gpt-4o-mini and 100 with haiku
# Compare p95 latency and average cost
# Pick the winner for the use case
print("Run 100 traces with gpt-4o-mini and 100 with haiku")
print("Compare p95 latency and average cost")
print("Pick the winner for the use case")
تتبّع توزيع tokens
يكشف المدرج التكراري لـ tokens الإدخال مقابل tokens الإخراج عن المشكلات: مثلًا، الوصول باستمرار إلى max_tokens = اقتطاع الإخراج = خطأ.
لماذا النسب المئوية؟
لماذا نُبلغ عن زمن الاستجابة p95 بدلًا من المتوسط؟
مراجعة
زمن الاستجابة والتكلفة لكل خطوة، مجمّعان لكل trace ولكل مستخدم، مع استخدام النسب المئوية بدلًا من المتوسطات، وإطلاق تنبيهات للقيم الشاذة. هذه هي لوحة المعلومات لديكم.
الأسئلة الشائعة
هل درس «زمن الاستجابة والتكلفة لكل خطوة» مجاني؟
نعم — نص درس «زمن الاستجابة والتكلفة لكل خطوة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.
ماذا ستتعلم في «زمن الاستجابة والتكلفة لكل خطوة»؟
قِس استخدام الرموز والزمن الفعلي لكل عقدة حتى تتمكن من العثور على الخطوات البطيئة والمكلفة. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟
لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «زمن الاستجابة والتكلفة لكل خطوة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟
نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا تحتاج إلى التتبع للوكلاء
- تسجيل استدعاءات الأدوات ومدخلاتها ومخرجاتها
- زمن الاستجابة والتكلفة لكل خطوة
- تصوير عمليات تشغيل الوكلاء (Langfuse وLangSmith)