Transcript
00:00:00هذا هو Symphony من OpenAI، وهي أداة مفتوحة المصدر لتنسيق الوكلاء الذين يعملون لفترات طويلة باستخدام
00:00:05نظام تتبع مشكلات موجود مثل Linear لمساعدة وكيلك على إكمال المهام بشكل مستقل دون أي
00:00:10إشراف بشري. ولكن لماذا لا يتعين على الوكيل بناؤه من الصفر قبل أن تتمكن من استخدامه؟
00:00:14هل يدعم فقط Codex CLI؟ وهل هذه هي البداية لمزيد من
00:00:18الأدوات مفتوحة المصدر من OpenAI؟ اضغط على اشتراك ولنكتشف ذلك.
00:00:25وُجد Symphony فقط لأن OpenAI واجهت عنق زجاجة في الانتباه البشري، مما يعني أن المهندسين
00:00:30كان بإمكانهم الإشراف على 3-5 جلسات Codex فقط في وقت واحد قبل أن يبدأ تبديل السياق
00:00:35في التأثير سلباً على الإنتاجية. وبالطبع، لم يكن هذا ليتوسع. لذا خمن كيف حلت OpenAI
00:00:41مشكلة “الوكيل السريع والمدير البشري البطيء”؟ لقد تخلصوا من المديرين البشريين. نوعاً ما.
00:00:47لأنه مع Symphony، يضع البشر المهام على لوحة، ويتم تشغيل وكيل جديد لإكمال تلك المهمة،
00:00:52ولن يشرك الوكيل الإنسان إلا إذا كان هناك شيء يحتاج للمراجعة.
00:00:55ولكن كيف يقارن Symphony بأدوات مماثلة مثل Multica و Conductor؟ حسناً،
00:00:58شاهد العرض التوضيحي وسيصبح ذلك واضحاً تماماً. قبل أن نبدأ، أود فقط أن أقول
00:01:03إن لـ Symphony أغرب عملية تثبيت رأيتها في حياتي. أو قد تكون
00:01:07الطريقة الأكثر عبقرية لتثبيت شيء ما. سنصل إلى ذلك لاحقاً.
00:01:10أولاً، دعونا نمر بمثال أساسي. لدي Symphony قيد التشغيل الآن،
00:01:14وهو يفحص المهام في Linear للعمل عليها. وفي Linear، سأقوم بإنشاء مشكلة جديدة،
00:01:18والتي ستكون بناء تطبيق Hello World باستخدام TypeScript و BUN.
00:01:22حالياً، Symphony غير مهيأ للعمل على مهام المتأخرات. لذا سأغير الحالة إلى To-Do
00:01:27وأضغط على إنشاء مشكلة. تذكروا معرف المهمة، وهو SYN7.
00:01:31بعد فترة وجيزة، يلتقط Symphony معرف تلك المهمة. وبعد ثوانٍ قليلة،
00:01:36يظهر لنا خطأ في التحقق من GraphQL، وهو ليس أمراً جللاً ومن السهل جداً على Codex إصلاحه.
00:01:41ولكن بعد ذلك، يمكننا أن نرى أن Codex قد أكمل العمل، وغير حالة المشكلة
00:01:45من To-Do إلى Done، وترك تعليقاً هنا من Symphony. مما يعني أننا إذا ذهبنا إلى
00:01:49دليل مساحات عمل Symphony الخاص بنا، وسنتحدث عن ذلك لاحقاً، يمكننا أن نرى أن لدينا مساحة عمل
00:01:53جديدة بنفس معرف مشكلتنا. وإذا دخلنا إلى مساحة العمل تلك، سنجد قائمة
00:01:58بالملفات التي تم إنشاؤها لتطبيق Hello World TypeScript BUN. وإذا دخلنا إلى دليل المصدر،
00:02:04يمكننا رؤية كود التطبيق هنا. وهذا باختصار هو جوهر Symphony.
00:02:08الآن دعونا نستعرض كيفية إعداده. هناك طريقتان لتثبيت Symphony
00:02:12وفقاً لهذا المستودع. الخيار الثاني، وهو ما اعتدنا عليه، نقوم بإعداد Elixir،
00:02:16ونستنسخ المستودع، ثم نبني الكود ونقوم بتشغيله باستخدام ملف سير العمل الموجود.
00:02:20أما الخيار الأول، فهو ربما الطريقة الأغرب أو الأكثر تطلعاً للمستقبل لتثبيت شيء ما.
00:02:25ببساطة تعطي وكيل البرمجة الخاص بك هذا الأمر، وسيقوم بقراءة ملف المواصفات،
00:02:30الذي يزيد طوله عن 2000 سطر. لكنه يعطي وكيلك بشكل أساسي
00:02:34تعليمات مفصلة حول كيفية بناء Symphony، وهو أمر مذهل لأنه إذا سلك الجميع هذا الطريق،
00:02:39فلن تتشابه أي نسختين من Symphony. سيكون لدى البعض ميزات مختلفة
00:02:43بلغات مختلفة، مما سيشكل فوضى لـ OpenAI في الصيانة والدعم.
00:02:47ولكنه أيضاً نوع من العبقرية لأنك إذا بنيت نسختك الخاصة من Symphony،
00:02:51ستشعر بالمسؤولية تجاهها. ستقوم بإصلاح الأخطاء، وإضافة الميزات،
00:02:55وستقوم بصيانتها أساساً. وإذا كنت لا تريد أن يستخدم Symphony نظام Linear أو
00:02:59Codex، فالأمر يرجع إليك. قام شخص ما ببناء نسخة Go من Symphony تعمل على Charm CLI،
00:03:04وبنى شخص آخر نسخة مدعومة بـ Claude SDK. لم أكن بهذا القدر من الإبداع،
00:03:09لذا وضعت الأمر الافتراضي في Codex باستخدام GPT 5.5 Low Effort، وأعطاني نسخة Python
00:03:15من Symphony، وهو أمر منطقي لأن النماذج اللغوية جيدة جداً في Python. وبمجرد الانتهاء من ذلك،
00:03:19ستحتاج إلى مفتاح API شخصي لـ Linear، والذي يمكنك الحصول عليه من الأمان والوصول،
00:03:23ويمكنك إنشاء واحد بالضغط هنا. ثم سيتعين عليك إضافة هذا المفتاح إلى ملف تعريف العمل الخاص بك،
00:03:28وهو ملف يخبر Symphony بكيفية أداء وظيفته، ويحتوي على بعض بيانات YAML الأمامية،
00:03:32والتي تحتوي بالطبع على مفتاح API، والحالات النشطة ليعرف الوكيل متى يمكنه العمل على مهمة،
00:03:37بالإضافة إلى جذر مساحة العمل وأمر Codex، وهو أمر القشرة (shell) الذي يستخدمه Symphony
00:03:42لإطلاق وكيل برمجة. وتحت ذلك يوجد أمر markdown المرسل إلى وكيل البرمجة
00:03:46لكل مشكلة. يمكنك الوصول إلى سير عمل OpenAI في ملف D من مستودعهم إذا كنت مهتماً.
00:03:51ولكن حتى الآن، سير العمل هذا غير مناسب لمشروع حقيقي. لنفترض أنني أردت إجراء تغييرات على
00:03:56تطبيق محاكاة الأفلام الذي كنت أعمل عليه. سأحتاج إلى إضافة خطاف create-after، الذي يتم تشغيله
00:04:01بعد أن ينشئ Symphony مساحة عمل لمشكلة ما، وسيقوم هذا الخطاف أولاً باستنساخ المستودع إلى
00:04:06دليل مساحة العمل، ثم الانتقال إلى فرع جديد في ذلك المستودع. لقد أضفت أيضاً خطاف run-after،
00:04:10الذي يتم تشغيله بعد انتهاء Codex من العمل على المشكلة. لذا يقوم هذا الخطاف بتجهيز الملفات، ثم
00:04:15ينشئ التزاماً (commit) جديداً قبل دفع الفرع وإنشاء طلب سحب (PR) جديد بهذه القيم.
00:04:20الآن إذا قمت بتشغيل Symphony باستخدام UV، الذي استحوذت عليه OpenAI أيضاً، ولكن هذا موضوع
00:04:25لفيديو آخر، فإنه يبحث عن مشكلات جديدة. الآن إذا أنشأت مشكلة جديدة لتحديث ملف readme، فقط في
00:04:30القسم الذي يعرض المعالجة المجمعة، لاستخدام علامة شاملة بدلاً من عرض ملفات متعددة، مرة أخرى،
00:04:35سأغيرها من المتأخرات إلى To-Do، ثم أضغط على إنشاء مشكلة. الآن التقط Symphony تلك
00:04:40المشكلة. وإذا نظرت إلى دليل مساحات عمل Symphony، يمكننا رؤية مجلد جديد يطابق
00:04:45معرف مشكلتنا، ويحتوي على المشروع المستنسخ. والآن بعد أن انتهى Symphony من العمل على
00:04:49المشكلة، قام بتغيير الحالة إلى Done وأنشأ طلب سحب (PR) جديداً مع رابط لتذكرة Linear
00:04:54والتغيير الدقيق الذي طلبته. بالطبع، يمكنني تغيير كود Symphony الخاص بي لإضافة
00:04:59وصف أفضل لطلب السحب ووضع رابط له في التعليقات، لكنني متأكد من أن هذا سهل جداً على
00:05:04Codex القيام به. كانت هذه نظرة سريعة على Symphony. إذا كنت معتاداً بالفعل على أو تعمل في
00:05:08شركة تستخدم Linear، فستشعر بالراحة مع الواجهة. وإذا كنت من مستخدمي Codex،
00:05:13فيمكنك استخدام مهاراتك وأدوات MCP والإضافات التي قمت بتثبيتها بالفعل. أنا شخصياً
00:05:18لا أستخدم Codex، ولكن يمكنني بالتأكيد رؤية الرؤية التي كانت OpenAI تهدف إليها مع Symphony. تخيل
00:05:22لو كان لديك فريق من المطورين يعملون جميعاً على نفس المشروع مع الذكاء الاصطناعي. بدلاً من أن يكون لكل منهم
00:05:28نظامه الخاص وسير عمله الخاص، يمكن أن يكون هناك وكيل مركزي بمهارات مركزية، وأدوات
00:05:33مركزية، وسير عمل وإضافات مركزية. ويمكن لكل مطور التواصل مع ذلك من خلال إعطائه
00:05:37مهمة، ويمكنهم رؤية ما يعمل عليه المطورون الآخرون، وما هي الأوامر التي استخدموها ويمكنهم
00:05:41رؤية الميزات الأخرى التي قد تؤثر على الميزة التي يعملون عليها بلمحة واحدة. رغم أن
00:05:46من الصعب جداً ابتكار ميزة لن تلمس جزءاً آخر من الكود يعمل عليه شخص
00:05:49آخر. ولكن بقدر روعة Symphony، في رأيي، تقوم Multica بعمل أفضل لأنها
00:05:54أسهل في الإعداد والإنشاء وإضافة وكلاء مختلفين، ويمكنك حتى جدولة المهام. ومع ذلك،
00:05:59أرى تماماً مكاناً لـ Symphony. إنها تشبه النسخة الأساسية من Multica حيث يمكنك
00:06:04إضافة الميزات الدقيقة التي تريدها بدلاً من الحصول على منتج مبني مسبقاً لك. لذا فكر
00:06:08في Symphony مثل Pi harness والأدوات الأخرى مثل Multica أو Conductor كـ Claude Code. وإذا
00:06:13كنت لا تعرف شيئاً عن Multica، فراجع هذا الفيديو الذي يستعرض كل ما
00:06:18تحتاج لمعرفته عنها.