Home
Login

سيرينا هي مجموعة أدوات وكيل ترميز قوية تحول نماذج اللغة الكبيرة (LLM) إلى وكيل كامل الوظائف يعمل مباشرة على قاعدة التعليمات البرمجية الخاصة بك.

MITPython 1.2koraios Last Updated: 2025-06-13

تفاصيل مشروع سيرينا

نظرة عامة على المشروع

سيرينا هي مجموعة أدوات قوية لوكيل البرمجة الذكي، قادرة على تحويل نماذج اللغة الكبيرة (LLM) إلى وكلاء برمجة ذكية كاملة الوظائف، تعمل مباشرة على قاعدة التعليمات البرمجية الخاصة بك. تم تطوير هذا المشروع بواسطة Oraios AI وتم تقديمه كمصدر مفتوح لمجتمع المطورين.

الميزات الأساسية

🚀 القدرات الأساسية

  • استرجاع التعليمات البرمجية الدلالية ووظائف التحرير: توفير قدرات مشابهة لـ IDE، واستخراج كيانات التعليمات البرمجية على مستوى الرموز والاستفادة من الهياكل العلائقية.
  • مفتوح المصدر ومجاني بالكامل: تعزيز قدرات نماذج اللغة الكبيرة (LLM) الموجودة لديك دون أي تكلفة إضافية.
  • طرق تكامل متعددة: دعم خادم MCP وإطار عمل Agno وتكامل إطار عمل الوكيل الذكي المخصص.

🔧 المزايا التقنية

  • يعتمد على بروتوكول خادم اللغة (LSP): يوفر العديد من وظائف الاستعلام عن التعليمات البرمجية وتحريرها من خلال LSP المنفذ على نطاق واسع.
  • فهم على مستوى الرموز: يعتمد على الفهم الرمزي للتعليمات البرمجية للاكتشاف والتحرير، تمامًا كما يفعل المطورون ذوو الخبرة باستخدام IDE.
  • كفاءة ودقة عالية: حتى في المشاريع الكبيرة والمعقدة، يمكنه العثور بكفاءة على السياق الصحيح وتنفيذ العمليات الصحيحة.

لغات البرمجة المدعومة

دعم مباشر (جاهز للاستخدام)

  • Python
  • Java (ملاحظة: يبدأ ببطء، خاصة عند التشغيل الأول)
  • TypeScript

يتم دعم هذه اللغات من خلال مكتبة خادم اللغة multilspy المستخدمة من قبل سيرينا.

طرق التكامل

1. بروتوكول سياق النموذج (MCP)

توفر سيرينا خادم MCP يمكن دمجه مع العملاء التاليين:

  • Claude Desktop
  • IDE (مثل VSCode و Cursor و IntelliJ)
  • ملحقات (مثل Cline و Roo Code)
  • Goose (يوفر تجربة CLI جيدة)
  • والعديد من العملاء الآخرين، بما في ذلك تطبيق ChatGPT الذي سيتم دعمه قريبًا

2. إطار عمل Agno

من خلال Agno (إطار عمل الوكيل الذكي المستقل عن النموذج)، يمكن لسيرينا تحويل أي نموذج لغة كبير (LLM) تقريبًا إلى وكيل برمجة ذكي، يدعم:

  • نماذج API المدفوعة التي تقدمها Google و OpenAI و Anthropic
  • النماذج المجانية التي تقدمها Ollama و Together و Anyscale

3. إطار عمل الوكيل الذكي المخصص

يتم فصل تنفيذ أدوات سيرينا عن التعليمات البرمجية الخاصة بإطار العمل، مما يسهل تكييفها مع أي إطار عمل للوكيل الذكي.

حالات الاستخدام

يمكن استخدام سيرينا لأي مهمة برمجة، بما في ذلك:

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

بداية سريعة

التثبيت الأساسي

  1. قم بتثبيت uv (راجع الوثائق الرسمية للحصول على تعليمات التثبيت)
  2. استنساخ المستودع إلى /path/to/serena
  3. انسخ serena_config.template.yml إلى serena_config.yml واضبط الإعدادات
  4. انسخ myproject.template.yml إلى myproject.yml واضبط الإعدادات الخاصة بالمشروع
  5. إذا كنت بحاجة إلى تبديل المشاريع ديناميكيًا، فأضف جميع ملفات المشروع إلى قائمة projects في serena_config.yml

تكامل Claude Desktop

  1. قم بإنشاء ملف تكوين المشروع myproject.yml
  2. قم بتكوين خادم MCP في Claude Desktop:
    • افتح File / Settings / Developer / MCP Servers / Edit Config
    • في claude_desktop_config.json أضف:
    {
      "mcpServers": {
        "serena": {
          "command": "/abs/path/to/uv",
          "args": ["run", "--directory", "/abs/path/to/serena", "serena-mcp-server", "--project-file", "/abs/path/to/myproject.yml"]
        }
      }
    }
    
  3. احفظ التكوين وأعد تشغيل Claude Desktop

استخدام Goose CLI

  1. قم بتثبيت goose
  2. استخدم goose configure لإضافة ملحق
  3. حدد "Command-line Extension"، وقم بتسميته "Serena"
  4. أضف الأمر: /abs/path/to/uv run --directory /abs/path/to/serena serena-mcp-server /optional/abs/path/to/project.yml
  5. قم بتعطيل ملحق developer الافتراضي

استخدام Agno GUI

  1. قم بتنزيل كود agent-ui: npx create-agent-ui@latest
  2. قم بتثبيت Serena: uv pip install --all-extras -r pyproject.toml -e .
  3. انسخ .env.example إلى .env واملأ مفتاح API
  4. ابدأ تشغيل وكيل Agno: uv run python scripts/agno_agent.py
  5. ابدأ تشغيل UI: cd agent-ui && pnpm dev

الأدوات والتكوين

فئات الأدوات الرئيسية

  • أدوات استرجاع التعليمات البرمجية الدلالية: البحث عن الرموز والمراجع ومقتطفات التعليمات البرمجية
  • أدوات تحرير التعليمات البرمجية: إدراج واستبدال وحذف التعليمات البرمجية
  • عمليات نظام الملفات: قراءة وإنشاء وإدراج الملفات والمجلدات
  • تنفيذ Shell: تنفيذ أوامر shell
  • إدارة المشاريع: تفعيل المشاريع، والتوجيه، وإدارة الذاكرة

اعتبارات السلامة

  • عادة ما يوصى باستخدام جميع الأدوات لتوفير أقصى قيمة
  • تسمح أداة execute_shell_command بتنفيذ تعليمات برمجية عشوائية، ويجب استخدامها بحذر
  • يمكن تعطيل أوامر معينة في ملف تكوين المشروع
  • دعم وضع القراءة فقط (read_only: true)، يسمح فقط بالتحليل والاقتراحات، ولا يعدل قاعدة التعليمات البرمجية

مقارنة مع وكلاء البرمجة الذكية الآخرين

مقارنة بالوكلاء الذكيين القائمين على الاشتراك (Windsurf و Cursor و VSCode)

المزايا:

  • لا توجد رسوم اشتراك
  • لا يرتبط بـ IDE معين
  • لا يرتبط بنموذج لغة كبير أو API معين
  • يستخدم خادم اللغة لفهم التعليمات البرمجية على مستوى الرموز
  • مفتوح المصدر وقاعدة التعليمات البرمجية صغيرة، سهلة التوسيع والتعديل

العيوب:

  • لا يتم دمجه مباشرة في IDE، وفحص التعليمات البرمجية الجديدة ليس سلسًا مثل الأدوات المضمنة في IDE

مقارنة بالوكلاء الذكيين القائمين على API (Claude Code و Cline و Aider)

المزايا:

  • يمكن استخدامه كخادم MCP، ولا يتطلب مفتاح API، وتجنب رسوم API
  • هذه ميزة فريدة لسيرينا

أوجه التشابه:

  • يمكن استخدام كلاهما كوكيل ذكي أساسي لـ API
  • كلاهما قويان، والعيب الرئيسي هو رسوم API المحتملة العالية

مقارنة بخوادم MCP الأخرى

  • على حد علمنا، لا توفر خوادم MCP الأخرى المتعلقة بالبرمجة (مثل DesktopCommander و codemcp) أدوات استرجاع التعليمات البرمجية الدلالية وتحريرها
  • يعتمدون على التحليل النصي البحت
  • إن تكامل سيرينا لخادم اللغة و MCP يجعلها فريدة وقوية في التعامل مع مهام البرمجة الصعبة في قواعد التعليمات البرمجية الكبيرة

التوجيه ونظام الذاكرة

التوجيه

  • بشكل افتراضي، تنفذ سيرينا عملية التوجيه عند بدء التشغيل لأول مرة لمشروع ما
  • الهدف هو تعريف سيرينا بالمشروع وتخزين الذاكرة لاستخدامها في التفاعلات المستقبلية

نظام الذاكرة

  • يتم تخزين ملفات الذاكرة في .serena/memories/ في دليل المشروع
  • يمكن للوكيل الذكي اختيار قراءة هذه الملفات
  • يمكن للمستخدمين قراءة وتعديل ملفات الذاكرة حسب الحاجة، أو إضافة ملفات ذاكرة جديدة يدويًا
  • يحسن نظام الذاكرة بشكل كبير تجربة المستخدم مع سيرينا

اقتراحات الاستخدام

اختيار النموذج

  • يبدو أن الإصدار غير المفكر من Claude 3.7 يعمل بشكل أفضل من الإصدار المفكر
  • أظهر Gemini أداءً جيدًا في التجارب الأولية، لكنه لا يدعم MCP حتى الآن
  • Gemini رخيص نسبيًا ويمكنه التعامل مع أطوال سياق هائلة

أفضل الممارسات

  1. التحكم في الإصدار: من الأفضل البدء في مهام إنشاء التعليمات البرمجية من حالة git نظيفة
  2. تكوين Windows: قم بتعيين git config --global core.autocrlf true على Windows
  3. هيكل التعليمات البرمجية: استخدم تعليمات برمجية جيدة التنظيم ومعيارية ومكتوبة
  4. الاختبار والتسجيل: قم بتضمين معلومات تسجيل مفصلة واختبارات ذات مغزى
  5. التخطيط أولاً: بالنسبة للمهام المعقدة، قم أولاً بوضع المفاهيم والتخطيط
  6. إدارة السياق: يمكن إنشاء ملخصات ومتابعة في محادثات جديدة للمهام الطويلة

قائمة الأدوات الكاملة

فيما يلي قائمة كاملة بجميع أدوات سيرينا:

  • activate_project: تفعيل المشروع بالاسم
  • check_onboarding_performed: التحقق مما إذا كان قد تم تنفيذ التوجيه
  • create_text_file: إنشاء / الكتابة فوق ملف في دليل المشروع
  • delete_lines: حذف نطاق من الأسطر في ملف
  • delete_memory: حذف ذاكرة من تخزين الذاكرة الخاص بالمشروع في سيرينا
  • execute_shell_command: تنفيذ أمر shell
  • find_referencing_code_snippets: البحث عن مقتطفات التعليمات البرمجية التي تشير إلى رمز في موقع معين
  • find_referencing_symbols: البحث عن الرموز التي تشير إلى رمز في موقع معين
  • find_symbol: تنفيذ بحث رمزي عالمي (أو محلي)
  • get_active_project: الحصول على اسم المشروع النشط حاليًا
  • get_symbols_overview: الحصول على نظرة عامة على الرموز ذات المستوى الأعلى في ملف أو دليل
  • insert_after_symbol: إدراج محتوى بعد نهاية تعريف الرمز
  • insert_at_line: إدراج محتوى في سطر معين من الملف
  • insert_before_symbol: إدراج محتوى قبل بداية تعريف الرمز
  • list_dir: سرد الملفات والمجلدات في دليل
  • list_memories: سرد الذكريات في تخزين الذاكرة
  • onboarding: تنفيذ التوجيه
  • prepare_for_new_conversation: الاستعداد لمحادثة جديدة
  • read_file: قراءة ملف في دليل المشروع
  • read_memory: قراءة ذاكرة بالاسم المحدد
  • replace_lines: استبدال نطاق من الأسطر في ملف بمحتوى جديد
  • replace_symbol_body: استبدال التعريف الكامل للرمز
  • restart_language_server: إعادة تشغيل خادم اللغة
  • search_for_pattern: البحث عن نمط في المشروع
  • summarize_changes: تقديم ملخص للتغييرات في قاعدة التعليمات البرمجية
  • think_about_collected_information: أداة تفكير، تستخدم للنظر في اكتمال المعلومات التي تم جمعها
  • think_about_task_adherence: أداة تفكير، تستخدم لتحديد ما إذا كان الوكيل الذكي لا يزال على المسار الصحيح للمهمة الحالية
  • think_about_whether_you_are_done: أداة تفكير، تستخدم لتحديد ما إذا كانت المهمة قد اكتملت حقًا
  • write_memory: كتابة ذاكرة مسماة في تخزين الذاكرة للرجوع إليها في المستقبل

ملخص

سيرينا هي مجموعة أدوات قوية ومفتوحة المصدر بالكامل لوكيل البرمجة الذكي، من خلال الفهم الدلالي للتعليمات البرمجية وطرق التكامل المتعددة، توفر للمطورين حلاً مجانيًا وقويًا لمساعد البرمجة بالذكاء الاصطناعي. سواء كان ذلك من خلال خادم MCP المدمج مع Claude Desktop، أو من خلال إطار عمل Agno باستخدام نماذج اللغة الكبيرة (LLM) المختلفة، يمكن لسيرينا تحسين كفاءة البرمجة وجودة التعليمات البرمجية بشكل كبير.