تعلّم كيفية توثيق قواعد العمل لتطبيقات الذكاء الاصطناعي بكلمات بسيطة للحسابات والاستثناءات والموافقات للحصول على نتائج موثوقة.

قواعد العمل تخبر التطبيق ماذا يفعل في مواقف حقيقية. تجيب عن أسئلة مثل من يمكنه الموافقة على طلب، كيف يُحسب المجموع، وماذا يحدث عندما تكون الحالة خارج النمط المعتاد.
إذا كانت تلك القواعد غامضة، فإن التطبيق سيظل مضطرًا لاختيار مسار. قد لا يكون المسار الذي تتوقعه.
خذ قاعدة مثل "المصروفات الكبيرة تحتاج موافقة المدير". قد يظن شخص أنها واضحة. الباني لا يفهمها بنفس الوضوح. ما المقصود بـ "كبيرة": 500 دولار، 5,000 دولار، أم أي مبلغ يتجاوز ميزانية الفريق؟ أي مدير: المدير المباشر، رئيس القسم، أم فريق المالية؟ إذا لم يرد أحد خلال يومين، هل ينتظر الطلب، أم ينتهي صلاحيته، أم يُحوّل لشخص آخر؟
لهذا السبب تؤدي القواعد الغامضة إلى تطبيقات غير موثوقة. الباني يمكنه أن يكون ثابتًا بقدر وضوح التعليمات التي يتلقاها. عندما تترك الصياغة مجالًا للتخمين، قد يتصرف التطبيق بطريقة اليوم وطريقة مختلفة غدًا عندما تظهر حالة مشابهة قليلاً.
تظهر أكبر المشاكل عادة في بضعة مجالات:
مثال بسيط يبين المشكلة. مؤسس يبني تطبيق مصروفات داخلي في Koder.ai ويكتب: "رد نفقات السفر ما لم تبدو غير معتادة." هذا يبدو معقولًا، لكن التطبيق ليس لديه طريقة موثوقة لتحديد ما الذي يُعد غير معتاد. موافَقة أجرة تاكسي لموظف واحد، وتعلّق مماثلة لموظف آخر، ولا أحد يعرف السبب.
السلوك الموثوق يبدأ بقواعد يمكن اتباعها بنفس الطريقة في كل مرة. استبدل كلمات مثل "كبيرة" و"عاجلة" و"حالة خاصة" بحدود وشروط وإجراءات دقيقة. إذا كان شخصان مختلفان سيطبقان القاعدة بنفس الشكل، فسيكون احتمال أن يفعل التطبيق الشيء نفسه أكبر بكثير.
قاعدة واضحة تغطي قرارًا واحدًا أو إجراءً واحدًا، لا عملية بأكملها. هذا الأمر أهم مما يتوقعه معظم الفرق. عندما تحاول قاعدة واحدة تغطية الموافقة والتسعير والاستثناءات والإشعارات معًا، يضطر الباني للتخمين أي جزء هو الأهم.
القواعد الجيدة سهلة النطق. يجب أن يفهمها شخص خارج فريقك دون الحاجة لاختصارات داخلية. استبدل مصطلحات مثل "مسار سريع" أو "الحالة القياسية" أو "توقيع المدير" بلغة بسيطة تقول بالضبط ماذا يحدث.
غالبًا ما تجيب القاعدة الواضحة عن أربعة أسئلة أساسية:
هذا الهيكل يبقي القاعدة مرتبطة بسلوك حقيقي. بدلًا من كتابة "الطلبات الكبيرة تحتاج مراجعة"، اكتب: "إذا كان الطلب يزيد عن 5,000 دولار، يجب أن يوافق مدير المبيعات قبل أن يُرسل إلى التنفيذ." جملة واحدة، قرار واحد، نتيجة واحدة.
كما يساعد إبقاء القواعد ذات الصلة منفصلة. يجب أن تكون قاعدة الموافقة قائمة بذاتها. وقاعدة إرسال بريد إلكتروني منفصلة. وقاعدة منع الشحن منفصلة أيضًا. هذا يجعل كل قاعدة أسهل للاختبار والتحديث والإصلاح.
الفرق واضح:
"العملاء المميزون يحصلون على أولوية" غير واضح.
"إذا كان العميل لديه خطة مميزة، تُعلَن تذكرة الدعم كأولوية عالية عند إنشاء التذكرة" واضح.
النسخة الثانية تسمي المشغل والشرط والتغيير داخل التطبيق. تخبر الباني كيف يجب أن يبدو السلوك الموثوق.
إذا كنت تستخدم منشئًا مبنيًا على المحادثة، فإن هذا النوع من الصياغة يُحدث فرقًا كبيرًا. القواعد الواضحة لا تحتاج لغة قانونية. تحتاج كلمات بسيطة، فكرة واحدة في كل مرة، ونتيجة متوقعة تُسعف في جملة واحدة.
العمليات الحسابية تبدو بسيطة حتى يحاول أحدهم بناؤها. النهج الأكثر أمانًا هو البدء بجملة بسيطة تقول بالضبط ماذا يجب أن يفعل التطبيق.
قاعدة جيدة تبدو هكذا: "مبلغ التعويض يساوي الأميال المعتمدة مضروبة في سعر الميل." هذا أوضح بكثير من "احسب بدل السفر" أو "طبق التعويض القياسي."
بعد الجملة الأولى، عرّف كل مدخل يجب أن يستخدمه التطبيق. كن محددًا بما يكفي لكي لا يضطر الباني للتخمين.
لكل عملية حسابية، اذكر:
التفاصيل الصغيرة مهمة. "قرّب المبلغ النهائي إلى منزلتين عشريتين" يعطي نتيجة مختلفة عن تقريب كل بند أولًا. إذا كان هناك حد أقصى، قل إن التطبيق يجب أن يتوقف عند هذا الحد أم يعرض تحذيرًا.
قد تبدو قاعدة مكتوبة بلغة بسيطة هكذا: "مبلغ تعويض السفر يساوي الأميال المعتمدة × 0.67$. قرّب المبلغ النهائي إلى منزلتين عشريتين. الحد الأقصى للتعويض هو 300$ لكل رحلة. إذا كانت الأميال المعتمدة فارغة، لا تحسب المبلغ. علّم الطلب بأنه غير مكتمل واطلب من المستخدم إدخال الأميال."
ثم أضف مثالًا أو مثالين بأرقام حقيقية. الأمثلة تكشف الفجوات أسرع من الصيغ المجردة.
مثال 1: "إذا كانت الأميال المعتمدة 120، فالتعويض 120 × 0.67$ = 80.40$. بما أن هذا دون حد 300$، المبلغ النهائي هو 80.40$."
مثال 2: "إذا كانت الأميال المعتمدة 500، فالتعويض 500 × 0.67$ = 335.00$. نظرًا لوجود حد أقصى 300$، المبلغ النهائي هو 300.00$."
هذا الأسلوب أسهل للمراجعة وأسهل على الباني تحويله إلى سلوك تطبيقي.
معظم التطبيقات لا تفشل في المسار الرئيسي. تفشل في حالات الحافة.
المسار الطبيعي قد يكون بسيطًا، لكن العمل الحقيقي يتضمن استردادات بعد الموعد النهائي، عملاء مميزين، مستندات مفقودة، وموافقات فردية. إذا تُركت الاستثناءات خارجًا، يملأ التطبيق الفجوة بنفسه، وهنا تبدأ النتائج المتضاربة.
طريقة بسيطة لكتابة الاستثناءات هي استخدام قواعد قصيرة بصيغة if-then. اجعل كل واحدة تركز على شرط واحد ونتيجة واحدة.
هذا الشكل يجعل المنطق الخفي ظاهرًا. كما يساعدك على اكتشاف التداخلات قبل أن تتحول لأخطاء.
بنفس الأهمية، قل أي قاعدة تنتصر عندما تتعارض قاعدتان. قد يتأهل عميل للحصول على خصم، لكن الطلب قد يقع أيضًا في فترة حظر عطلات. اكتب الأولوية بلغة بسيطة: "إذا تعارضت قاعدة حظر العطلات مع قاعدة خصم العميل، تسود قاعدة الحظر."
كن دقيقًا بشأن الحدود. التواريخ وأنواع المستخدمين والمواقع وحالة الحساب والتجاوزات اليدوية غالبًا ما تغير النتيجة. بدلًا من "التسليمات المتأخرة تحتاج موافقة"، اكتب "إذا تم تقديم الطلب بعد أكثر من 14 يومًا تقويميًا من الحدث، فتتطلب موافقة المدير."
واذكر ما يجب أن يظهر للمستخدم في كل استثناء. القاعدة الجيدة لا تقف عند القرار؛ بل تحدد الرسالة أيضًا، مثل: "مقدّم بعد 14 يومًا. تحتاج موافقة المدير" أو "تجاوز يدوي طبقه مسؤول المالية."
عندما تُكتب الاستثناءات بهذه الطريقة، تتوقف الحالات غير الاعتيادية عن كونها غريبة. تصبح سلوكًا طبيعيًا ويمكن اختباره.
منطق الموافقة يعمل أفضل عندما يُكتب كسلسلة من القرارات، لا كسياسة غامضة. يجب أن يجيب كل خطوة عن خمس أسئلة: من يتصرف، ما الذي يُشغّل مراجعته، ما الحدود المطبقة، كم من الوقت لديه، وما الحالة التي يحصل عليها الطلب بعد قراره.
ابدأ بتسمية الدور، لا الفريق فقط. بدلًا من "المالية تراجع الطلبات الكبيرة"، اكتب "يمكن لمدير المالية الموافقة أو الرفض أو الإرجاع لأي طلب يزيد عن 5,000$." هذا يزيل التخمين ويجعل السلوك أسهل للبناء.
بعدها عرّف المشغل لكل خطوة. المشغل هو الشرط الذي يرسل الطلب إلى الشخص التالي. يمكن أن يعتمد على المبلغ، القسم، مستوى المخاطرة، نوع الطلب، أو مزيج من هذه.
على سبيل المثال:
تحتاج العتبات لحدود دقيقة. لا تقل "كبير" أو "حساس". قل "أعلى من 5,000$" أو "من قسم المبيعات" أو "درجة خطر 8 أو أعلى." إذا كان بإمكان عتبتين أن تنطبقا في نفس الوقت، فاكتب أيهما يسود. مثال: "المخاطر العالية تذهب دائمًا إلى الامتثال، حتى لو كان المبلغ منخفضًا."
تحتاج أيضًا إلى قاعدة مهلة. إذا لم يرد أحد، لا يجب أن يبقى الطلب معلقًا إلى الأبد. قل ماذا يحدث بعد مدة محددة، مثل 48 ساعة أو 3 أيام عمل. قد يُصعَّد الطلب إلى مدير الموافق، أو يُنقل إلى موافقة بديلة، أو يُلغى تلقائيًا.
أخيرًا، عرّف الحالة بعد كل قرار. اجعل التسميات قصيرة ومتسقة:
عندما يُكتب منطق الموافقة بهذه الطريقة، يقل للجاني مجال التخمين ويصبح سير العمل أكثر موثوقية.
إذا أردت سلوكًا متسقًا، أعطِ كل قاعدة الشكل نفسه. الأساليب المكتوبة المتنوعة غالبًا ما تخلق نتائج متباينة.
صيغة بسيطة تعمل لمعظم الحالات: المشغل، الشروط، الإجراء، النتيجة. هي قصيرة بما يكفي للكتابة بسرعة وواضحة بما يكفي للمراجعة لاحقًا.
أبقِ كل قاعدة في سطرها أو بطاقتها أو كتلتها الخاصة. لا تكدس عدة أفكار في فقرة واحدة. إذا غطت قاعدة التسعير والموافقة والاستثناء في آن واحد، تصبح صعبة الاختبار وسهلة الخطأ.
قالب عملي يبدو هكذا:
Trigger: When [event happens]
Conditions: If [facts must be true]
Action: Then [the app does this]
Result: So [expected outcome]
Assumption: [anything not yet confirmed]
Example: [short sample input and output]
لا تحتاج كل حقل في كل مرة. لكن الحفاظ على نفس الترتيب يساعد الناس على مسح القواعد بسرعة.
على سبيل المثال:
Trigger: When an employee submits an expense claim
Conditions: If the total is over $500 and no receipt is attached
Action: Then send the claim back for correction
Result: So incomplete claims are not forwarded to a manager
Assumption: Receipt is required for all claims above $500
Example: A $620 taxi claim without a receipt is returned to the employee
لاحظ أن المثال تحت القاعدة، وليس بداخلها. هذا يحافظ على نظافة القاعدة. المثال يوضح فقط كيف يجب أن تتصرف القاعدة.
علّم الافتراضات بوضوح بدلًا من إخفائها داخل الجملة. ملاحظة صغيرة مثل "افتراض" أو "يحتاج تأكيد" تجعل الأسئلة المفتوحة سهلة المراجعة قبل وقت البناء.
كما يساعد الاتساق في الصياغة. ابدأ دائمًا المشغلات بـ "When"، الشروط بـ "If"، والإجراءات بـ "Then." أنماط صغيرة مثل هذه تقلل الالتباس، خاصة عند تحويل القواعد إلى منطق تطبيقي.
اختبار سريع يعمل هنا: هل يمكن لشخص ما اختبار هذه القاعدة، وهل يمكن لأحد أن يسيء قراءتها؟ إذا كان الجواب للأول لا، أو للثاني نعم، شدد الصياغة.
تطبيق مصروفات الموظفين حالة اختبار جيدة لأن السياسة مألوفة وتظهر حالات الحافة بسرعة. يمكن للموظفين المطالبة بالوجبات والأجرة والفنادق وتكاليف العملاء الصغيرة، لكن لكل مطالبة حدود واستثناءات وخطوات موافقة. هذا بالضبط النوع الذي تكون فيه اللغة البسيطة مهمة.
اكتب قاعدة الوجبات هكذا: يمكن للموظفين المطالبة بما يصل إلى 40$ يوميًا للوجبات خلال أيام العمل العادية. يجب أن يجمع التطبيق كل إيصالات الوجبات لنفس التاريخ ويقارن المجموع بالحد اليومي، لا كل إيصال على حدة.
إذا أنفق الموظف 12$ على الإفطار و22$ على الغداء يوم الثلاثاء، يصبح المجموع 34$، فتُقبل المطالبة. إذا أضاف 15$ للعشاء في نفس اليوم، يصبح المجموع 49$، فيجب أن يعلّم التطبيق الطلب أنه تجاوز الحد.
أضف الآن استثناءً. إذا كانت الوجبة خلال سفر عمل معتمد أو اجتماع مع عميل، يرتفع الحد اليومي إلى 75$. ينطبق هذا الاستثناء فقط عندما يختار الموظف إما "يوم سفر = نعم" أو "اجتماع عميل = نعم" ويضيف ملاحظة قصيرة باسم العميل أو غرض الرحلة.
هذا أكثر موثوقية من صياغات غامضة مثل "قد تُسمح الحالات الخاصة" لأن الاستثناء مرتبط بشروط واضحة.
يمكن أن يبقى منطق الموافقة بسيطًا أيضًا:
يمكنك اختبار القاعدة ببعض الحالات البسيطة. مطالبة وجبة بقيمة 36$ في يوم عمل عادي يجب أن تُوافق إذا كانت الإيصالات مرفقة. مطالبة وجبة 60$ في يوم سفر يجب أن تمر إذا تم تمييز السفر وملىء الملاحظة. مطالبة وجبة 60$ في يوم عادي يجب أن تُرفض أو تُعاد للتصحيح. مطالبة فندق بقيمة 650$ يجب أن تمر بكل خطوات الموافقة الثلاث.
هذا هو الهدف: يجب أن تعطي القاعدة نفس النتيجة في كل مرة يتم اختبارها بحالات حقيقية.
قد تبدو القاعدة واضحة لشخص وتظل مربكة للباني. يحدث هذا عادة عندما يكون المستند غامضًا، أو يحشو عدة أفكار، أو غير متسق من سطر لآخر.
خطأ شائع هو حشر عدة قواعد في فقرة طويلة. مثال: "المديرون يوافقون على السفر ما لم يكن الإجمالي عاليًا، والمالية تفحص الإيصالات، والطلبات العاجلة يمكن أن تتخطى المراجعة." قد تبدو فعالة، لكنها تخفي عدة قرارات منفصلة. قسّمها إلى قواعد منفصلة حتى يكون لكل فعل مشغل ونتيجة.
مشكلة أخرى هي اللغة الضبابية. كلمات مثل عادي، كبير، عاجل، أو حديث تعمل فقط إذا عرّفت. إذا كان "مصروف كبير" يعني أكثر من 2,000$، قل ذلك. إذا كان "عاجل" يعني مطلوبًا خلال 24 ساعة، اكتب الشرط الدقيق.
البيانات المفقودة مصدر رئيسي آخر للنتائج السيئة. كثيرًا ما يصف الفرق المسار السليم وينسون أن يذكروا ماذا يحدث عندما تكون المعلومات ناقصة أو خاطئة. إذا لم يكن في الطلب مبلغ، أو قسم، أو إيصال، يجب أن تقول القاعدة ماذا يحدث بعد ذلك.
الأخطاء التي تسبب معظم المشاكل عادة هي:
السلطة النهائية أهم مما يتوقعه كثيرون. إذا اختلف المدير ومراجع المالية، من يتخذ القرار الأخير؟ إذا لم يملك أحد الخطوة النهائية، قد يتعطل التطبيق أو يدور العمل في حلقة.
تغيير المصطلحات يخلق أخطاء صامتة. إذا بدأت بـ "الطلب" ثم سميتَه لاحقًا "التقديم" أو "التذكرة"، قد يظن القارئ أنها أشياء مختلفة. اختر مصطلحًا واحدًا وواصله طوال الوثيقة.
هذا أهم حتى في منشئ يعتمد المحادثة، حيث تدفع اللغة المباشرة السلوك. القواعد الواضحة لا تحتاج أن تبدو رسمية. تحتاج أن تكون محددة ومتسقة وكاملة.
قبل تحويل المتطلبات إلى شاشات أو تدفقات أو مطالبات، قم بمراجعة أخيرة قصيرة. فحص قصير الآن يوفر ساعات إصلاح لاحقًا.
اجعل كل قاعدة قابلة للاختبار. يجب أن تنتهي كل قاعدة بنتيجة واضحة مثل نعم أو لا، قبول أو رفض، تطبيق رسوم أو عدم تطبيق رسوم. إذا كان بإمكان شخصين قراءة نفس الجملة وإعطاء إجابات مختلفة، فالمطلوب إعادة صياغة القاعدة.
اكتب كل عملية حسابية بالتفصيل. سمّ المدخلات والصيغة ومتى يحدث الحساب. أضف التقريب والعملات والتعامل مع التواريخ وماذا يحدث إذا كانت قيمة مفقودة أو صفر.
ابق الاستثناءات منفصلة. اكتب القاعدة الافتراضية أولًا، ثم أضف الاستثناءات بمفردها. لا تُخفِ الحد الرئيسي للإنفاق داخل حالة خاصة للمقاولين أو المشتريات العاجلة أو السفر المعتمد.
رسم مسار الموافقة الكامل. لكل عتبة، بيّن من يوافق وماذا يحدث بعد ذلك. كن دقيقًا بشأن الحواف أيضًا: قل ما إذا كانت القاعدة تبدأ فوق 500$ أم 500$ وما فوق.
ثم اختبرها مع زميل جديد. أعطِ القاعدة لشخص لم يعمل عليها واطلب منه أن يشرحها بكلماته. إذا احتاج إلى سياق إضافي، فالقاعدة لا تزال غامضة.
مثال صغير يوضح لماذا هذا مهم. "المدير يوافق على المصروفات الكبيرة" يبدو واضحًا حتى يسأل أحدهم هل 500$ يُعد كبيرًا. "المدير يوافق على المصروفات فوق 500$. المدير الإقليمي يوافق على المصروفات فوق 2,000$. المصروفات 500$ أو أقل تُقبل تلقائيًا" تترك مجالًا أقل للأخطاء.
بمجرد وضوح القواعد، راجعها مع الأشخاص الذين يستخدمون العملية يوميًا. المدراء والمنسقون وموظفو المالية والمراجعون غالبًا ما يلاحظون تفاصيل صغيرة لا تُذكر في وثيقة السياسة. تلك التفاصيل عادة هي ما يجعل التطبيق سلسًا أو محبطًا.
عامل وثيقة القواعد كتعليمات عمل قابلة للتطبيق، لا كمسودة تُكتب مرة واحدة. يجب أن تشرح ماذا يحدث، من يقرر، ما الاستثناءات، وماذا يفعل التطبيق عندما تكون المعلومات ناقصة.
قبل بناء التطبيق الكامل، اختبر بعض السيناريوهات الحقيقية من العمل الأخير. استخدم حالات نظيفة وحالات فوضوية: طلب قياسي يجب أن يمر، طلب بمعلومات ناقصة، استثناء يحتاج مراجعة يدوية، وحالة تتجاوز حد إنفاق أو عتبة موافقة.
تكتشف هذه الخطوة الفجوات مبكرًا. قد تبدو القاعدة واضحة على الورق لكنها تنهار عندما لا تطابق الحالة الحقيقية النمط المتوقع.
بمجرد ثبات تلك السيناريوهات، حوّلها إلى منشئك. إذا كنت تستخدم منصة محادثة مثل Koder.ai، فإن مجموعة قواعد واضحة تجعل البناء أسرع لأنك تحول عملية محددة إلى شاشات وإجراءات وموافقات بدل اتخاذ قرارات أثناء البناء.
بعد الإطلاق، احتفظ بالوثيقة كمصدر الحقيقة. عند تغيير سياسة، أو إضافة موافق جديد، أو تعديل حد، عدّل الوثيقة أولًا ثم حدّث التطبيق. هذا يبقي التعديلات المستقبلية أبسط ويقلل فرصة أن يذكر الناس القاعدة بطرق مختلفة.
عادة مفيدة هنا: راجع القواعد كلما تغيّرت العملية، لا فقط عندما ينهار التطبيق. التحديثات الصغيرة المبكرة أسهل بكثير من إصلاح سلوك مربك لاحقًا.
إذا بقيت الوثيقة محدثة، يصبح التطبيق أسهل للاختبار والتحسين والثقة مع مرور الوقت.
أفضل طريقة لفهم قوة Koder هي تجربتها بنفسك.