-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 3 Your First Agent Task ar
🌎 اللغة: العربية — شاهد كل اللغات الـ33
الهدف: أضف أمرا جديدا كليا إلى الأداة — من البداية إلى النهاية — بتوجيه
وكيلك. سنضيف lockedin endorse: يزكّي غرباء تماما لمهارات شبه مؤكد أنهم لا
يملكونها. على طابع العلامة.
هذا قلب الدرس. ستتمرن على الحلقة الحقيقية: مواصفات ← اختبارات ← تنفيذ ← بوابة خضراء ← مراجعة.
← السابق: الدرس 2 كيف تعمل الشيفرة · التالي: الدرس 4 التوجيه والمراجعة
قبل أن توجّه أي شيء، اكتب المواصفات بنفسك بلغة واضحة. الطلبات الغامضة تنتج شيفرة غامضة — من إنسان أو وكيل.
endorseيطبع 5–7 أسطر، كل سطر يزكّي شخصا مختارا عشوائيا (أعد استخدام مجمّعNAMESالقائم) لأجل مهارة كلمة طنانة مختارة عشوائيا (مجمّع جديد). ينتهي بجملة ساخرة واحدة. يجب أن يكون قابلا للوصول عبرlockedin endorse، وعبر/endorseداخل الجلسة، وأن يظهر فيhelp. كل العشوائية يجب أن تستخدم المساعدَين المُبَذَّرَينpick/shuffleحتى تبقى المخرجات حتمية.npm testيجب أن يبقى أخضر، وينبغي أن يوجد اختبار جديد يثبّت ثابتا واحدا على الأقل.
تلك الفقرة هي ما ستسلّمه للوكيل. لاحظ أنها تسمّي القيود من الفصل 2 (العشوائية المُبَذَّرة، وبوابة الاختبار، وعادة الثوابت).
ابدأ بطلب خطة. هذه فرصتك لالتقاط نهج سيئ قبل أن يتغير أي ملف.
«أريد إضافة أمر
endorseإلى LockedIn CLI. إليك المواصفات: [paste your spec]. قبل كتابة الشيفرة، أخبرني أي الملفات ستغيّر وما نهجك، حتى أوافق عليه. اتبع الأنماط القائمة لأمر مثلconnect.»
الخطة الجيدة تذكر: مجمّع SKILLS جديد + renderEndorse() في src/lockedin.js،
وربطه في dispatch() وhandleSlash()، وإضافة صف إلى renderHelp()، وتصدير
الدالة/المجمّع الجديد، وإضافة اختبارات في كلا ملفي الاختبار. إن أغفلت الخطة قاعدة
العشوائية المُبَذَّرة أو الاختبارات، قل ذلك الآن.
اطلب من الوكيل كتابة الاختبارات قبل التنفيذ. الاختبار أولا يحوّل مواصفاتك إلى شيء قابل للتنفيذ، ويبقي الوكيل صادقا.
«رائع. أولا، أضف اختبارات فاشلة فقط: اختبار وحدة يثبت أن
renderEndorse()يُرجع نصا يذكر مهارة معروفة و5 تزكيات على الأقل، واختبار فيcli.test.jsيثبت أنlockedin endorseيخرج بالرمز 0 ويطبع تزكية. استخدم بذرة ثابتة. لا تنفّذrenderEndorseبعد — لنرَ الاختبارات تفشل أولا.»
شغّلها وشاهدها تفشل للسبب الصحيح (الدالة غير موجودة بعد):
npm testالآن أعطِ الضوء الأخضر للتنفيذ:
«الآن نفّذه ليُنجِح تلك الاختبارات، متبعا نمط
connect. أضف مجمّعSKILLSفيه ~25 مهارة كلمة طنانة، وrenderEndorse()يُرجع سلسلة نصية، واربطdispatchوhandleSlash، وأضف صفhelp، وصدّر ما أضفته. استخدمpick/shuffleفقط للعشوائية.»
ما ينتجه الوكيل ينبغي أن يشبه كثيرا بقية الملف. مثلا، مجمّع SKILLS وعارض:
const SKILLS = [
'قيادة الفكر', 'التآزر', 'السرد', 'الأجواء',
'القيلولة الاستراتيجية', 'مواءمة أصحاب المصلحة', 'الصراحة الجذرية', /* ...~25 total... */
];
function renderEndorse() {
const people = shuffle(NAMES).slice(0, 5 + Math.floor(rand() * 3)); // 5–7
const skills = shuffle(SKILLS);
const out = [''];
people.forEach((n, i) =>
out.push(' ✔ زكّيت ' + n + ' لمهارة ' + skills[i % skills.length]));
out.push('', ' لقد زكّيت 6 غرباء لمهارات لا يمكنك التحقق منها. سيزكّونك بدورهم خلال ساعة.');
return out.join('\n');
}…زائد سطر واحد في كل من dispatch() وhandleSlash()، وصف في renderHelp()،
وإضافة SKILLS, renderEndorse إلى module.exports.
npm testخضراء؟ لقد شحنت للتو ميزة مع وكيل، بأسلوب الاختبار أولا. ليست خضراء؟ هذا طبيعي — اذهب إلى حلقة التكرار في الفصل 4 وأخبر الوكيل بالضبط ما الذي فشل.
ثم افحص الشيء الحقيقي بعينيك (الاختبارات تفحص النص، لكن ينبغي أن تنظر رغم ذلك):
node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse # reproducibleلا تقبل أبدا فرقا لم تقرأه. تصفّح بحثا عن هذه الأمور تحديدا:
-
هل اتبع النمط؟ الأمر الجديد ينبغي أن يحاكي
connect— بلا اعتماديات جديدة، وبلاconsole.logداخلsrc/. -
عشوائية مُبَذَّرة فقط؟ ابحث في الفرق عن
Math.random. ينبغي ألا يوجد أي منها. - هل لمس شيئا ما كان ينبغي؟ التغيير ينبغي أن يكون إضافيا؛ والأسطر غير ذات الصلة ينبغي ألا تتحرك.
-
هل الاختبار الجديد ذو معنى؟ ينبغي أن يفشل إن كسر أحدهم لاحقا الميزة — لا أن
يؤكد
trueفحسب.
إن كان أي شيء غير سليم، اطلب إصلاحا (الفصل 4). إن كان جيدا، فقد انتهيت.
نفّذ الحلقة كاملة أعلاه فعليا. ثم، لدرجات إضافية، اطلب من الوكيل توسيعها:
- «اجعل
endorseيقبل اسما اختياريا:lockedin endorse Adaينبغي أن يزكّي Ada تحديدا. أضف اختبارا، وأبقِ البوابة خضراء.»
بنيت الآن ميزة من البداية إلى النهاية. الفصل الأخير عن أداء ذلك بسلاسة — التوجيه والمراجعة كمهندس قائد.
التالي: الدرس 4 التوجيه والمراجعة
Tutorial
- 1 · Orientation
- 2 · How the Code Works
- 3 · Your First Agent Task
- 4 · Prompting & Reviewing
- 5 · Localization
Reference
Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.