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

سجل القرارات

يتم تسجيل كل قرار يُتخذ أثناء دورة التطور الذاتي في سجل قرارات منظّم. يوفّر هذا السجل مسار تدقيق كاملًا لما قرره نظام التطور، ولماذا قرره، وما الذي حدث نتيجة لذلك، مما يتيح التحليل اللاحق والتصحيح وrollback الآمن.

نظرة عامة

يلتقط سجل القرارات دورة الحياة الكاملة لقرارات التطور:

  • توليد المقترح -- ما التحسين المقترح ولماذا
  • التقييم -- كيف جرى تقييم المقترح مقابل معايير السلامة والملاءمة
  • الحكم -- هل تمت الموافقة على المقترح أو رفضه أو تأجيله
  • التنفيذ -- ما التغييرات التي طُبقت وآثارها المباشرة
  • النتيجة -- النتائج المقاسة بعد التغيير، بما في ذلك أي تراجعات

بخلاف سجل تدقيق الأمان (الذي يسجل جميع الأحداث الأمنية)، يركّز سجل القرارات تحديدًا على عملية الاستدلال الخاصة بنظام التطور الذاتي.

بنية سجل القرار

يُخزن كل قرار كسجل منظّم:

الحقلالنوعالوصف
decision_idStringمعرف فريد (UUIDv7 مرتب زمنيًا)
cycle_idStringدورة التطور التي أنتجت هذا القرار
layerLayerطبقة التطور: L1 (memory) أو L2 (prompt) أو L3 (strategy)
timestampDateTime<Utc>وقت تسجيل القرار
proposalProposalالتغيير المقترح (النوع، الوصف، المعلمات)
rationaleStringتفسير سبب اقتراح هذا التغيير
data_pointsusizeعدد عينات البيانات التي استند إليها القرار
fitness_beforef64درجة fitness قبل التغيير
fitness_afterOption<f64>درجة fitness بعد التغيير (تُملأ بعد التنفيذ)
verdictVerdictapproved أو rejected أو deferred أو auto_approved
verdict_reasonStringسبب الوصول للحكم (مثل نتيجة فحص السلامة)
executedboolهل تم تطبيق التغيير فعليًا
rollback_idOption<String>مرجع snapshot الخاص بالـ rollback، إن تم إنشاؤه
outcomeOption<Outcome>نتيجة ما بعد التنفيذ: improved أو neutral أو regressed أو rolled_back

أنواع الأحكام

الحكمالوصفالمُشغّل
auto_approvedموافقة تلقائية من خط الأنابيبتغييرات L1 بدرجة مخاطر أقل من الحد
approvedتمت الموافقة بعد التقييمتغييرات L2/L3 التي تتجاوز فحوصات السلامة
rejectedرُفض من خط أنابيب السلامةفشل فحوصات sanity، أو مخاطر عالية، أو تعارضات مكتشفة
deferredأُجّل لتقييم لاحقبيانات غير كافية أو مخاوف متعلقة بصحة النظام

الإعداد

toml
[self_evolution.decision_log]
enabled = true
storage = "file"                # "file" or "database"
path = "~/.local/share/openprx/decisions/"
format = "jsonl"                # "jsonl" or "json" (pretty-printed)
retention_days = 180            # auto-delete entries older than 180 days
max_entries = 10000             # maximum entries before rotation

[self_evolution.decision_log.database]
backend = "sqlite"
path = "~/.local/share/openprx/decisions.db"

مرجع الإعداد

الحقلالنوعالافتراضيالوصف
enabledbooltrueتفعيل أو تعطيل تسجيل القرارات
storageString"file"واجهة التخزين الخلفية: "file" أو "database"
pathString"~/.local/share/openprx/decisions/"الدليل الخاص بملفات السجل (وضع الملف)
formatString"jsonl"تنسيق الملف: "jsonl" (مضغوط) أو "json" (مقروء بشريًا)
retention_daysu64180حذف تلقائي للإدخالات الأقدم من N يومًا. 0 = الاحتفاظ دائمًا
max_entriesusize10000أقصى عدد إدخالات لكل ملف قبل التدوير
database.backendString"sqlite"واجهة قاعدة البيانات: "sqlite" أو "postgres"
database.pathString""مسار قاعدة البيانات (SQLite) أو عنوان الاتصال (PostgreSQL)

مثال على سجل قرار

json
{
  "decision_id": "019520b0-5678-7000-8000-000000000042",
  "cycle_id": "cycle_2026-03-21T03:00:00Z",
  "layer": "L2",
  "timestamp": "2026-03-21T03:05:12.345Z",
  "proposal": {
    "type": "prompt_refinement",
    "description": "Shorten system prompt preamble by 15% to reduce token usage",
    "parameters": {
      "target": "system_prompt.preamble",
      "old_token_count": 320,
      "new_token_count": 272
    }
  },
  "rationale": "Analysis of 500 sessions shows the preamble consumes 8% of context window with low recall contribution. A/B test variant with shortened preamble showed 3% improvement in response relevance.",
  "data_points": 500,
  "fitness_before": 0.72,
  "fitness_after": 0.75,
  "verdict": "approved",
  "verdict_reason": "Passed all safety checks. Risk score 0.12 (threshold: 0.5). No conflicts with existing policies.",
  "executed": true,
  "rollback_id": "snap_019520b0-5678-7000-8000-000000000043",
  "outcome": "improved"
}

الاستعلام عن سجل القرارات

أوامر CLI

bash
# View recent decisions
prx evolution decisions --tail 20

# Filter by layer
prx evolution decisions --layer L2 --last 30d

# Filter by verdict
prx evolution decisions --verdict rejected --last 7d

# Filter by outcome
prx evolution decisions --outcome regressed

# Show a specific decision with full details
prx evolution decisions --id 019520b0-5678-7000-8000-000000000042

# Export decisions for analysis
prx evolution decisions --last 90d --format json > decisions_q1.json

الوصول البرمجي

يمكن الوصول إلى سجل القرارات عبر Gateway API:

bash
# List recent decisions
curl -H "Authorization: Bearer <token>" \
  http://localhost:3120/api/v1/evolution/decisions?limit=20

# Get a specific decision
curl -H "Authorization: Bearer <token>" \
  http://localhost:3120/api/v1/evolution/decisions/019520b0-5678-7000-8000-000000000042

تحليل أنماط القرارات

يتيح سجل القرارات عدة أنواع من التحليل:

معدل الموافقة حسب الطبقة

تابع نسبة المقترحات الموافق عليها في كل طبقة لفهم فعالية نظام التطور:

bash
prx evolution stats --last 90d

مثال على المخرجات:

Layer   Proposed  Approved  Rejected  Deferred  Approval Rate
L1      142       138       2         2         97.2%
L2      28        19        6         3         67.9%
L3      5         2         3         0         40.0%

اكتشاف التراجع

حدد القرارات التي أدت إلى تراجعات:

bash
prx evolution decisions --outcome regressed --last 90d

يتضمن كل قرار متراجع القيمتين fitness_before وfitness_after، ما يجعل قياس الأثر والربط مع التغيير مباشرًا.

تتبع Rollback

عند تنفيذ rollback لقرار ما، يسجل السجل ما يلي:

  1. القرار الأصلي مع outcome = "rolled_back"
  2. سجل قرار جديد لعملية rollback نفسها
  3. rollback_id يعود إلى snapshot الذي تمت استعادته

تتيح هذه السلسلة تتبع دورة الحياة كاملة: المقترح، التنفيذ، اكتشاف التراجع، ثم rollback.

تنفيذ Rollback من سجل القرارات

لإجراء rollback يدوي لقرار محدد:

bash
# View the decision and its rollback snapshot
prx evolution decisions --id <decision_id>

# Restore the snapshot
prx evolution rollback --snapshot <rollback_id>

تنشئ عملية rollback سجل قرار جديدًا يوثّق التدخل اليدوي.

التكامل مع نظام السلامة

يتكامل سجل القرارات مع خط أنابيب السلامة:

  • قبل التنفيذ -- يقرأ خط أنابيب السلامة القرارات السابقة لاكتشاف الأنماط (مثل الإخفاقات المتكررة في المنطقة نفسها)
  • بعد التنفيذ -- إشارات التراجع تُفعّل rollback تلقائيًا، ويُسجل ذلك في السجل
  • تحديد المعدل -- يفحص خط الأنابيب السجل لفرض الحد الأقصى للتغييرات لكل نافذة زمنية

القيود

  • سجلات القرارات محلية لمثيل PRX؛ النشرات متعددة العقد تتطلب تجميع سجلات خارجي
  • واجهة الملفات لا تدعم الاستعلامات المفهرسة؛ استخدم واجهة قاعدة البيانات للتحليل واسع النطاق
  • درجات fitness لا تُملأ إلا بعد اكتمال نافذة الملاحظة (قابلة للضبط حسب الطبقة)
  • قد لا تُحل القرارات المؤجلة أبدًا إذا لم يُعد تقييم شرط التأجيل

صفحات ذات صلة

Released under the Apache-2.0 License.