# نمط بدء الجلسة كل جلسة وكيل LLM يجب أن تتبع تسلسل بدء التشغيل القانوني هذا. تخطي الخطوات يؤدي إلى فقدان السياق، تفويت الرسائل، ونسيان المهام. ## النمط ``` 1. Recall all memories 2. Poll for unread chat messages 3. Check in-progress tasks 4. Build context from results 5. Process pending items before new work ``` ## التنفيذ ### الخطوة 1: استدعِ جميع الذكريات > [!CRITICAL] > هذا أهم استدعاء. بدونه، ليس لديك ذاكرة بالجلسات > السابقة. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/memory/recall ``` يُرجع ملخصًا نصيًا عاديًا لجميع الذكريات، مرتّبًا حسب الأولوية. ### الخطوة 2: استطلع للرسائل غير المقروءة ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/chat/poll ``` يُرجع الرسائل غير المقروءة من الإنسان. **يُعلّمها كمقروءة تلقائيًا.** ### الخطوة 3: تحقق من المهام قيد التقدم ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ "https://synapse.schaefer.zone/mind/tasks?status=in_progress" ``` يُرجع المهام التي كنت تعمل عليها في الجلسة الأخيرة. ### الخطوة 4: ابنِ السياق اجمع الاستجابات الثلاث في system prompt الخاص بك: ```python def build_context(memories, messages, tasks): context = f"""# SESSION CONTEXT ## Memories (from previous sessions) {memories} ## Unread Messages from Human {format_messages(messages)} ## Active Tasks {format_tasks(tasks)} ## Instructions - Address unread messages first - Resume active tasks before starting new work - Store new learnings as they happen (POST /memory) - Poll for new messages every 30-60 seconds """ return context ``` ### الخطوة 5: عالج العناصر المعلّقة ``` لكل رسالة غير مقروءة: - أقرّ بالاستلام (POST /chat/reply) - عالج محتوى الرسالة - خزّن أي التزامات جديدة كذكريات لكل مهمة قيد التقدم: - استدعِ لماذا كنت تعمل عليها - واصل من حيث توقفت - حدّث حالة المهمة أثناء تقدمك ``` ## مثال كامل ```python import os import requests URL = "https://synapse.schaefer.zone" KEY = os.environ["SYNAPSE_MIND_KEY"] def session_start(): """Canonical session start sequence.""" headers = {"Authorization": f"Bearer {KEY}"} # 1. استدعِ الذكريات r = requests.get(f"{URL}/memory/recall", headers=headers) memories = r.text # 2. استطلع الدردشة r = requests.get(f"{URL}/chat/poll", headers=headers) messages = r.json().get("messages", []) # 3. تحقق من المهام r = requests.get(f"{URL}/mind/tasks?status=in_progress", headers=headers) tasks = r.json().get("tasks", []) # 4. ابنِ السياق context = f"""You are a Synapse-enabled AI assistant. MEMORIES FROM PREVIOUS SESSIONS: {memories} UNREAD MESSAGES FROM HUMAN: {chr(10).join(f'- {m["content"]}' for m in messages) or 'None'} ACTIVE TASKS: {chr(10).join(f'- [{t["id"]}] {t["title"]}: {t.get("description", "")}' for t in tasks) or 'None'} INSTRUCTIONS: 1. Acknowledge each unread message 2. Resume active tasks 3. Store new learnings via POST /memory 4. Poll /chat/poll every 30-60 seconds """ return context # عند بدء الجلسة system_prompt = session_start() # مرّر إلى LLM... ``` ## أخطاء شائعة > [!WARNING] > - **تخطي الاستدعاء** — تبدأ بلا سياق، تكرر الأخطاء السابقة > - **نسيان استطلاع الدردشة** — رسائل الإنسان تذهب بلا رد > - **تجاهل المهام النشطة** — العمل يُنسى في منتصف التنفيذ > - **عدم تخزين شيء** — الجلسة لا تنتج قيمة دائمة ## تنويعات ### النمط الأدنى (LLMs بسياق صغير) لـ LLMs بنوافذ سياق صغيرة، تخطَّ الاستدعاء الكامل: ```bash # احصل على الإحصائيات فقط، لا المحتوى الكامل curl -H "Authorization: Bearer $KEY" .../memory/stats ``` ثم ابحث عن مواضيع محددة حسب الحاجة: ```bash curl -H "Authorization: Bearer $KEY" ".../memory/search?q=current+project" ``` ### النمط العدواني (وكلاء طويلو الأمد) لوكلاء يعملون لساعات، أضف إعادة استدعاء دورية: ```python while working: if time.time() - last_recall > 3600: # كل ساعة memories = recall() last_recall = time.time() # ... نفذ العمل ... ``` ## الخطوات التالية - [استراتيجية وسوم الذاكرة](/docs/llm-cookbook/memory-tagging-strategy) - [سير العمل المدفوع بالمهام](/docs/llm-cookbook/task-driven-workflow) - [نمط استطلاع الدردشة](/docs/llm-cookbook/chat-polling-pattern)