<div align="center">

<img alt="شعار simplemem" src="https://github.com/user-attachments/assets/6ea54ad1-e007-442c-99d7-1174b10d1fec" width="450">

<div align="center">

## ذاكرة مدى الحياة الفعّالة لوكلاء نماذج اللغة الكبيرة — النصوص والوسائط المتعددة

<small>خزّن الذكريات طويلة الأمد واضغطها واسترجعها بضغط دلالي بلا فقدان للمعلومات. مع دعم الوسائط المتعددة الآن: نصوص وصور وصوت وفيديو.</small>

</div>

<p><b>يعمل مع أي منصة ذكاء اصطناعي تدعم MCP (ذاكرة نصية) أو تكامل Python (وسائط متعددة كاملة)</b></p>

<table>
<tr>

<td align="center" width="100">
  <a href="https://www.anthropic.com/claude">
    <img src="https://cdn.simpleicons.org/claude/D97757" width="48" height="48" alt="Claude Desktop" />
  </a><br/>
  <sub>
    <a href="https://www.anthropic.com/claude"><b>Claude Desktop</b></a>
  </sub>
</td>

<td align="center" width="100">
  <a href="https://cursor.com">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://cdn.simpleicons.org/cursor/FFFFFF">
      <img src="https://cdn.simpleicons.org/cursor/000000" width="48" height="48" alt="Cursor" />
    </picture>
  </a><br/>
  <sub>
    <a href="https://cursor.com"><b>Cursor</b></a>
  </sub>
</td>

<td align="center" width="100">
  <a href="https://lmstudio.ai">
    <img src="https://github.com/lmstudio-ai.png?size=200" width="48" height="48" alt="LM Studio" />
  </a><br/>
  <sub>
    <a href="https://lmstudio.ai"><b>LM Studio</b></a>
  </sub>
</td>

<td align="center" width="100">
  <a href="https://cherry-ai.com">
    <img src="https://github.com/CherryHQ.png?size=200" width="48" height="48" alt="Cherry Studio" />
  </a><br/>
  <sub>
    <a href="https://cherry-ai.com"><b>Cherry Studio</b></a>
  </sub>
</td>

<td align="center" width="100">
  <a href="https://pypi.org/project/simplemem/">
    <img src="https://cdn.simpleicons.org/pypi/3775A9" width="48" height="48" alt="PyPI" />
  </a><br/>
  <sub>
    <a href="https://pypi.org/project/simplemem/"><b>حزمة PyPI</b></a>
  </sub>
</td>

<td align="center" width="100">
  <sub><b>+ أي عميل<br/>MCP</b></sub>
</td>

</tr>
</table>

<div align="center">

<br/>

[🇨🇳 中文](./README.zh-CN.md) •
[🇯🇵 日本語](./README.ja.md) •
[🇰🇷 한국어](./README.ko.md) •
[🇪🇸 Español](./README.es.md) •
[🇫🇷 Français](./README.fr.md) •
[🇩🇪 Deutsch](./README.de.md) •
[🇧🇷 Português](./README.pt-br.md)<br/>
[🇷🇺 Русский](./README.ru.md) •
🇸🇦 **العربية** •
[🇮🇹 Italiano](./README.it.md) •
[🇻🇳 Tiếng Việt](./README.vi.md) •
[🇹🇷 Türkçe](./README.tr.md) •
[🇬🇧 English](../../README.md)

<br/>

[![Project Page](https://img.shields.io/badge/🎬_INTERACTIVE_DEMO-Visit_Our_Website-FF6B6B?style=for-the-badge&labelColor=FF6B6B&color=4ECDC4&logoColor=white)](https://aiming-lab.github.io/SimpleMem-Page)

<p align="center">
  <a href="https://arxiv.org/abs/2601.02553"><img src="https://img.shields.io/badge/arXiv-2601.02553-b31b1b?style=flat&labelColor=555" alt="arXiv"></a>
  <a href="https://github.com/aiming-lab/SimpleMem"><img src="https://img.shields.io/badge/github-SimpleMem-181717?style=flat&labelColor=555&logo=github&logoColor=white" alt="GitHub"></a>
  <a href="../../LICENSE"><img src="https://img.shields.io/github/license/aiming-lab/SimpleMem?style=flat&label=license&labelColor=555&color=2EA44F" alt="الرخصة"></a>
  <a href="https://github.com/aiming-lab/SimpleMem/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat&labelColor=555" alt="PRs مرحب بها"></a>
  <br/>
  <a href="https://pypi.org/project/simplemem/"><img src="https://img.shields.io/pypi/v/simplemem?style=flat&label=pypi&labelColor=555&color=3775A9&logo=pypi&logoColor=white" alt="PyPI"></a>
  <a href="https://pypi.org/project/simplemem/"><img src="https://img.shields.io/pypi/pyversions/simplemem?style=flat&label=python&labelColor=555&color=3775A9&logo=python&logoColor=white" alt="Python"></a>
  <a href="https://mcp.simplemem.cloud"><img src="https://img.shields.io/badge/MCP-mcp.simplemem.cloud-14B8A6?style=flat&labelColor=555" alt="خادم MCP"></a>
  <a href="https://github.com/aiming-lab/SimpleMem"><img src="https://img.shields.io/badge/Claude_Skills-supported-FFB000?style=flat&labelColor=555" alt="Claude Skills"></a>
  <br/>
  <a href="https://discord.gg/KA2zC32M"><img src="https://img.shields.io/badge/Discord-Join_Chat-5865F2?style=flat&labelColor=555&logo=discord&logoColor=white" alt="Discord"></a>
  <a href="../../fig/wechat_logo3.JPG"><img src="https://img.shields.io/badge/WeChat-Group-07C160?style=flat&labelColor=555&logo=wechat&logoColor=white" alt="WeChat"></a>
</p>

<br/>

[🚀 البداية السريعة](#-البداية-السريعة) • [🌟 نظرة عامة](#-نظرة-عامة) • [📦 التثبيت](#-التثبيت) • [🔌 خادم MCP](#-خادم-mcp-ذاكرة-نصية) • [📊 إعادة الإنتاج](#-إعادة-إنتاج-نتائج-الورقة) • [📝 الاستشهاد](#-الاستشهاد)

</div>

</div>

<br/>

## 🔥 الأخبار

- **[05/21/2026]** 📦 **حزمة `simplemem` الموحّدة — استيراد واحد، توجيه تلقائي!** تعيش الآن SimpleMem وOmni-SimpleMem وEvolveMem في حزمة واحدة. `from simplemem import SimpleMem` يختار تلقائيًا الواجهة الخلفية النصية أو متعددة الوسائط بناءً على أول استدعاء تجريه، و`simplemem.optimize(...)` يستغل حلقة التطوّر الذاتي في EvolveMem. ثبّتها في خطوة واحدة بـ `pip install -e .`.
- **[05/14/2026]** 🧬 **EvolveMem (v3.0) — ذاكرة تتطور ذاتيًا عبر AutoResearch!** تتطور البنية التحتية للاسترجاع ذاتيًا الآن من خلال تشخيص دائري مدفوع بنماذج اللغة الكبيرة. على LoCoMo، تتفوق EvolveMem على أقوى خط أساس بفارق **+25.7% نسبي**؛ وعلى MemBench بفارق **+18.9% نسبي**. يكتشف النظام أبعادًا جديدة للاسترجاع لم تكن موجودة في التصميم الأصلي. [عرض EvolveMem →](../../EvolveMem/)
- **[04/02/2026]** 🧠 **Omni-SimpleMem (v2.0) — الذاكرة متعددة الوسائط هنا!** تدعم SimpleMem الآن ذاكرة **النصوص والصور والصوت والفيديو**. محققةً **أفضل أداء جديد على LoCoMo (F1=0.613, +47%)** و**Mem-Gallery (F1=0.810, +51%)** مقارنةً بأفضل نتيجة سابقة. [عرض Omni-SimpleMem →](../../OmniSimpleMem/)
- **[02/09/2026]** 🚀 **ذاكرة عبر الجلسات — تتفوق على Claude-Mem بنسبة 64%!** [عرض توثيق الذاكرة عبر الجلسات →](../../cross/README.md)
- **[01/20/2026]** 📦 **SimpleMem متوفرة الآن على PyPI!** ثبّتها عبر `pip install simplemem`. [عرض دليل استخدام الحزمة →](../PACKAGE_USAGE.md)
- **[01/14/2026]** 🎉 **خادم SimpleMem MCP أصبح مباشرًا!** مستضاف سحابيًا على [mcp.simplemem.cloud](https://mcp.simplemem.cloud). [عرض توثيق MCP →](../../MCP/README.md)
- **[01/05/2026]** نُشرت ورقة SimpleMem على [arXiv](https://arxiv.org/abs/2601.02553)!

---

## 📑 جدول المحتويات

- [🚀 البداية السريعة](#-البداية-السريعة)
- [🌟 نظرة عامة](#-نظرة-عامة)
- [📦 التثبيت](#-التثبيت)
- [🐳 Docker](#-التشغيل-مع-docker)
- [🔌 خادم MCP](#-خادم-mcp-ذاكرة-نصية)
- [📊 إعادة إنتاج نتائج الورقة](#-إعادة-إنتاج-نتائج-الورقة)
- [🗺️ خارطة الطريق](#️-خارطة-الطريق)
- [📝 الاستشهاد](#-الاستشهاد)

---

## 🚀 البداية السريعة

### 🧠 فهم سير العمل الأساسي

على مستوى رفيع، تعمل SimpleMem كنظام ذاكرة طويلة الأمد للوكلاء المبنية على نماذج اللغة الكبيرة. يتكون سير العمل من ثلاث خطوات بسيطة:

1. **تخزين المعلومات** — تُعالَج الحوارات أو الحقائق وتُحوَّل إلى ذكريات منظّمة وذرية.
2. **فهرسة الذاكرة** — تُنظَّم الذكريات المخزّنة باستخدام تضمينات دلالية وبيانات وصفية منظّمة.
3. **استرجاع الذاكرة ذات الصلة** — عند تقديم استعلام، تسترجع SimpleMem المعلومات المخزّنة الأكثر صلةً بناءً على المعنى لا على الكلمات المفتاحية.

يتيح هذا التصميم لوكلاء نماذج اللغة الكبيرة الحفاظ على السياق واستدعاء المعلومات السابقة بكفاءة وتجنّب المعالجة المتكررة للتاريخ الزائد.

### 🎓 الاستخدام الأساسي

تُشحن SimpleMem كحزمة `simplemem` واحدة. الوضع الافتراضي `mode="auto"` **يكتشف تلقائيًا** الواجهة الخلفية التي يجب استخدامها بناءً على ما تستدعيه — دون الحاجة إلى أي إعداد يدوي:

```python
from simplemem import SimpleMem

mem = SimpleMem()  # mode="auto" — backend chosen by first call
```

أول استدعاء تجريه يحدد الواجهة الخلفية:

| أول استدعاء | الواجهة الخلفية المختارة | السبب |
|:--|:--|:--|
| `add_dialogue()` | **نصية** (SimpleMem) | واجهة برمجية قائمة على الحوار ← وضع النص |
| `add_text()` / `add_image()` / `add_audio()` / `add_video()` | **شاملة** (Omni-SimpleMem) | واجهة برمجية متعددة الوسائط ← الوضع الشامل |

<table>
<tr>
<td width="50%">

**📝 تلقائي ← نصي** (إدخال نصي خالص)

```python
from simplemem import SimpleMem

mem = SimpleMem()  # auto mode

# add_dialogue() → text backend auto-selected
mem.add_dialogue(
    "Alice",
    "Bob, let's meet at Starbucks tomorrow at 2pm",
    "2025-11-15T14:30:00",
)
mem.add_dialogue(
    "Bob",
    "Sure, I'll bring the market analysis report",
    "2025-11-15T14:31:00",
)
mem.finalize()

answer = mem.ask("When and where will Alice and Bob meet?")
# → "16 November 2025 at 2:00 PM at Starbucks"
```

</td>
<td width="50%">

**🧠 تلقائي ← شامل** (إدخال متعدد الوسائط)

```python
from simplemem import SimpleMem

mem = SimpleMem()  # auto mode

# add_image() → omni backend auto-selected
mem.add_text(
    "User loves hiking in the Rocky Mountains.",
    tags=["session_id:D1"],
)
mem.add_image("photo.jpg", tags=["session_id:D1"])
mem.add_audio("voice_note.wav", tags=["session_id:D1"])

result = mem.query("What does the user enjoy?", top_k=5)
for item in result.items:
    print(item["summary"])

mem.close()
```

</td>
</tr>
</table>

> **💡 نصيحة**: يختار الوضع التلقائي أخف واجهة خلفية تناسب بياناتك. لا يزال بإمكانك استخدام `mode="text"` أو `mode="omni"` صراحةً إن كنت تفضل ذلك.

---

### 🧬 متقدم: تحسين إعداد الاسترجاع

ضبط المعاملات الفائقة للاسترجاع دون اتصال على مجموعة التطوير الخاصة بك، ثم انشر `Config` الناتج للاستنتاج. هذه غلاف رفيع حول حلقة التطوّر الذاتي في EvolveMem:

```python
import simplemem
from simplemem import SimpleMem, load_config

# mem is a finalized SimpleMem instance with memories already built
dev_questions = [
    ("When is the meeting?", "2pm tomorrow at Starbucks"),
    ("What should Bob prepare?", "market analysis report"),
]
config = simplemem.optimize(mem, dev_questions, max_rounds=3)
config.save("my_config.json")

# Later, deploy with the optimized config
config = load_config("my_config.json")
mem = SimpleMem(config=config)
```

> تشغّل EvolveMem دورة تقييم → تشخيص → اقتراح → حماية مدفوعة بنماذج اللغة الكبيرة على أسئلة التطوير الخاصة بك، مع ضبط أعلام الاسترجاع الشاملة (top_k، وضع الدمج، التحقق من الإجابة، جولات التأمل، ...). للنسخة المستقلة الكاملة مع محوّلات المعايير وتجاوزات لكل فئة، راجع [`EvolveMem/`](../../EvolveMem/).

---

### 🚄 متقدم: المعالجة المتوازية

لمعالجة الحوارات على نطاق واسع، مكّن الوضع المتوازي:

```python
from simplemem import create

mem = create(
    mode="text",
    clear_db=True,
    enable_parallel_processing=True,  # ⚡ Parallel memory building
    max_parallel_workers=8,
    enable_parallel_retrieval=True,   # 🔍 Parallel query execution
    max_retrieval_workers=4
)
```

> **💡 نصيحة احترافية**: تقلل المعالجة المتوازية بشكل ملحوظ من زمن الاستجابة لعمليات الدُّفعات!

---

## 🌟 نظرة عامة

**SimpleMem** هي مجموعة ذاكرة موحّدة لوكلاء نماذج اللغة الكبيرة، مبنية على مبدأ واحد: تخزين ذاكرة *دلالية بلا فقدان للمعلومات* بكثافة معلوماتية عالية، حتى يتذكر الوكيل أكثر مع استهلاك رموز (tokens) أقل بكثير. تجمع الحزمة ثلاثة أعمال تشترك في هذا المبدأ لكنها تعالج أجزاء مختلفة من المشكلة.

### 📝 SimpleMem: النواة الكفؤة (نصية)

تفرض معظم أنظمة الذاكرة مقايضةً سيئة. إما أن تتراكم تاريخ التفاعل الخام بشكل سلبي (زائد، يستهلك الرموز) أو تشغّل حلقات استدلال مكلفة لتصفية الضوضاء (بطيئة، مكلفة). تضغط SimpleMem بدلاً من ذلك التفاعلات عبر مسار من ثلاث مراحل:

| المرحلة | ما تفعله |
|:--|:--|
| **1. الضغط الدلالي المنظّم** | تقطير التفاعلات غير المنظّمة إلى وحدات ذاكرة مدمجة (حقائق قائمة بذاتها بمراجع محلولة وطوابع زمنية مطلقة)، كل منها مفهرسة من خلال وجهات نظر متعددة متكاملة لاسترجاع مرن. |
| **2. التركيب الدلالي عبر الإنترنت** | دمج السياق المتصل خلال جلسة في تمثيلات مجردة موحّدة، مع إزالة الازدواجية أثناء بناء الذاكرة لا في وقت الاستعلام. |
| **3. التخطيط الاسترجاعي الواعي بالنوايا** | استنتاج نية البحث وراء الاستعلام لتحديد *ما* يجب استرجاعه وتجميع سياق دقيق ومدمج. |

يحقق هذا على معيار LoCoMo تحسينًا بنسبة 26.4% في متوسط F1 مقارنةً بالأنظمة السابقة مع تقليل استهلاك الرموز في وقت الاستنتاج بمقدار 30x تقريبًا. تفاصيل الآلية (طبقات الفهرس الهجين، أمثلة الضغط، تخطيط الاسترجاع): [**ذاكرة النص في SimpleMem →**](../text-memory.md).

### 🧠 Omni-SimpleMem: ذاكرة متعددة الوسائط (نص، صورة، صوت، فيديو)

تمتد Omni-SimpleMem بفلسفة الضغط أولاً إلى أربع طرائق، مبنيةً على ثلاثة مبادئ: **الاستيعاب الانتقائي** (تصفية مدفوعة بالإنتروبيا لكل طريقة)، **الاسترجاع التدريجي** (FAISS + BM25 هجيني مع توسيع هرمي لميزانية الرموز)، و**تعزيز الرسم البياني للمعرفة** (استدلال متعدد الخطوات عبر الوسائط). بدلاً من أن يكون مصمَّمًا يدويًا، اكتُشفت بنيته بواسطة مسار بحث ذاتي أجرى نحو 50 تجربة عبر معيارين، يشخّص أوجه الفشل ويقترح تغييرات معمارية بل ويصلح أخطاء مسار البيانات دون تدخل بشري في الحلقة الداخلية. والجدير بالذكر أن إصلاحات الأخطاء والتغييرات المعمارية أسهمت أكثر من كل ضبط المعاملات الفائقة مجتمعةً، محوّلةً النظام من خط أساس ساذج إلى أفضل أداء على كل من LoCoMo وMem-Gallery. التوثيق الكامل: [**Omni-SimpleMem →**](../../OmniSimpleMem/).

### 🧬 EvolveMem: استرجاع يتطور ذاتيًا

تسد EvolveMem نقطة عمياء يشاركها تقريبًا كل نظام ذاكرة: المحتوى المخزّن يتطور، لكن آلية *الاسترجاع* (دوال التسجيل، استراتيجيات الدمج، سياسات توليد الإجابات) تبقى مجمّدة بعد النشر. تشغّل EvolveMem عملية AutoResearch دائرية الحلقة (**تقييم ← تشخيص ← اقتراح ← حماية ← تكرار**) يشخّص فيها نموذج لغوي كبير إخفاقات كل سؤال ويقترح تغييرات إعداد، محمية بإعادة طرح تلقائية عند الانحدار وحوافز استكشاف خلال الركود. تكتشف أبعادًا جديدة للاسترجاع (تحليل الاستعلام، تبادل الكيانات، التحقق من الإجابة) غير موجودة في التصميم الأصلي، وتحسّن LoCoMo بنسبة 25.7% نسبية على أقوى خط أساس، وإعداداتها المتطورة تنتقل إيجابيًا عبر المعايير. التوثيق الكامل: [**EvolveMem →**](../../EvolveMem/).

### كيف تتلاءم معًا

`from simplemem import SimpleMem` يمنحك النواة النصية مع التوجيه التلقائي إلى الواجهة الخلفية متعددة الوسائط، و`simplemem.optimize(...)` يستغل EvolveMem لضبط الاسترجاع لبياناتك الخاصة. حزمة واحدة، نموذج ذهني واحد: اضغط بلا فقدان، استرجع بحسب النوايا، ودع النظام يواصل تحسين ذاته.

---

## 📦 التثبيت

### 📝 ملاحظات للمستخدمين لأول مرة

- تأكد من استخدام **Python 3.10+ في بيئتك النشطة**، وليس مجرد التثبيت العالمي.
- يجب تهيئة مفتاح API متوافق مع OpenAI **قبل تشغيل أي بناء للذاكرة أو استرجاع**، وإلا قد يفشل التهيئة.
- عند استخدام مزودين من غير OpenAI (مثل Qwen أو Azure OpenAI)، تحقق من اسم النموذج و`OPENAI_BASE_URL` في `config.py`.
- بالنسبة لمجموعات بيانات الحوار الكبيرة، يمكن أن يقلل تمكين المعالجة المتوازية بشكل ملحوظ من وقت بناء الذاكرة.

### 📋 المتطلبات

- 🐍 Python 3.10+
- 🔑 واجهة برمجية متوافقة مع OpenAI (OpenAI، Qwen، Azure OpenAI، إلخ.)

### 🛠️ الإعداد

```bash
# 📥 Clone repository
git clone https://github.com/aiming-lab/SimpleMem.git
cd SimpleMem

# 📦 Install dependencies (pinned versions)
pip install -r requirements.txt

# — OR — install as an editable package
pip install -e .                  # default: text + multimodal + evolver
pip install -e ".[server]"        # + MCP / HTTP server (mcp, fastapi, ...)
pip install -e ".[all]"           # everything, including dev tools

# ⚙️ Configure API settings
cp config.py.example config.py
# Edit config.py with your API key and preferences
```

### ⚙️ مثال على الإعداد

```python
# config.py
OPENAI_API_KEY = "your-api-key"
OPENAI_BASE_URL = None  # or custom endpoint for Qwen/Azure

LLM_MODEL = "gpt-4.1-mini"
EMBEDDING_MODEL = "Qwen/Qwen3-Embedding-0.6B"  # State-of-the-art retrieval
```

---

## 🐳 التشغيل مع Docker

يمكن تشغيل **خادم MCP** في Docker لبيئة متسقة ومعزولة. تُحفظ البيانات (LanceDB وقاعدة بيانات المستخدم) في وحدة تخزين على المضيف.

### المتطلبات الأولية

- [Docker](https://docs.docker.com/get-docker/) و[Docker Compose](https://docs.docker.com/compose/install/)

### تشغيل سريع

```bash
# From the repository root
docker compose up -d
```

- **واجهة الويب:** http://localhost:8000/
- **REST API:** http://localhost:8000/api/
- **MCP (SSE):** http://localhost:8000/mcp/sse?token=&lt;TOKEN&gt;

تُخزَّن البيانات في `./data` على المضيف (تُنشأ تلقائيًا).

### الإعداد المخصص

1. انسخ قالب البيئة وعدّله:
   ```bash
   cp .env.example .env
   # Edit .env: set JWT_SECRET_KEY, ENCRYPTION_KEY, LLM_PROVIDER, model URLs, etc.
   ```
2. شغّل مع ملف البيئة:
   ```bash
   docker compose --env-file .env up -d
   ```

### استخدام Ollama على المضيف

عندما يكون `LLM_PROVIDER=ollama` ويعمل Ollama على جهازك (ليس في Docker)، عيّن في `.env`:

```bash
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://host.docker.internal:11434/v1
```

على Linux، يُمكَّن `host.docker.internal` تلقائيًا عبر ملف Compose.

### أوامر مفيدة

```bash
docker compose logs -f simplemem   # Follow logs
docker compose down                 # Stop and remove containers
```

> 📖 للاستضافة الذاتية لخادم MCP (Docker أو المعدن المجرد)، راجع [توثيق MCP](../../MCP/README.md).

---

## 🔌 خادم MCP *(ذاكرة نصية)*

تتوفر SimpleMem كـ**خدمة ذاكرة مستضافة سحابيًا** عبر بروتوكول Model Context Protocol (MCP)، مما يتيح التكامل السلس مع مساعدي الذكاء الاصطناعي مثل Claude Desktop وCursor وعملاء MCP الآخرين المتوافقين.

**🌐 الخدمة السحابية**: [mcp.simplemem.cloud](https://mcp.simplemem.cloud) — أو استضف خادم MCP محليًا باستخدام [Docker](#-التشغيل-مع-docker).

### الميزات الرئيسية

| الميزة | الوصف |
|---------|-------------|
| **HTTP قابل للتدفق** | بروتوكول MCP 2025-03-26 مع JSON-RPC 2.0 |
| **عزل متعدد المستأجرين** | جداول بيانات لكل مستخدم مع مصادقة رمزية |
| **الاسترجاع الهجين** | بحث دلالي + مطابقة كلمات مفتاحية + تصفية بيانات وصفية |
| **محسَّن للإنتاج** | أوقات استجابة أسرع مع تكامل OpenRouter |

### الإعداد السريع

```json
{
  "mcpServers": {
    "simplemem": {
      "url": "https://mcp.simplemem.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}
```

> 📖 للحصول على تعليمات الإعداد التفصيلية ودليل الاستضافة الذاتية، راجع [توثيق MCP](../../MCP/README.md)

---

## 📊 إعادة إنتاج نتائج الورقة

أعد إنتاج أرقام LoCoMo / MemBench / Mem-Gallery من الأوراق البحثية. لكل ركيزة منشغلها الخاص بالمعايير في مجلدها الخاص. ثبّت إضافات المعيار أولاً: `pip install -e ".[benchmark]"`.

### 📝 SimpleMem (نصية) — LoCoMo

شغّل من جذر المستودع:

```bash
python test_locomo10.py                       # full LoCoMo benchmark
python test_locomo10.py --num-samples 5       # quick subset
python test_locomo10.py --result-file my_results.json
```

### 🧬 EvolveMem — التطور الذاتي + LoCoMo / MemBench

شغّل من مجلد `EvolveMem/` (راجع [`EvolveMem/README.md`](../../EvolveMem/README.md)):

```bash
cd EvolveMem
python run_evolution.py --data data/locomo10.json --max-rounds 7
python run_benchmark.py locomo --sample 0 --initial weak --max-rounds 3
python run_benchmark.py membench --agent FirstAgent --max-rounds 3
```

### 🧠 Omni-SimpleMem — LoCoMo / Mem-Gallery

شغّل من مجلد `OmniSimpleMem/` (راجع [`OmniSimpleMem/README.md`](../../OmniSimpleMem/README.md)):

```bash
cd OmniSimpleMem
python benchmarks/locomo/run_locomo.py --data-path /path/to/locomo10.json --model gpt-4o
```

---

## 🗺️ خارطة الطريق

القدرة الحالية حسب قناة التكامل:

| القدرة | Python (`pip install`) | خادم MCP (Claude Desktop، Cursor، ...) |
|:--|:--:|:--:|
| ذاكرة نصية | ✅ | ✅ |
| وسائط متعددة (صورة / صوت / فيديو) | ✅ | ⬜ مخطط |
| `optimize()` الاسترجاع المتطور ذاتيًا | ✅ | ⬜ مخطط |

العمل المخطط لسد الفجوة (خادم MCP هو خدمة نصية مستقلة متعددة المستأجرين؛ هذه ميزات حقيقية، وليست إصلاحات توثيق):

- [ ] **وسائط متعددة عبر MCP.** إضافة أدوات `memory_add_image` / `memory_add_audio` / `memory_add_video`. يحتاج إلى مسار رفع ملفات (base64 أو URL، إذ لا يمكن لـ MCP تمرير مسارات الملفات المحلية)، وتكيّف متعدد المستأجرين لواجهة تخزين Omni-SimpleMem الخلفية، والوصول من جانب الخادم إلى نماذج الرؤية والصوت.
- [ ] **EvolveMem عبر MCP.** كشف `optimize()` كأداة MCP. أكثر قابليةً للتنفيذ من الوسائط المتعددة (نص دخل، JSON إعداد خرج، دون نقل ملفات)، لكن مسترجع MCP يدعم حاليًا فقط `semantic_top_k` / `keyword_top_k` من أصل ~10 أبعاد تطوّرها EvolveMem. يتطلب توسيع مسترجع MCP لدعم المقابض المتبقية (structured top_k، وضع/أوزان الدمج، تبادل الكيانات، تحليل الاستعلام، التحقق من الإجابة)، ومحوّل لتشغيل حلقة التطور على الذكريات المخزّنة للمستأجر، وثبات الإعداد لكل مستأجر، والتنفيذ غير المتزامن (الحلقة ثقيلة على نماذج اللغة وستتجاوز مهلة الطلب المتزامن).
- [ ] **Docker** يرث كليهما تلقائيًا بمجرد دعم خادم MCP لهما (إضافة تبعيات الوسائط المتعددة إلى الصورة وحجم تخزين Omni).

للوسائط المتعددة والاسترجاع المتطور ذاتيًا اليوم، استخدم واجهة Python البرمجية (راجع [البداية السريعة](#-البداية-السريعة)).

---

## 📝 الاستشهاد

إذا استخدمت SimpleMem في بحثك، يرجى الاستشهاد بـ:

```bibtex
@article{simplemem2026,
  title={SimpleMem: Efficient Lifelong Memory for LLM Agents},
  author={Liu, Jiaqi and Su, Yaofeng and Xia, Peng and Zhou, Yiyang and Han, Siwei and  Zheng, Zeyu and Xie, Cihang and Ding, Mingyu and Yao, Huaxiu},
  journal={arXiv preprint arXiv:2601.02553},
  year={2026},
  url={https://arxiv.org/abs/2601.02553}
}
```

```bibtex
@article{evolvemem2026,
  title={EvolveMem: Self-Evolving Memory Architecture via AutoResearch for LLM Agents},
  author={Liu, Jiaqi and Ye, Xinyu and Xia, Peng and Zheng, Zeyu and Xie, Cihang and Ding, Mingyu and Yao, Huaxiu},
  journal={arXiv preprint arXiv:2605.13941},
  year={2026},
  url={https://arxiv.org/abs/2605.13941}
}
```

```bibtex
@article{omnisimplemem2026,
  title   = {Omni-SimpleMem: Autoresearch-Guided Discovery of Lifelong Multimodal Agent Memory},
  author  = {Liu, Jiaqi and Ling, Zipeng and Qiu, Shi and Liu, Yanqing and Han, Siwei and Xia, Peng and Tu, Haoqin and Zheng, Zeyu and Xie, Cihang and Fleming, Charles and Ding, Mingyu and Yao, Huaxiu},
  journal = {arXiv preprint arXiv:2604.01007},
  year    = {2026},
}
```

---

## 📄 الرخصة

هذا المشروع مرخّص بموجب **رخصة MIT** - راجع ملف [LICENSE](../../LICENSE) للتفاصيل.

---

## 🙏 شكر وتقدير

نودّ أن نشكر المشاريع والفرق التالية:

- 🔍 **نموذج التضمين**: [Qwen3-Embedding](https://github.com/QwenLM/Qwen) - أداء استرجاع متطور
- 🗄️ **قاعدة بيانات المتجهات**: [LanceDB](https://lancedb.com/) - تخزين عمودي عالي الأداء
- 📊 **المعيار**: [LoCoMo](https://github.com/snap-research/locomo) - إطار تقييم الذاكرة طويلة السياق
