ملاحظات إصدار Eigent v1.0.4: لوحات المهارات والموصّلات وتشغيل متعدد الجولات مستقر
تصفّح مواردك واضبطها من واجهة واحدة، ودع المهام الطويلة تنتهي كما تتوقع

يركز Eigent v1.0.4 على جعل مساحة العمل أسهل في القراءة. كانت المهارات والموصّلات سابقًا بطاقات إعدادات متراكمة، وأصبحت الآن لوحات على هيئة مكتبة، بعروض مجموعات حقيقية وصفحات تفصيلية وهيكل صفحة مشترك تستخدمه الصفحة الرئيسية والمهارات والموصّلات.
وتحت هذه الواجهة، يعالج الإصدار مجموعة محددة من الثغرات التي ظهرت مع طول مدة المهام: ضياع التعليمات بين جولات النموذج المتسلسلة، وفشل نقاط التفتيش عندما تستنسخ المهمة مستودعًا داخل المساحة، وموصّلات تعرض حالة تختلف عن بيئة التشغيل التي ستنفذها فعليًا، وتطبيق لا يُغلق بالكامل عند إغلاق نافذته الأخيرة.
🧩 المهارات والموصّلات كلوحات إدارة
إدارة مهارة يجب ألّا تعني التمرير في صفحة إعدادات حتى تعثر على البطاقة الصحيحة.
شكرًا لـ @Douglasymlai على إعادة بناء المهارات والموصّلات كواجهات مجموعة وتفاصيل في PR #1896، ولـ @4pmtong على المراجعة.
أصبحت المهارات لوحة على هيئة مكتبة. تُفتح كل مهارة في عرض تفصيلي خاص يوضح مصدرها، والصلاحيات التي تملكها، وما إذا كانت مفعّلة، والملفات التي تحتويها. وتتبع الموصّلات النموذج نفسه: نظرة عامة على المجموعة، ومسار للإضافة والاستكشاف، ورأس صفحة تعريفي يضم الأيقونة والاسم والمصدر وإجراء التثبيت أو الحفظ.
الجديد:
- لوحة مكتبة المهارات — تصفّح مهاراتك كمجموعة بدل كومة من بطاقات الإعدادات
- عروض تفاصيل المهارة — وسوم المصدر والصلاحيات وحالة التفعيل ومتصفح الملفات في مكان واحد
- مجموعة الموصّلات واستكشافها — مسار أوضح من تصفّح الموصّلات المتاحة إلى ضبط أحدها
- رأس تفاصيل الموصّل — الأيقونة والاسم والمصدر وإجراء التثبيت أو الحفظ معروضة كصفحة تعريفية
- أشرطة جانبية للتفاصيل — يبقى السياق المساند بجانب المورد الذي تفحصه
الفرق العملي هو سهولة الفحص. يمكنك الإجابة عن سؤال «من أين جاءت هذه المهارة، وإلى أي شيء تصل، وماذا بداخلها» دون مغادرة الصفحة التي بدأت منها.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1896
🏠 هيكل صفحة واحد للصفحة الرئيسية والمهارات والموصّلات
الاتساق ميزة حين تتنقل في التطبيق نفسه كل يوم.
يوحّد v1.0.4 الصفحة الرئيسية والإعدادات في هيكل صفحة واحد مبني من عناصر مشتركة: شريط أدوات للمجموعة، ومسار تنقل، وشريط محتوى، ورأس رجوع في الشريط الجانبي. وتتوافق الآن قوائم الصفحة الرئيسية والحالات الفارغة وتبويبات تفاصيل المساحة مع تخطيط المجموعة نفسه الذي تستخدمه المهارات والموصّلات.
التحسينات:
- تخطيطات مشتركة — الرأس ومسار التنقل وشريط القراءة نفسها في الصفحة الرئيسية والمهارات والموصّلات
- قوائم مجموعات متسقة — تتبع القوائم الرئيسية وتبويبات تفاصيل المساحة نموذج تخطيط واحدًا
- حالات فارغة أوضح — الواجهة غير المضبوطة تشرح نفسها بدل عرض لوحة فارغة
- تنقل متوقع — يتصرف مسار التنقل ورؤوس الرجوع بالطريقة نفسها في كل مكان
ومتى صار الهيكل مشتركًا، لم يعد التنقل بين الصفحة الرئيسية والمساحة والمهارة والموصّل يتطلب إعادة تعلّم الصفحة في كل مرة.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1896
🔁 عمل متعدد الجولات يحتفظ بتعليماته
المهمة الطويلة سلسلة من الجولات، وكل جولة تحتاج التعليمات الموثوقة نفسها.
شكرًا لـ @4pmtong على إصلاح إخفاقات Prompt Guard في الطلبات المتسلسلة عبر Responses API في PR #1883.
كان الطلب الأول في السلسلة ينجح، ولهذا بقي هذا الانحدار خفيًا. أما الطلبات اللاحقة فكانت تعيد استخدام previous_response_id، بينما لا تُنقل instructions العليا تلقائيًا، فيختفي موجّه الوكيل الموثوق بهدوء في منتصف التشغيل.
الإصلاحات:
- تعليمات مع كل طلب — يُرسل موجّه الوكيل الموثوق ضمن
instructionsفي Responses API في كل جولة، وليس في الأولى فقط - لا تكرار لمحتوى الموجّه — تُزال عناصر system وdeveloper من المدخل بعد ترقيتها إلى
instructions، ما يمنع تكرار الرموز والفوترة - بقاء Prompt Guard كما هو — تُحفظ رسالة الرفض الحالية للموجّهات غير الموثوقة
هذا نوع من الأخطاء لا يظهر إلا مع الطول. كانت المهام القصيرة تبدو سليمة، بينما كان العطل يسكن الجولة الثالثة.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1883
🧰 أدوات ذات مخططات معاملات ديناميكية
ليست كل أداة ذات شكل ثابت، ولا ينبغي للتحقق الصارم من المخططات أن يرفض ما ليس كذلك.
شكرًا لـ @fengju0213 على رفع camel-ai[eigent] إلى 0.2.91a7 وتحديث ملف القفل في الواجهة الخلفية في PR #1897.
يتضمن إصدار CAMEL الجديد آلية التراجع الخاصة بالمخططات الصارمة، وهي لازمة لمعاملات الأدوات التي تحتوي على تعيينات مفتوحة. وبها يحتفظ PlanningWorktreeToolkit.planning_exit_plan_mode بقيمة additionalProperties المخططية ويُرسل مع strict: false، فيتجنب استجابة 400 من جهة المزوّد مع الحفاظ على حقول القاموس الديناميكية التي تحتاجها الأداة فعلًا.
صارت الأدوات ذات المعاملات المفتوحة تعمل مع المزوّدين الذين يفرضون مخططات صارمة، بدل أن تفشل عند الاستدعاء.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1897
🌿 المستودعات المتداخلة داخل المساحات المدعومة بـ Git
منح v1.0.3 المساحات سجل إصدارات مدعومًا بـ Git. ويجعل v1.0.4 هذا السجل يصمد أمام مهمة تستنسخ مستودعًا بداخله.
شكرًا لـ @4pmtong على دعم المستودعات المتداخلة في نقاط تفتيش مساحة العمل في PR #1902.
يُبلغ Git عن المستودع المتداخل غير المتتبع كمدخل دليل واحد مثل ?? child-repository/. وكان مسار نقاط التفتيش يوحّد هذا المسار إلى child-repository، فيفشل التحقق من المسارات بعد اكتمال الاستنساخ فعلًا؛ عندها تُوسم نتيجة الأداة بأنها غير معروفة ويفشل التشغيل.
الإصلاحات:
- المستودعات المتداخلة حدود مستقلة — يُستثنى جذر Git المتداخل غير المتتبع بعد التحقق منه من نقطة تفتيش المستودع الأب ومن نطاق حالته
- دون gitlink ضمني أو تعديل ملفات التجاهل — لا يُعاد بناء المستودع الأب بصمت لاستيعاب المستودع الابن
- حالة الأب دون تغيير — تبقى HEAD ورمز الحالة والمسارات المتتبعة كما هي عند اكتمال نقطة التفتيش
- محتوى الابن سليم — يُحفظ المستودع المتداخل وإيداعاته
- سلامة شجرة العمل محفوظة — لا تُنظَّف أشجار العمل المعزولة ما دامت تحتوي مستودعًا متداخلًا غير مدموج
استنساخ مستودع داخل مساحة عمل يومي معتاد للوكيل. وبعد هذا الإصدار لم يعد ينهي التشغيل.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1902
🔌 حالات موصّلات تطابق بيئة التشغيل
الموصّل الذي يبلّغ عن حالة خاطئة أسوأ من الذي لا يبلّغ عن شيء.
يعالج إصلاحان من @4pmtong وجهي المشكلة نفسها.
كان البحث على الويب يختفي في اللحظة التي يحتاج فيها إلى الضبط. فبالنسبة لمن نموذجهم الافتراضي مخصص، كان البحث على الويب يُعد غير متصل حتى تفعيل Querit أو ضبط بيانات اعتماد Google Search، وكانت نظرة الموصّلات العامة تستبعد كل موصّل مدمج غير متصل. ولأن هذا الصف هو أيضًا مدخل لوحة إعداداته، لم يكن أمام المتأثرين أي طريق للضبط. الآن يبقى البحث على الويب ظاهرًا ويعرض حالته الحقيقية غير متصل، بينما تحتفظ النماذج المُدارة بحالة متصل كما كانت. ولم تتغير التصفية لبقية الموصّلات المدمجة غير المتصلة.
كان Slack يظهر متصلًا وهو ليس كذلك. في الوضع المستضاف، كانت واجهة الإعدادات تعامل وجود مجموعة إعدادات Slack محلية كاتصال صالح، بينما تنفّذ المهام المستضافة إجراءات Slack عبر Connector Gateway، حيث قد لا يملك المستخدم نفسه أي اتصال بـ Slack. فتظهر شارة الاتصال ثم يتبعها خطأ «الاتصال غير موجود» أثناء التشغيل. صارت الموصّلات المدمجة التي يملك Connector Gateway مسار المستخدم الجديد لها تتبع سياسة مركزية: عند تفعيل Gateway يُخفى Slack المدمج من صفحة الموصّلات ومن منتقي الموصّلات في المحادثة ومن اختيار أدوات Worker الجديد. وعند تعطيل Gateway يبقى Slack المدمج متاحًا لبيئات التشغيل المحلية فقط.
وفي الحالتين يستمر عمل تنفيذ حزمة أدوات Slack والإعدادات المخزنة وتوافق الـ Workers المحفوظة وبيانات اعتماد مشغّلات Slack.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1890
🔗 PR: https://github.com/eigent-ai/eigent/pull/1892
🖥️ إغلاق نظيف عند إغلاق آخر نافذة
إغلاق التطبيق ينبغي أن ينهي التطبيق.
شكرًا لـ @4pmtong على إصلاح دورة حياة الإغلاق في PR #1891. صار إغلاق النافذة الوحيدة ينهي Eigent بنظافة على كل المنصات، ويغلق معه الواجهة الخلفية المحلية.
الإصلاحات:
- مسار خروج واحد — يمر إغلاق النافذة الأصلي وIPC إغلاق النافذة وأمر القائمة إغلاق النافذة جميعًا عبر تدفق
quit-appالمحمي نفسه - الإنهاء على macOS عند آخر نافذة — صار
window-all-closedينهي التطبيق على macOS كما على Windows وLinux، فينظّفbefore-quitالواجهة الخلفية المحلية - تفكيك آمن — يُحتفظ بمرجع
webContentsالمرتبط بدل قراءته منBrowserWindowمُدمَّر بالفعل - تخطي الكائنات المُدمَّرة — يُتجاوز حذف المستمعين للنوافذ وweb contents المُدمَّرة، وتُفرَّغ مراجع المنسّق قبل التفكيك
ويحصل المطورون على المكسب نفسه: صار npm run dev ينتهي بدل ترك واجهة خلفية تعمل خلف نافذة مغلقة.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1891
🧹 مهام توليد الويب التي تنتهي بموثوقية
بعض مهام توليد الويب لم تكن تنتهي، وتبيّن أن السبب أمران معًا.
شكرًا لـ @4pmtong على الإصلاح الآمن للإصدار في PR #1907.
لم يعد Eigent بحاجة إلى رفع المحتوى المولَّد إلى خدمة النشر البعيدة القديمة، لذا أُزيلت Web Deploy Toolkit من تركيب وكيل المطوّر في Workforce ومن الوكيل المفرد، وحُذفت إشارات النشر من موجّه وكيل المطوّر ووصف منسّق Workforce وقوائم قدرات سير العمل. وتُتجاهل إعدادات حزم الأدوات القديمة التي ما زالت تطلب web_deploy.enabled=true. ويبقى web_deploy_toolkit.py ودعم العرض التاريخي في الشيفرة لاستخدام محتمل مستقبلًا.
أما السبب الثاني فكان التوقيت. ارتفعت ميزانية نقطة التفتيش في تنظيف الطرفية بالخلفية من 5 ثوانٍ إلى 30 ثانية، ليتاح لخادم المعاينة المتوقف تحرير إذن الكتابة وإتمام نقطة تفتيش Git لمساحة العمل قبل إنهاء التشغيل.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1907
⚙️ حواجز حماية أسرع للمساهمين
التكامل المستمر البطيء ضريبة على كل من يفتح طلب سحب.
كانت مهمة حواجز حماية الواجهة الأمامية تستغرق عادة من 20 إلى 30 دقيقة، لأنها تشغّل مجموعة Vitest كاملة لإيداع الأساس وإيداع طلب السحب مع تعطيل التخزين المؤقت، ثم تعيد محاولة الإخفاقات في مواجهة خط أساس يحتوي أصلًا على إخفاقات معروفة ومهلات تبلغ 29 ثانية.
شكرًا لـ @4pmtong على استبدال تلك المقارنة الكاملة بمشغّل مركّز في PR #1898.
التحسينات:
- مشغّل الاختبارات المتغيرة — لا تُنفَّذ إلا ملفات اختبارات الواجهة الأمامية التي أضافها التغيير أو حدّثها
- الفحوص السريعة أولًا — تعمل فحوص الأنواع وElectron ونظام التصميم والتنسيق قبل Vitest
- إلغاء عمليات التشغيل المتجاوَزة — يلغي الدفع الجديد تشغيل سير عمل Test السابق لطلب السحب أو الفرع نفسه
- مهلة أقصر — تنخفض ميزانية حواجز الواجهة الأمامية من 30 دقيقة إلى 15
وفي إعادة تشغيل على التغيير المدموج عبر PR #1891، نفّذ مشغّل الاختبارات المتغيرة 4 ملفات اختبار و134 اختبارًا في 1.07 ثانية.
🔗 PR: https://github.com/eigent-ai/eigent/pull/1898
🔁 التوافق مع العمل القائم
تبقى المساحات والجلسات والمهام وإعدادات المهارات والـ Workers المحفوظة وإعدادات الموصّلات متاحة بعد الترقية إلى v1.0.4. ولا تحتاج التجربة الافتراضية إلى أي إعداد إضافي.
وتُحفظ التكاملات المحلية فقط بشكل صريح. فعند تعطيل Connector Gateway يستمر عمل Slack المدمج والـ Workers المحفوظة ومشغّلات Slack، وتبقى إعدادات Slack المخزنة دون تغيير في الوضعين.
❤️ مساحة عمل تشرح نفسها
يقدم Eigent v1.0.4:
- المهارات كلوحة مكتبة بعروض للمصدر والصلاحيات وحالة التفعيل وتفاصيل الملفات
- الموصّلات كمسار مجموعة واستكشاف وتفاصيل تعريفية
- هيكل صفحة مشتركًا بمسارات تنقل وأشرطة جانبية وأشرطة محتوى وحالات فارغة متسقة عبر الصفحة الرئيسية والمهارات والموصّلات
- تعليمات وكيل موثوقة محفوظة عبر جولات Responses API المتسلسلة، دون تكرار محتوى الموجّه
- توافقًا مع المخططات الصارمة للأدوات ذات المعاملات الديناميكية
- معاملة مستودعات Git المتداخلة كحدود مستقلة في نقاط تفتيش مساحة العمل
- بحثًا على الويب يبقى قابلًا للاكتشاف ما دام يحتاج إلى ضبط
- Slack معروضًا عبر مسار الموصّل الذي سينفذه فعلًا
- إغلاقًا نظيفًا للتطبيق والواجهة الخلفية المحلية عند إغلاق آخر نافذة
- إنهاءً أكثر موثوقية لمهام توليد الويب وتنظيفًا أفضل لعمليات الخلفية
- حاجز تكامل مستمر للواجهة الأمامية يعمل في دقائق بدل نصف ساعة
موضوع هذا الإصدار هو الوضوح. اللوحة تخبرك إلى أي شيء تصل المهارة. وحالة الموصّل تخبرك أي بيئة تشغيل ستنفّذه. ونقطة التفتيش تخبرك أي مستودع يملك التغيير. والمهمة التي تعمل طويلًا تحتفظ بالتعليمات التي بدأت بها.
العمل الذي يمكنك فحصه هو العمل الذي يمكنك الوثوق به.
🔗 الإصدار: https://github.com/eigent-ai/eigent/releases/tag/v1.0.4
🔗 سجل التغييرات الكامل: https://github.com/eigent-ai/eigent/compare/v1.0.3...v1.0.4
لنواصل البناء.
Recent Posts

Meta Muse: وكيل الذكاء الاصطناعي الشخصي الذي يحجز ويشتري ويتفاوض
Meta Muse هو وكيل ذكاء اصطناعي شخصي يحجز السفر ويشتري المنتجات ويتفاوض على الفواتير من خلال المحادثة. إليك ما يفعله، والتسعير، والأمان، وكيف يقارن بالبدائل.

Claude Fable 5.1 و Mythos 5.1: ما الجديد، شرح مفصّل
شرح Claude Fable 5.1 و Mythos 5.1: نفس النموذج في مستويين من الضمانات، مع معايير أداء جديدة، وتخفيض في التكلفة بنسبة 25 إلى 45 بالمئة تقريبًا، وتفاصيل الوصول.

Gemini 3.8 Flash: المستجدات في البرمجة ووكلاء الذكاء الاصطناعي
يُقدّم Gemini 3.8 Flash مكاسب كبيرة في البرمجة والاستدلال الوكيل بنفس السعر المنخفض، إضافةً إلى متغيّر جديد هو 3.8 Flash Cyber. اكتشف المعايير والأسعار وكيفية استخدامه.