00:00:00(موسيقى مبهجة)
00:00:02- مرحبًا جميعًا، اسمي مالته، وأنا المدير التقني في Vercel.
00:00:16شكرًا لانضمامكم إلينا اليوم.
00:00:18في أوائل يناير، أعطينا الجميع في شركتنا تفويضًا،
00:00:21وهو اكتشاف كيفية مضاعفة إنتاجيتكم.
00:00:24وما زلنا نندهش مما بناه الموظفون.
00:00:27لقد قام كل فريق تقريبًا ببناء وكيل ذكاء اصطناعي للتعامل مع المهام المعقدة،
00:00:30ومعظمها عبارة عن برامج Slack يمكن لأي شخص استخدامها.
00:00:34لكننا واجهنا مشكلة.
00:00:35كان الجميع يقومون بنفس العمل التكراري
00:00:38مرارًا وتكرارًا.
00:00:40يبني أحدهم وكيلاً،
00:00:41ثم يتعين عليك استيعاب تعقيدات Slack،
00:00:43وهذا أصعب مما يبدو.
00:00:45عليك فهم سلاسل الرسائل والتفاعلات،
00:00:47وكيفية مطابقة البوت للرسائل، وكيفية إدارة الحالة.
00:00:50ثم يسأل شخص ما،
00:00:51"مهلاً، هل يمكنك ربط ذلك الوكيل بـ GitHub؟"
00:00:53وتبدأ العملية من جديد تمامًا
00:00:55مع واجهات برمجة تطبيقات GitHub.
00:00:56كان المنطق هو نفسه، لكن كود المنصة مختلف.
00:00:59تعلمنا سريعًا أن واجهات برمجة تطبيقات الدردشة تلك
00:01:01تبدو متشابهة من الخارج،
00:01:03لكنها مختلفة تمامًا في الجوهر.
00:01:05يدعم Slack البث المباشر الأصلي.
00:01:06يمكنك بث الرموز (tokens) مباشرة في الرسالة
00:01:09بمجرد توليدها من نموذج اللغة الكبير.
00:01:10أما في Discord، فعليك النشر، ثم التعديل، ثم النشر، ثم التعديل.
00:01:14وفي GitHub، لا يوجد بث على الإطلاق.
00:01:16يحتوي Slack على نوافذ منبثقة (modals)، بينما لا يحتوي Discord عليها.
00:01:18ويمنحك Microsoft Teams تفاعلات للقراءة فقط.
00:01:21هذه ليست مجرد فروقات بسيطة، بل هي اختلافات جوهرية
00:01:23في طريقة عمل كل منصة.
00:01:26لذا حتى بالنسبة لوكيل واحد وبسيط،
00:01:28ينتهي بك الأمر بوجود كم هائل من المنطق البرمجي
00:01:31فقط لجعله قابلاً للاستخدام في أدوات مختلفة.
00:01:33إنه كابوس حقيقي.
00:01:34وهذه ليست مشكلة Vercel وحدها.
00:01:36سيتعين على كل شركة اكتشاف
00:01:38كيفية تقديم وكلائها عبر المنصات
00:01:40التي يتم فيها العمل بالفعل.
00:01:42وهذا يعني الدردشة، ومراجعة الكود، وتتبع المشكلات، وأكثر.
00:01:45تحل AI SDK مشكلة مماثلة لمزودي النماذج.
00:01:48تكتب الكود مرة واحدة وهي تتولى
00:01:50كل اختلافات واجهات برمجة التطبيقات،
00:01:51سواء كنت تستدعي GPT أو Claude أو Gemini.
00:01:54وتقوم Chat SDK بنفس الشيء للوكلاء التفاعليين.
00:01:58إنها واجهة برمجة تطبيقات واحدة لتفاعلات الوكلاء عبر المنصات
00:02:01مثل Slack وGitHub وLinear وDiscord وTelegram،
00:02:04وWhatsApp، وغيرها.
00:02:06أنت تبني الوكيل، وستقوم Chat SDK بإيصاله للمستخدمين
00:02:09في التطبيقات التي يستخدمونها بالفعل.
00:02:11لقد كان فرناندو يبني وكلاء V0 في الخلفية
00:02:15طوال الأسابيع القليلة الماضية،
00:02:16وسوف يخبركم لماذا كانت Chat SDK
00:02:18جزءًا حيويًا من تلك المنظومة التقنية.
00:02:21(موسيقى مبهجة)
00:02:24(تستمر الموسيقى المبهجة)
00:02:28عندما بدأت في بناء وكلاء V0 في الخلفية،
00:02:34كان هدفي هو السماح لك بالإشارة إلى V0 من Slack
00:02:36لفتح طلبات السحب (pull requests).
00:02:38أردت وكيلاً برمجيًا للأغراض العامة
00:02:40يمكنه العمل في الخلفية،
00:02:42في أي قاعدة برمجية، وبأي لغة.
00:02:45لذا بدأت في البناء،
00:02:47وأرسلت النسخة الأولى من تطبيق V0 لـ Slack
00:02:49إلى أصدقائي.
00:02:51وكان أول شيء سألوا عنه هو،
00:02:53"هل يمكنني استخدام هذا أيضًا في مشكلات Linear؟
00:02:56وهل يمكنني الإشارة إليه من تعليق على طلب سحب في GitHub؟"
00:02:58ذكرني ذلك بالمرة الأولى التي أطلقت فيها تطبيقًا للهاتف،
00:03:02عندما بدأ الناس يسألون عما إذا كان بإمكانهم استخدامه على الويب أيضًا.
00:03:05أصبح من الواضح أن V0 يجب أن يعمل في كل مكان.
00:03:09لقد تغيرت التوقعات.
00:03:11لذا كان عليّ اتخاذ قرار.
00:03:14هل نبني وكلاء V0 الخلفية منصة تلو الأخرى؟
00:03:18أم يمكننا بناؤه مرة واحدة باستخدام واجهة برمجة تطبيقات موحدة
00:03:22عبر كل المنصات؟
00:03:24مثل React Native لوكلاء الدردشة؟
00:03:27حسنًا، اتضح أنني قضيت سنوات
00:03:30في بناء تطبيقات عابرة للمنصات باستخدام React Native.
00:03:34هذه المشكلة ليست جديدة بالنسبة لي.
00:03:36وهنا جاء دور Chat SDK.
00:03:39باستخدام Chat SDK،
00:03:40يمكنني التركيز على بناء وكلاء V0 الخلفية،
00:03:43وقضاء وقت أقل
00:03:45في القلق بشأن واجهات برمجة التطبيقات الفريدة لكل منصة.
00:03:48إذًا، كيف يبدو هذا في الجوهر؟
00:03:50إليكم مات ليريكم المزيد.
00:03:53(موسيقى مبهجة)
00:03:55- مرحبًا بالجميع.
00:04:11تمامًا مثل فرناندو، لنبدأ بـ Slack.
00:04:14لقد أشرت إلى البوت الخاص بي،
00:04:16وحصلت على استجابة "hello world" بسيطة للغاية.
00:04:21أعلم أنها مذهلة.
00:04:23وإذا نظرت إلى الكود،
00:04:24يمكنك رؤية مدى سهولة إنشاء هذا البوت بالنسبة لي.
00:04:28كل ما كان عليّ فعله هو إنشاء نسخة دردشة جديدة،
00:04:32وإضافة مستمع للإشارات (on mention listener)،
00:04:35ونشر "hello world" ردًا على سلسلة الرسائل.
00:04:38هذا كل شيء.
00:04:39لكننا لا نريد مطورين يبنون بوتات نصية عادية.
00:04:43نحن نريد تجارب أصلية غنية
00:04:45تستفيد بالكامل من كل منصة.
00:04:48والمطورون يحبون JSX.
00:04:51لذا جلبنا JSX إلى Chat SDK.
00:04:55الآن يمكنك البناء باستخدام المكونات تمامًا كما اعتدت.
00:04:58لنضف زرين.
00:04:59كما ترون هنا في الأسفل،
00:05:03سأقوم بتغيير رسالة "hello world" الخاصة بنا
00:05:05إلى بطاقة "hello world" تحتوي على زر "متابعة"،
00:05:10وزر "إلغاء".
00:05:11سنضيف أيضًا مستمعًا للإجراء (action listener)
00:05:14يقول الاسم الكامل للمستخدم،
00:05:17بأن المستخدم ضغط على متابعة عندما نضغط عليه.
00:05:19وبالعودة إلى Slack، سأشير إلى البوت الخاص بي مرة أخرى.
00:05:24وكما تتوقعون، نحصل بالضبط على ما بنيناه.
00:05:29تظهر المكونات بشكل أصلي.
00:05:32أضغط على متابعة، ويتعامل البوت مع الإجراء على الفور.
00:05:36لكن هنا تصبح الأمور مثيرة للاهتمام.
00:05:41ماذا لو أردت نفس التجربة بالضبط على Discord؟
00:05:45أقوم بإضافة محول (adapter) Discord.
00:05:47هذا كل ما في الأمر.
00:05:48الآن، إذا عدت إلى قناة Discord الخاصة بي،
00:05:55يمكنني الإشارة إلى البوت الخاص بي،
00:05:57وستظهر نفس واجهة المستخدم تمامًا بشكل أصلي في Discord.
00:06:02صفر تغييرات في الكود لدعم منصة جديدة بالكامل.
00:06:07هذا رائع.
00:06:08لكن لنتحدث عن الوكلاء.
00:06:10إليكم وكيلاً بسيطًا بنيته باستخدام AI SDK.
00:06:14والوكلاء يحتاجون إلى البث المباشر (streaming).
00:06:17مع Chat SDK، أصبح البث أمرًا بديهيًا.
00:06:20أقوم بإنشاء بث ونشره في سلسلة الرسائل.
00:06:23هذا كل شيء.
00:06:24لم أضطر للبحث عن كيفية تعامل Slack مع البث
00:06:27أو كيفية تعامل Discord مع التحديثات الجزئية.
00:06:30استخدمت واجهة برمجة تطبيقات واحدة.
00:06:32وبالعودة إلى Slack، إذا أشرت إلى البوت،
00:06:35سنراه يبث رده إلينا بشكل أصلي.
00:06:40لكن لماذا نتوقف عند هذا الحد؟
00:06:42ماذا لو أردت إرسال رسائل مباشرة إلى وكيلي
00:06:45على منصات مثل WhatsApp أو Telegram؟
00:06:49مع Chat SDK، الأمر سهل.
00:06:52أضيف مستمعًا للرسائل المباشرة والمحول المطلوب.
00:06:56الآن سيحصل أي شخص يرسل رسالة مباشرة للوكيل على نفس التجربة.
00:07:02إذا فتحت WhatsApp على الويب وقلت،
00:07:06"مرحبًا، كيف حالك؟"
00:07:08سنرى الوكيل يستجيب لرسالتنا المباشرة
00:07:12باستخدام الوكيل الذي بنيناه.
00:07:14الآن بعد أن بنينا وكيلاً،
00:07:16لماذا لا نفتح طلب سحب؟
00:07:18لكن قبل أن نفعل ذلك،
00:07:20ماذا لو استطاع نفس الوكيل الذي دردشت معه على WhatsApp
00:07:24أن يراجع الكود الخاص بي؟
00:07:25كل ما يتطلبه الأمر هو محول GitHub.
00:07:28آتي إلى هنا، وأضيف محول GitHub،
00:07:32وبهذا أكون قد جلبت وكيلي إلى منصة جديدة تمامًا.
00:07:35إذا فتحت GitHub ونظرت إلى طلب السحب هذا،
00:07:39يمكنني الإشارة للوكيل في التعليقات
00:07:42وسوف يستجيب بنفس مستمع الرسائل المباشرة
00:07:45الذي بنيناه سابقًا.
00:07:46Slack، Discord، WhatsApp، Telegram، GitHub.
00:07:51توقف لثانية وفكر في مدى اختلاف واجهات برمجة التطبيقات هذه.
00:07:56لكن بملف واحد وبضعة أسطر من الكود،
00:07:59جلبنا وكيلنا إليها جميعًا.
00:08:01مع Chat SDK، تبني تجارب الوكلاء مرة واحدة
00:08:06وتنشرها في كل مكان بواجهة برمجة تطبيقات واحدة.
00:08:09توجه إلى chat-sdk.dev للاطلاع على الوثائق والنماذج.
00:08:14شكرًا لاستماعكم.
00:08:15وأنا متحمس لرؤية ما ستبنونه.
00:08:17(موسيقى مبهجة)