Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

التجارب وتقييم Fitness ​

يستخدم نظام التطور الذاتي في PRX تجارب مضبوطة وتقييم fitness لقياس ما إذا كانت التغييرات المقترحة تحسّن أداء الوكيل فعليًا. كل مقترح تطور فوق L1 يُختبر عبر تجربة A/B قبل الاعتماد الدائم.

نظرة عامة ​

يوفّر نظام التجارب:

  • A/B testing -- تشغيل نسختي control وtreatment جنبًا إلى جنب
  • Fitness scoring -- قياس أداء الوكيل عبر درجة مركبة
  • Statistical validation -- ضمان أن التحسينات ذات دلالة وليست ضوضاء عشوائية
  • Automatic convergence -- ترقية الفائز وإحالة الخاسر للتقاعد عندما تكون النتائج حاسمة

دورة حياة التجربة ​

┌──────────┐    ┌──────────┐    ┌──────────┐    ┌───────────┐
│  Create  │───►│  Run     │───►│ Evaluate │───►│ Converge  │
│          │    │          │    │          │    │           │
│ Define   │    │ Split    │    │ Compare  │    │ Promote   │
│ variants │    │ traffic  │    │ fitness  │    │ or reject │
└──────────┘    └──────────┘    └──────────┘    └───────────┘

1. Create ​

تُنشأ التجربة عندما يولد خط أنابيب التطور مقترحًا:

  • نسخة control تمثل الإعداد الحالي
  • نسخة treatment تمثل التغيير المقترح
  • معلمات التجربة: المدة، حجم العينة، تقسيم الحركة

2. Run ​

أثناء التجربة، تُسند الجلسات إلى النسخ:

  • تُسند الجلسات عشوائيًا حسب نسبة تقسيم الحركة
  • كل جلسة تعمل بالكامل تحت نسخة واحدة (دون تبديل أثناء الجلسة)
  • تُراقَب النسختان وفق مجموعة مؤشرات fitness نفسها

3. Evaluate ​

بعد الوصول إلى الحد الأدنى للمدة أو حجم العينة:

  • تُحسب درجات fitness لكلا النسختين
  • يُختبر مستوى الدلالة الإحصائية (الافتراضي: ثقة 95%)
  • يُحسب حجم الأثر لقياس الدلالة العملية

4. Converge ​

بناءً على نتائج التقييم:

  • Treatment wins -- يُرقّى التغيير المقترح إلى الإعداد الافتراضي
  • Control wins -- يُرفض التغيير المقترح وتبقى نسخة control
  • Inconclusive -- تُمدد التجربة أو يُؤجل التغيير

الإعداد ​

toml
[self_evolution.experiments]
enabled = true
default_duration_hours = 168       # 1 week default
min_sample_size = 100              # minimum sessions per variant
traffic_split = 0.5                # 50/50 split between control and treatment
confidence_level = 0.95            # 95% statistical confidence required
min_effect_size = 0.02             # minimum 2% improvement to accept

[self_evolution.experiments.auto_converge]
enabled = true
check_interval_hours = 24          # evaluate results every 24 hours
max_duration_hours = 720           # force convergence after 30 days

مرجع الإعداد ​

الحقلالنوعالافتراضيالوصف
enabledbooltrueتفعيل أو تعطيل نظام التجارب
default_duration_hoursu64168مدة التجربة الافتراضية بالساعات (أسبوع واحد)
min_sample_sizeusize100الحد الأدنى للجلسات لكل نسخة قبل التقييم
traffic_splitf640.5نسبة الجلسات المسندة إلى نسخة treatment (من 0.0 إلى 1.0)
confidence_levelf640.95مستوى الثقة الإحصائية المطلوب
min_effect_sizef640.02الحد الأدنى لتحسن fitness (كنسبة) لقبول treatment
auto_converge.enabledbooltrueالترقية/الرفض تلقائيًا عندما تكون النتائج حاسمة
auto_converge.check_interval_hoursu6424عدد مرات التحقق من النتائج
auto_converge.max_duration_hoursu64720فرض convergence بعد هذه المدة (30 يومًا افتراضيًا)

بنية سجل التجربة ​

تُتبع كل تجربة كسجل منظَّم:

الحقلالنوعالوصف
experiment_idStringمعرف فريد (UUIDv7)
decision_idStringرابط إلى القرار الأصلي
layerLayerطبقة التطور: L1 أو L2 أو L3
statusStatusrunning أو evaluating أو converged أو cancelled
created_atDateTime<Utc>وقت إنشاء التجربة
converged_atOption<DateTime<Utc>>وقت انتهاء التجربة
controlVariantوصف نسخة control
treatmentVariantوصف نسخة treatment
control_sessionsusizeعدد الجلسات المسندة إلى control
treatment_sessionsusizeعدد الجلسات المسندة إلى treatment
control_fitnessFitnessScorefitness المجمّع لنسخة control
treatment_fitnessFitnessScorefitness المجمّع لنسخة treatment
p_valueOption<f64>الدلالة الإحصائية (كلما انخفضت كانت الدلالة أعلى)
winnerOption<String>"control" أو "treatment" أو null إذا كانت النتيجة غير حاسمة

تقييم Fitness ​

يقيس Fitness أداء الوكيل عبر عدة أبعاد. تُستخدم درجة fitness المركبة للمقارنة بين نسخ التجارب وتتبع تقدم التطور عبر الزمن.

أبعاد Fitness ​

البعدالوزنالوصفطريقة القياس
response_relevance0.30مدى ارتباط استجابات الوكيل باستفسارات المستخدمLLM-as-judge scoring
task_completion0.25نسبة المهام المكتملة بنجاحTool call success rate
response_latency0.15الزمن من رسالة المستخدم إلى أول رمز استجابةPercentile-based (p50, p95)
token_efficiency0.10الرموز المستهلكة لكل مهمة ناجحةالأقل أفضل
memory_precision0.10صلة الذكريات المسترجعةRecall relevance scoring
user_satisfaction0.10إشارات رضا المستخدم الصريحةThumbs up/down, corrections

الدرجة المركبة ​

درجة fitness المركبة هي مجموع موزون:

fitness = sum(dimension_score * dimension_weight)

يتم تطبيع كل بعد إلى نطاق 0.0--1.0 قبل الوزن. كما تكون الدرجة المركبة أيضًا ضمن 0.0--1.0، وكلما ارتفعت كانت أفضل.

إعداد Fitness ​

toml
[self_evolution.fitness]
evaluation_window_hours = 24       # aggregate metrics over this window
min_sessions_for_score = 10        # require at least 10 sessions for a valid score

[self_evolution.fitness.weights]
response_relevance = 0.30
task_completion = 0.25
response_latency = 0.15
token_efficiency = 0.10
memory_precision = 0.10
user_satisfaction = 0.10

[self_evolution.fitness.thresholds]
minimum_acceptable = 0.50          # fitness below this triggers an alert
regression_delta = 0.05            # fitness drop > 5% triggers rollback

مرجع إعداد Fitness ​

الحقلالنوعالافتراضيالوصف
evaluation_window_hoursu6424نافذة الزمن لتجميع مؤشرات fitness
min_sessions_for_scoreusize10الحد الأدنى للجلسات اللازمة لحساب درجة صالحة
weights.*f64(انظر الجدول أعلاه)وزن كل بُعد من أبعاد fitness (يجب أن يساوي المجموع 1.0)
thresholds.minimum_acceptablef640.50حد التنبيه لانخفاض fitness
thresholds.regression_deltaf640.05أقصى هبوط fitness قبل rollback تلقائي

أوامر CLI ​

bash
# List active experiments
prx evolution experiments --status running

# View a specific experiment
prx evolution experiments --id <experiment_id>

# View experiment results with fitness breakdown
prx evolution experiments --id <experiment_id> --details

# Cancel a running experiment (reverts to control)
prx evolution experiments cancel <experiment_id>

# View current fitness score
prx evolution fitness

# View fitness history over time
prx evolution fitness --history --last 30d

# View fitness breakdown by dimension
prx evolution fitness --breakdown

مثال مخرجات Fitness ​

Current Fitness Score: 0.74

Dimension            Score   Weight  Contribution
response_relevance   0.82    0.30    0.246
task_completion      0.78    0.25    0.195
response_latency     0.69    0.15    0.104
token_efficiency     0.65    0.10    0.065
memory_precision     0.71    0.10    0.071
user_satisfaction    0.60    0.10    0.060

Trend (last 7 days): +0.03 (improving)

أمثلة التجارب ​

L2 Prompt Optimization ​

تجربة L2 نموذجية تختبر تغييرًا في مطالبة النظام:

  • Control: مطالبة النظام الحالية (320 token)
  • Treatment: مطالبة نظام محسنة (272 token، أقصر بنسبة 15%)
  • Hypothesis: تقصير المطالبة يحرر نافذة السياق، مما يحسن صلة الاستجابة
  • Duration: 7 أيام، 100 جلسة لكل نسخة
  • Result: fitness للـ treatment يساوي 0.75 مقابل 0.72 للـ control (p = 0.03)، تمت ترقية treatment

L3 Strategy Change ​

تجربة L3 تختبر تغييرًا في سياسة التوجيه:

  • Control: توجيه جميع مهام البرمجة إلى Claude Opus
  • Treatment: توجيه مهام البرمجة البسيطة إلى Claude Sonnet والمعقدة إلى Opus
  • Hypothesis: توجيه أكثر كفاءة من حيث التكلفة بدون فقد الجودة
  • Duration: 14 يومًا، 200 جلسة لكل نسخة
  • Result: fitness للـ treatment يساوي 0.73 مقابل 0.74 للـ control (p = 0.42)، النتيجة غير حاسمة -- تم تمديد التجربة

الأساليب الإحصائية ​

يستخدم نظام التجارب الأساليب الإحصائية التالية:

  • Two-sample t-test لمقارنة متوسط درجات fitness بين النسخ
  • Mann-Whitney U test كبديل لا معلمي عندما تكون توزيعات fitness منحرفة
  • Bonferroni correction عند مقارنة عدة أبعاد fitness في الوقت نفسه
  • Sequential analysis مع alpha-spending للسماح بالإيقاف المبكر عندما تكون النتائج ذات دلالة واضحة

القيود ​

  • تتطلب التجارب حجم جلسات كافيًا؛ النشرات منخفضة الحركة قد تحتاج أسابيع للوصول إلى دلالة
  • إشارات رضا المستخدم تعتمد على تغذية راجعة صريحة، وقد تكون قليلة
  • استخدام LLM-as-judge لتقييم صلة الاستجابة يضيف زمنًا وتكلفة إلى خط أنابيب التقييم
  • يمكن تشغيل تجربة واحدة فقط لكل طبقة تطور في الوقت نفسه لتجنب التشويش
  • درجات fitness نسبية للنشرة المحددة؛ ولا يمكن مقارنتها بين مثيلات PRX المختلفة

صفحات ذات صلة ​

Released under the Apache-2.0 License.