حلقة الوكيل
حلقة الوكيل هي دورة التنفيذ المركزية التي تدير كل جلسة وكيل في PRX. كل تكرار يعالج استجابة LLM، ويوزع استدعاءات الأدوات، ويدير الذاكرة، ويقرر ما إذا كان سيستمر أو يعيد إجابة نهائية.
دورة حياة الحلقة
User Message
│
▼
┌─────────────┐
│ Build Context│──── Memory Recall
└──────┬──────┘
▼
┌─────────────┐
│ LLM Inference│──── Streaming Response
└──────┬──────┘
▼
┌─────────────┐
│ Parse Output │──── Tool Calls / Text
└──────┬──────┘
▼
Tool Calls?
├── Yes ──→ Execute Tools ──→ Loop Again
└── No ──→ Return Responseتوزيع الأدوات
عندما تحتوي استجابة LLM على استدعاءات أدوات، تقوم الحلقة بما يلي:
- التحقق من كل استدعاء أداة مقابل سياسة الأمان
- تنفيذ الاستدعاءات المعتمدة (وقد يتم ذلك بالتوازي)
- جمع النتائج وإعادتها إلى LLM
- متابعة الحلقة لخطوة الاستدلال التالية
البث
يقوم PRX ببث استجابات LLM رمزًا برمز إلى العميل، مع التخزين المؤقت في الوقت نفسه لاكتشاف استدعاءات الأدوات. يدعم مسار البث ما يلي:
- تمرير الرموز لحظيًا إلى عملاء CLI أو WebSocket
- التعامل مع الضغط العكسي عندما يكون العميل بطيئًا
- الإلغاء السلس عبر Ctrl+C أو إشارات API
استرجاع الذاكرة
قبل كل استدعاء إلى LLM، تسترجع الحلقة السياق المناسب من نظام الذاكرة:
- المنعطفات الحديثة للمحادثة (نافذة منزلقة)
- نتائج البحث الدلالي من مخزن التضمينات
- الحقائق المثبتة وتفضيلات المستخدم
ضغط السياق
عندما تتجاوز المحادثة نافذة السياق الخاصة بالنموذج، تُفعِّل الحلقة عملية الضغط:
- تلخيص المنعطفات الأقدم في تمثيل مكثف
- الحفاظ على نتائج استدعاءات الأدوات التي لا تزال مشارًا إليها
- إبقاء prompt النظام والذكريات المثبتة كما هي
الإعدادات
toml
[agent.loop]
max_iterations = 50
parallel_tool_calls = true
compaction_threshold_tokens = 80000
compaction_strategy = "summarize" # or "truncate"صفحات ذات صلة
- وقت تشغيل الوكيل -- نظرة عامة على البنية
- الوكلاء الفرعيون -- إنشاء وكلاء أبناء
- نظام الذاكرة -- واجهات الذاكرة الخلفية والاسترجاع