← العودة
Blog Post
عنوان المحادثة: البرومبت اللي بيتمرر لعقدة OpenAI Chat في الوورك فلو اللي إسمه 🤖 Whats...
التاريخ: 21.04.2026
التصنيف: 🧠 الذكاء الاصطناعي وتعلم الآلة
إجمالي الرسائل: 8 | ياسر: 4 | M: 4
Yasser
البرومبت اللي بيتمرر لعقدة OpenAI Chat في الوورك فلو اللي إسمه 🤖 WhatsApp Shipping Bot ضخم جدا وبيسبب تشتيت كبير أوي للإيجنتعاوزه أقسمه حسب أمور كتير ومنها حسب الدور .. يعني مش لازم كل مرة البوت يعرف الردود المختلفة في الحالات المختلفة كلها وإنما يستعمل أدوات تمارس هي المهمات في الحالات المختلفة وهو يستخدم الأداة .. بحيث يسهل التعديل على البوت وكمان يوفر في التوكنز ويسهل عليه التذكر ويقدر ينفذ المهمات بشكل سليم بدون توهانالمطلوب منك هو تقسيم المشروع بشكل كامل سواء في الوورك فلو ده أو في الوورك فلو الخاص بالإشعارات بحيث يستخدم نظام الأدوات من عقدة ai agent ونعمل فلوز مختلفة بالأدوات دي بحيث عند نداء الأداة وتمرير البيانات ليها تقدر تنفذ المطلوب بشكل سليم بحيث يصبح المشروع اكثر إحترافية ويمكن التعديل عليه بسهولة ويصبح أكثر قدرة على تنفيذ المطلوب منه بدون نسيان لطول البرومبتقبل ما تقسم المشروع إكتبلي تقرير كامل وخطة عمل إحترافية كاملة مكونة من خطوات واضحة لتنفيذ المطلوب بإحترافية عالية
Yasser
# 📈 المكاسب المتوقعة| المقياس | قبل | بعد (تقديري) ||---|---|---|| حجم برومبت العميل | ~600 سطر | ~80 سطر || حجم برومبت أي team member | 80-120 سطر | 25-40 سطر || Few-shot examples | ~300 سطر لكل رسالة | 0-3 أمثلة فقط لكل agent || Input tokens / رسالة | ~4-8K | ~800-2K (تقليل 60-75%) || مكان تعديل منطق عمل | 2 ملفات عملاقة (1365 + 3898 سطر) | ملف أداة واحد مستقل (~150-300 سطر) || احتمال نسيان ACTION tag | عالٍ (fallbacks كتيرة بالكود) | يختفي (tool calls مُنظّمة أصلاً) || إضافة حالة/دور جديد | تعديل في 5+ أماكن | إضافة أداة جديدة + سطر في agent |
Yasser
# ⚠️ مخاطر وتحفظات1. الـ workflow الحالي يستخدم `httpRequest` مباشر لـ OpenAI**، لا `@n8n/n8n-nodes-langchain.agent`. التحويل لـ Langchain Agent يتطلب تأكد من وجود الـ community node في الـ n8n instance. إذا غير متاح → نحافظ على httpRequest لكن نعمل "function calling" الرسمي من OpenAI بدل الـ `>>` tags.2. **Sub-workflow tools لا تُختبر عبر REST API (ملاحظة محفوظة في user memory) → الاختبار يتم من خلال الـ agent الأب فقط.3. الـ toolWorkflow format دقيق: workflowId: { __rl: true, value: "ID", mode: "id" } + workflowInputs schema (ملاحظة محفوظة). لازم نلتزم.4. بعض الأدوار لها منطق حساس لحالة الطلب (Sierra Leone: نفس عبارة "استلمت" تعني 4 أشياء حسب status). المنطق ينتقل للأداة، لكن لازم نختبره بعناية.5. few-shot examples اللي تعلم الـ AI ينطق لهجة يمنية لا نقدر نلغيها كلها — نحتفظ بـ 3-5 فقط في agent العميل.
Yasser
# ❓ قبل ما أبدأ التنفيذ، محتاج قرارك على:1. Langchain Agent vs HTTP+Function-Calling: أي الطريقتين مفضّلة؟ (Langchain أنظف لكن يحتاج community node مثبت)2. البدء من أبسط دور (Accountant) أم من الأصعب (Customer)**؟ أنصح بـ Accountant (PoC آمن).3. **هل نحافظ على نظام `>>` كـ fallback أم نتخلى عنه تماماً لصالح tool calling الرسمي؟ (أنصح بالتخلي تماماً لنظافة المعمارية).4. مستوى اختبار مطلوب قبل cutover: يدوي فقط، أم نكتب سكربتات مقارنة DB state آلية؟5. هل الفريق المستخدم للبوت متاح للاختبار أثناء parallel run؟
المحادثة الكاملة - 21.04.2026
ياسر
البرومبت اللي بيتمرر لعقدة OpenAI Chat في الوورك فلو اللي إسمه 🤖 WhatsApp Shipping Bot ضخم جدا وبيسبب تشتيت كبير أوي للإيجنتعاوزه أقسمه حسب أمور كتير ومنها حسب الدور .. يعني مش لازم كل مرة البوت يعرف الردود المختلفة في الحالات المختلفة كلها وإنما يستعمل أدوات تمارس هي المهمات في الحالات المختلفة وهو يستخدم الأداة .. بحيث يسهل التعديل على البوت وكمان يوفر في التوكنز ويسهل عليه التذكر ويقدر ينفذ المهمات بشكل سليم بدون توهانالمطلوب منك هو تقسيم المشروع بشكل كامل سواء في الوورك فلو ده أو في الوورك فلو الخاص بالإشعارات بحيث يستخدم نظام الأدوات من عقدة ai agent ونعمل فلوز مختلفة بالأدوات دي بحيث عند نداء الأداة وتمرير البيانات ليها تقدر تنفذ المطلوب بشكل سليم بحيث يصبح المشروع اكثر إحترافية ويمكن التعديل عليه بسهولة ويصبح أكثر قدرة على تنفيذ المطلوب منه بدون نسيان لطول البرومبتقبل ما تقسم المشروع إكتبلي تقرير كامل وخطة عمل إحترافية كاملة مكونة من خطوات واضحة لتنفيذ المطلوب بإحترافية عالية
21.04.2026 21:52
M
gpt codex?
21.04.2026 21:52
ياسر
# 📈 المكاسب المتوقعة| المقياس | قبل | بعد (تقديري) ||---|---|---|| حجم برومبت العميل | ~600 سطر | ~80 سطر || حجم برومبت أي team member | 80-120 سطر | 25-40 سطر || Few-shot examples | ~300 سطر لكل رسالة | 0-3 أمثلة فقط لكل agent || Input tokens / رسالة | ~4-8K | ~800-2K (تقليل 60-75%) || مكان تعديل منطق عمل | 2 ملفات عملاقة (1365 + 3898 سطر) | ملف أداة واحد مستقل (~150-300 سطر) || احتمال نسيان ACTION tag | عالٍ (fallbacks كتيرة بالكود) | يختفي (tool calls مُنظّمة أصلاً) || إضافة حالة/دور جديد | تعديل في 5+ أماكن | إضافة أداة جديدة + سطر في agent |
21.04.2026 22:16
ياسر
# ⚠️ مخاطر وتحفظات1. الـ workflow الحالي يستخدم `httpRequest` مباشر لـ OpenAI**، لا `@n8n/n8n-nodes-langchain.agent`. التحويل لـ Langchain Agent يتطلب تأكد من وجود الـ community node في الـ n8n instance. إذا غير متاح → نحافظ على httpRequest لكن نعمل "function calling" الرسمي من OpenAI بدل الـ `>>` tags.2. **Sub-workflow tools لا تُختبر عبر REST API (ملاحظة محفوظة في user memory) → الاختبار يتم من خلال الـ agent الأب فقط.3. الـ toolWorkflow format دقيق: workflowId: { __rl: true, value: "ID", mode: "id" } + workflowInputs schema (ملاحظة محفوظة). لازم نلتزم.4. بعض الأدوار لها منطق حساس لحالة الطلب (Sierra Leone: نفس عبارة "استلمت" تعني 4 أشياء حسب status). المنطق ينتقل للأداة، لكن لازم نختبره بعناية.5. few-shot examples اللي تعلم الـ AI ينطق لهجة يمنية لا نقدر نلغيها كلها — نحتفظ بـ 3-5 فقط في agent العميل.
21.04.2026 22:19
ياسر
# ❓ قبل ما أبدأ التنفيذ، محتاج قرارك على:1. Langchain Agent vs HTTP+Function-Calling: أي الطريقتين مفضّلة؟ (Langchain أنظف لكن يحتاج community node مثبت)2. البدء من أبسط دور (Accountant) أم من الأصعب (Customer)**؟ أنصح بـ Accountant (PoC آمن).3. **هل نحافظ على نظام `>>` كـ fallback أم نتخلى عنه تماماً لصالح tool calling الرسمي؟ (أنصح بالتخلي تماماً لنظافة المعمارية).4. مستوى اختبار مطلوب قبل cutover: يدوي فقط، أم نكتب سكربتات مقارنة DB state آلية؟5. هل الفريق المستخدم للبوت متاح للاختبار أثناء parallel run؟
21.04.2026 22:25
M
Ran terminal command: git add -A; git commit -m "phase 0+1: backup + tool contracts documentation (refactor plan)" -q; git log --oneline -5Completed: *Build docs/architecture-target.md* (6/6)Updated memory file [](file:///c%3A/Users/miraz/AppData/Roaming/Code/User/workspaceStorage/766bb137dc4762f97f47fbbf1065e138/GitHub.copilot-chat/memory-tool/memories/repo/n8n-whatsapp-bot-notes.md)Compacted conversationتم إنجاز **المرحلة 0 + المرحلة 1** بالكامل. ملخص الوضع الحالي:## ما تم إنجازهالمرحلة 0 — الحماية:- فرع جديد: refactor/tools-architecture- نسخة احتياطية على القرص: _backup_20260421_221851/ تحتوي wf_bot.json, wf_notif.json, و src/ كاملاً- Commit: 2069070المرحلة 1 — التوثيق والتصميم:خمس وثائق تحت docs/refactor/:1. 00-README.md — الفهرس2. 01-actions-inventory.md — جرد الـ 33 action (دور/حالة/مدخلات/DB/إشعارات)3. 02-tools-spec.md — عقود الـ 11 أداة المقترحة + خريطة 33→114. 03-test-scenarios.md — 35 سيناريو اختبار (5 لكل دور) للتحقق من التطابق5. 04-architecture-target.md — 6 قرارات معمارية + خطة التحويل + rollbackالقرارات المعمارية المأخوذة (راجعها قبل المرحلة 2):- D1: OpenAI function calling بدلاً من Langchain Agent- D2: كل أداة = sub-workflow منفصل بـ webhook- D3: جدول جديد shipping_order_drafts لتجميع بيانات الطلب قبل الإنشاء- D4: كل أداة تُطلق إشعاراتها مباشرة- D5: إلغاء نظام >> كلياً- D6: الإبقاء على shipping_execute() في Postgres كـ dispatcher داخلي للأدوات## معلّقات تحتاج قرارك قبل المرحلة 21. من أين نبدأ PoC؟ أوصي بـ accountant (أبسط: 3 actions فقط).2. موافق على إلغاء ACTION tags كلياً (D5) أم نبقيها fallback مرحلياً؟3. أسلوب الاختبار: يدوي على رقم تجريبي، أم تشغيل متوازي (shadow run) ومقارنة DB؟4. هل الفريق جاهز للمساعدة في اختبار parity للأدوار الـ6 (accountant, ethiopia_ops, sierra_leone_ops, financial_ops, gambia_ops, manager)؟عند تأكيدك، أبدأ المرحلة 2: بناء wf_tool_accountant_ops.json + wf_tool_order_tracking.json + دمج Agent جزئي لدور المحاسب، ثم تنفيذ سيناريوهات A1–A5.Made changes.
21.04.2026 22:33
M
أبدأ بعمق — أحتاج أولاً أفهم الـ flow الحالي للعميل قبل أي كود. Research done, first tool shipped. Pausing here for your review before the two harder tools.ما تم في هذه الجولة:1. بحث عميق في الـ SQL والـ flow — راجعت كل WHEN في shipping_api() وحدّدت كل action متعلق بالعميل.2. Spec doc: 08-customer-tools-spec.md — القرارات الأساسية فيه: - 3 tools فقط مش 4 — أسقطت "order_draft state-machine tool". منطق المحادثة (wizard) يبقى في الـ bot prompt؛ الأدوات data-ops فقط. - صفر SQL جديد — كل op يستخدم action موجود. - استثناء واحد مخطط له: get_my_orders يحتاج raw SQL (join customers→orders بالهاتف). هذا القرار يحتاج موافقتك قبل ما أكود. - Security: _caller_phone هو source of truth (حقنة من الـ bot، مش من LLM) — الاختبار P5 يثبت أن LLM ما يقدر يزوّر رقم.3. أول أداة مبنية: customer_profile_ops.js — 3 ops: find_by_phone, create, get_balance. idempotent على create (ما يكرّر عميل).4. Tests: test_customer_profile_ops.js — 50/50 offline passing**، تشمل security + forbidden + validation + edge cases.**ماذا ناقص (لم أكود بعد):- customer_payment_ops.js (submit + get_history)- order_ops.js (5 ops، الأصعب لأن get_my_orders يحتاج raw SQL)- 3 ملفات sub-workflow + deploy + live wiringالسؤال قبل ما أكمل:- هل توافق على الاستثناء لـ raw SQL في get_my_orders`؟ البديل = إضافة `WHEN 'get_orders_by_phone' في shipping_api() (أنظف لكن يلامس SQL الإنتاج). أميل للـ raw SQL لأنه محصور داخل الـ sub-workflow الجديد فقط.- هل تعتمد الـ spec كما هي، أم تريد تعديل الـ scope (مثلاً: تضيف/تحذف op)؟ Made changes.
21.04.2026 23:25
← العودة إلى الرئيسية