Pi Agent: Context Management

آخر تحديث: 2026-08-31

--- title: "إدارة السياق" description: "تعمّق في آلية سياق Pi Agent، بما في ذلك نوافذ السياق واستراتيجيات الاقتطاع وطرق الحقن وتقنيات التحسين." order: 7 lang: ar

السياق هو "الذاكرة قصيرة المدى" للوكيل — أدره جيداً، وإلا سينسى الوكيل "ما كان يتحدث عنه".


1. ما هو السياق

السياق هو جميع المعلومات المتراكمة خلال الجلسة:

TEXT 📖 للعرض فقط
بنية السياق
├── موجه النظام     -> تعليمات ثابتة (تعريف الدور، قيود السلوك)
├── سجل المحادثات   -> تراكم ديناميكي (رسائل المستخدم + استجابات الوكيل)
├── استدعاءات الأدوات -> عملية استدعاء الأدوات ونتائجها
└── سياق محقون      -> حقن إضافي (محتويات ملفات، بيانات API، إلخ)

2. نافذة السياق

تحدد نافذة السياق مقدار ما يمكن للوكيل "تذكره" في وقت واحد:

(1) تعيين حجم النافذة

PYTHON
from pi_agent import Agent

agent = Agent(name="quick", context_window=2048)       # صغيرة: توفير الرموز
agent = Agent(name="long", context_window=16384)       # كبيرة: تذكر أكثر
agent = Agent(name="full", context_window=65536)       # الحد الأقصى: القدرة الكاملة للنموذج

(2) النافذة مقابل التكلفة

حجم النافذة الأنسب لـ تكلفة الرموز
2K أسئلة وأجوبة، تعليمات بسيطة منخفضة
8K محادثات متعددة الأدوار، مراجعة كود متوسطة
32K تحليل مستندات طويلة عالية
64K تحليل مشاريع كبيرة عالية جداً

3. استراتيجيات الاقتطاع

عندما تتجاوز المحادثة النافذة، يوفر Pi Agent عدة استراتيجيات:

PYTHON
from pi_agent import Agent

agent = Agent(truncation_strategy="remove_oldest")     # إزالة أقدم الرسائل
agent = Agent(truncation_strategy="summarize")         # الذكاء الاصطناعي يلخّص الرسائل القديمة
agent = Agent(truncation_strategy="sliding_window", keep_recent=10)  # الاحتفاظ بآخر N جولات
الاستراتيجية المزايا العيوب
remove_oldest بسيطة وفعالة تفقد المعلومات المبكرة
summarize تحافظ على النقاط الرئيسية تكلفة رموز إضافية
sliding_window قابلة للتحكم قد تفقد سياقاً مهماً

4. حقن السياق

(1) حقن يدوي

PYTHON
from pi_agent import Agent

agent = Agent(name="coder")

with open("main.py") as f:
    agent.inject_context("current_file", f.read())

agent.inject_context("project_info", {
    "name": "my_app",
    "framework": "FastAPI",
    "python_version": "3.11"
})

response = agent.chat("Help me add a health check endpoint")
# الوكيل يعرف أن المشروع يستخدم FastAPI، يُولّد كوداً بأسلوب FastAPI

(2) حقن تلقائي

PYTHON
agent = Agent(name="auto", auto_context=True)
# يحقن تلقائياً بنية دليل العمل ومعلومات git، إلخ.

5. تقنيات التحسين

(1) موجهات نظام موجزة

PYTHON
# مطوّل
agent = Agent(system_prompt="You are a very excellent programming assistant, skilled in Python, respond in detail...")

# موجز
agent = Agent(system_prompt="Python expert. Be concise.")

(2) تنظيف السجل غير الضروري

PYTHON
agent.clear_history()         # مسح الكل عند تغيير الموضوع
agent.keep_recent(5)          # الاحتفاظ بآخر 5 جولات فقط

(3) التلخيص التلقائي

PYTHON
agent.summarize_context()     # تشغيل يدوي
agent = Agent(auto_summarize_threshold=3000)  # تلقائي عند الحد

❓ أسئلة شائعة

س نافذة السياق مقابل طول سياق النموذج؟
ج النافذة هي حدك على مستوى الوكيل ولا يمكن أن تتجاوز الحد الأقصى للنموذج. مثلاً، deepseek-chat يدعم 64K؛ تعيين 100K لن يكون له تأثير.
س inject_context مقابل الكتابة في الرسائل؟
ج محتوى inject_context مستمر (لا يُزال بالاقتطاع)، بينما محتوى الرسائل قد يُقتطع. الأفضل للمعلومات المهمة عن المشروع.
س كم عدد الرموز الإضافية التي يكلفها التلخيص التلقائي؟
ج حوالي 10-20% من المحتوى المُلخّص. مثلاً، تلخيص 4000 رمز يكلف ~400-800 إضافية.

📖 ملخص


📝 تمارين

  1. أساسي (الصعوبة: ⭐): أنشئ وكيلاً بقيم context_window مختلفة، لاحظ متى يبدأ "بالنسيان" في المحادثات متعددة الأدوار.
  2. متوسط (الصعوبة: ⭐⭐): قارن بين استراتيجيتي الاقتطاع remove_oldest وsummarize.
  3. متقدم (الصعوبة: ⭐⭐⭐): نفّذ "مدير سياق ذكي" يكتشف تلقائياً متى ينظف السجل ومتى يلخّص.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%