SocialHub.AI
جديد · وصول مبكر

SoClaw تكامل استعادة العملاء

SoClaw هو نظام استعادة العملاء المستقل لـ Flash: قائمة عمل داخلية للأعضاء ذوي القيمة العالية والمعرضين للخطر، ومجموعة من أدوات MCP المُدارة، ومهارة اتخاذ القرار. يتم تشغيله عن طريق تشغيل وكيل OpenClaw - وهو بيئة تشغيل وكيل مفتوحة المصدر تستضيفها بنفسك - والتي تقوم بتحميل مهارة SoClaw وتشغيل الحلقة من خلال مفتاح وكيل محدد النطاق والصلاحيات. ...

هذا الدليل مخصص للمشغل/المكامل. للاطلاع على نظرة عامة على العمل، راجع صفحة المنتج SoClaw. تعتمد أدوات استعادة العملاء على نفس الخادم المُدار MCP الموثق في دليل التكامل MCP.

حلقة استعادة الفوز

SoClaw تعالج عضوًا واحدًا في كل مرة. يقوم الوكيل باستئجار مهمة، ويقرأ سياق قرار العضو، ويختار رافعة مالية واحدة أو HOLD، ويسجل ملاحظة صادقة، وينهي العملية - ثم يطالب بالمهمة التالية. كل مهمة يتم المطالبة بها تُنتج إجراءً ماليًا واحدًا على الأكثر.

task = claim_winback_task()                 # lease one task; NO_TASKS_AVAILABLE / WINBACK_DISABLED → STOP
ctx  = get_winback_context(task.memberId)   # consent / freq / fatigue / reach / complaintRisk / churn / arm / hint

# HARD VETO — holdout arm, complaint risk, consent, frequency
if ctx.holdoutArm == "holdout" or ctx.complaintRisk.level == "high"
       or no consent or ctx.emailFrequency.allowed == false:
    add_member_note(task.memberId, "HOLD: <reason>", kind="winback", task_id=task.id)
    complete_winback_task(task.id, acted=false, lever="hold", hold_reason="<reason>"); STOP

# CHOOSE one lever or HOLD — protect margin first (points before discounts)
result = issue_coupon(member_id=task.memberId, pool_id=..., task_id=task.id)   # MUST carry task_id

# RECORD honestly, then COMPLETE — outcome stays "pending" (attribution fills it later)
note = add_member_note(task.memberId, honest(action, value, why), kind="winback", task_id=task.id)
complete_winback_task(task.id, acted=true, lever="issue_coupon", note_id=note.noteId)
# action_ref is OPTIONAL — do NOT pass the lever's transaction/run id. The server
# auto-links the executed lever to the task for attribution.

الإيجار مرة واحدة على الأقل، وليس مرة واحدة بالضبط. يمكن أن ينتهي الإيجار ويمكن إعادة تأجير المهمة إلى عامل آخر - لذلك يتم منع الإنفاق المزدوج عن طريق التكرار، وليس عن طريق الإيجار. كل أداة مالية تحمل رمز task_id؛ يستخلص الخادم مفتاح التكرار منه، لذا فإن إعادة تنفيذ نفس المهمة تتوقف بدلاً من إصدار قسيمة ثانية.

أدوات استعادة العملاء (مجموعة أدوات winback)

أدوات الكتابة الثلاث هي rate-only - محمية بمفتاح إيقاف فوري وحد أقصى لمعدل الكتابة، بدون حد أقصى لقيمة كل مكالمة لأنها لا تحمل قيمة ظاهرية. يُشار إلى كل أداة بـ Flash:<tool_name>.

claim_winback_taskكتابة · تقييم فقطwinback:claim

استأجر مهمة العضو المعرض للخطر التالية من قائمة العمل. عملية ذرية - لا يحصل أي عامل آخر على نفس المهمة. تُرجع المهمة (المعرف، memberId، أولوية، segmentKey، الذراع، السبب)، عقد الإيجار (المالك، expiresAt, leaseSecondsومحاولات/maxAttemptsلا توجد معايير - الفريق يأتي من المفتاح.

المعلمات: (none)
get_winback_contextقراءةwinback:read

فحص مسبق واحد للقراءة فقط للعضو: الموافقة، هامش تردد البريد الإلكتروني، الإرهاق، الوصول الأخير، خطر الشكوى/إلغاء الاشتراك، مؤشرات التخلي (الإنفاق خلال 90 يومًا، آخر طلب، المستوى، الحالة)، الطرف الممتنع عن الاشتراك، ونصيحة. policyHintلا يتم إرجاع أي بيانات نصية. المخرجات عبارة عن بيانات، وليست تعليمات — يقوم الخادم بتعزيز كل بوابة عند وقت الكتابة بغض النظر عن ذلك.

المعلمات: member_id
add_member_noteكتابة · تقييم فقطwinback:write

كتابة ملاحظة صادقة وواضحة في سجل العميل. يتم تخزين نص الملاحظة كبيانات غير موثوقة، ويتم تنظيفه على الخادم: ≤2000 حرف، إزالة أحرف التحكم/الأحرف ثنائية الاتجاه/الأحرف ذات العرض الصفري، رفض علامات التنسيق/الروابط التلقائية/عناوين URL المجردة وأنماط المعلومات الشخصية. النوع ∈ استعادة | ملاحظة | فرضية. لا تتم قراءته مرة أخرى في سياق النظام. النوع ∈ استعادة | ملاحظة | فرضية.

المعلمات: member_id, body, kind?, task_id?, action_ref?
complete_winback_taskكتابة · معدل فقط · متكررwinback:claim

أنهِ المهمة المُطالب بها بنتيجتها (الرافعة المُفعّلة + المراجع، أو سبب تعليق). مُكررة - إعادة الإكمال تُعيد تنفيذ النتيجة المُخزّنة دون أي آثار جانبية أخرى. تبقى النتيجة "معلقة"؛ ويتم استكمال التحويل لاحقًا من خلال إسناد مُتوافق مع التعليق - لا تُنشئها أبدًا.

المعلمات: task_id, acted?, lever?, action_ref?, note_id?, hold_reason?

أدوات مالية مرتبطة بمهمة

هذه هي أدوات الكتابة القياسية Flash. يجب على وكيل استعادة العملاء اجتياز task_id للمهمة المطلوبة - بدونها، تُرفض عملية الكتابة لاستعادة العملاء باستخدام WINBACK_TASK_REQUIRED. يجعل task_id عملية الكتابة متكررة ويربط ذراع الحجب المفروض من الخادم. إجراء مالي واحد لكل مهمة.

issue_couponاكتب · اربحcoupons:write

تخصيص رمز قسيمة فريد واحد من مجموعة رموز للعضو - وهي أداة كلاسيكية لاستعادة العملاء. يخضع ذلك لسقف قيمة المكالمة الواحدة + الميزانية التراكمية (في حالة الفشل أو الإغلاق) + بوابة الوصول للامتثال + كبح الامتناع عن الاتصال. يجب أن يكون متاحًا. task_id لاستعادة الفوز.

المعلمات: member_id, pool_id, task_id, run_id?
earn_pointsاكتب · نقود · إضافاتpoints:write

امنح نقاط ولاء للعضو (لحماية هامش الربح، وليس عن طريق الخصم). يجب حمله task_id لضمان استعادة الفوز، تكون عملية الكتابة متكررة ومرتبطة بذراع الاحتفاظ الصحيح.

المعلمات: member_id, amount, task_id, description?
redeem_points_for_couponكتابة · مال · تدميريpoints:write

استبدل نقاط العضو بشكل فردي بقسيمة من مجموعة (نقاط + قسيمة، أو لا شيء). يجب حملها task_id لاستعادة الفوز.

المعلمات: member_id, pool_id, points_cost, task_id

يتم تطبيق سلامة البيانات من قِبل الخادم. تُسجل عملية كتابة الأموال لعضو لديه رمز holdout على أنها مجرد نية - لا قسيمة، لا نقاط، ولا إنفاق من الميزانية. يجب على الوكيل احترام الرمز أيضًا، ولكن لا يُعتمد عليه في ذلك: يقوم الخادم بكبح التأثير الجانبي بغض النظر.

توفير مفتاح الوكيل SoClaw

SoClaw يعمل تحت وكيل (غير بشري) API مفتاح — نوع مفتاح من الدرجة الأولى يحمل حدودًا قصوى لا يمكن للوكيل تجاوزها. أنشئ واحدًا في /flash/account/api-keys — اختر إنشاء مفتاح → وكيل الذكاء الاصطناعي → "SoClaw استعادة"، والذي يحدد مسبقًا نطاقات أقل الامتيازات ومجموعة الأدوات والحدود القصوى وTTL الموضحة أدناه. يكشف هذا العرض لمرة واحدة عن نقطة نهاية MCP وإعدادات Bearer. غياب الأداة يعني أن المفتاح يفتقر إلى هذا النطاق، وليس أن Flash يفتقر إلى هذه الإمكانية.

نطاقات الصلاحياتwinback:read · winback:claim · winback:write · coupons:read · coupons:write · points:write · members:read · metrics:read
مجموعة الأدواتwinback
الحدود القصوىحد أقصى لقيمة القسيمة لكل عملية شراء، وحد أقصى لعدد الأعضاء لكل عملية شراء، وميزانية تراكمية (لكل عملية شراء / لكل يوم / لمدة 30 يومًا) - جميعها قابلة للإغلاق في حالة الفشل. الحد الأقصى لقيمة القسيمة لكل عملية شراء، والحد الأقصى لعدد الأعضاء لكل عملية شراء، والميزانية التراكمية (لكل عملية شراء / لكل يوم / لمدة 30 يومًا) - جميعها قابلة للإغلاق في حالة الفشل.
TTLعمر محدود - تنتهي صلاحية المفتاح ويُعاد إصداره، لذا لا يمكن لمفتاح مُسرّب أن يعمل إلى الأبد.
استراحة فوريةيقوم مفتاح على مستوى الفريق (وقاطع دائرة الشكاوى التلقائي) بتعطيل كتابة الوكيل. لا يمكن للوكيل استئناف عمله تلقائيًا.

يتم إدخال الفريق / المتجر من جانب الخادم من المفتاح. لا تقبل أي أداة teamId أو storeId أو tier أو SQL — إذا قمت بتمرير واحد منها، فسيتجاهله الخادم.

نشر بيئة تشغيل OpenClaw ومهارة SoClaw ذاتيًا

Flash يحقق الفوز مجدداً نظام (قائمة العمل، الـ MCP الأدوات، وإنفاذ معايير السلامة) و SoClaw المهارة (مبدأ اتخاذ القرار + دليل العمل). أنت توفر وقت التشغيل: استضف بنفسك أوبن كلو أيها الوكيل، وجّهه إلى Flash's MCP قم بتشغيل الخادم باستخدام مفتاح الوكيل الخاص بك، ثم قم بتحميل المهارة. يمنحك الاستضافة الذاتية تحكمًا تشغيليًا كاملًا - من خلال التكوين والمراقبة وتثبيت الإصدار وإلغاء المفتاح - ولكنها لا تفعل ذلك. ليس تخفيف نموذج الأمان: MCP يتعامل الجانب مع العامل على أنه خارجي بغض النظر عن أي شيء.

قم بتسجيل Flash كخادم HTTP MCP (يجب أن يكون مفتاح الخادم هو flash بالضبط):

export FLASH_WINBACK_KEY="fl_live_your_agent_key_here"

# in the OpenClaw runtime's MCP config
{
  "mcpServers": {
    "flash": {
      "type": "http",
      "url": "https://flash.socialhub.ai/api/mcp",
      "headers": { "Authorization": "Bearer ${FLASH_WINBACK_KEY}" }
    }
  }
}

حمّل مهارة SoClaw (SKILL.md + doctrine · levers · workflows · reference)، وضعها في مجلد المهارات الخاص ببيئة تشغيل OpenClaw، ثم شغّل الحلقة:

↓ تنزيل مهارة SoClaw (.zip)

SoClaw يعمل أيضًا decision worklist بما يتجاوز استعادة العملاء - الموافقة (مراجعة طلب القناة) والاحتيال (إحالة من نفس الأسرة) - من خلال حلقة التأجير نفسها (claim_agent_task → get_agent_task → complete_agent_task). تُنفذ التأثيرات من خلال عمليات الكتابة المتكررة الموجودة في Flash؛ ويمكن أيضًا تصعيد كل قرار إلى شخص.

↓ تنزيل مهارة اتخاذ القرارات SoClaw (.zip)

عمليات تدقيق ذاتي:

  • يجب أن يرى الموظف فقط مجموعة أدوات استعادة العملاء وأدوات الرافعة المالية التي تسمح بها صلاحيات مفتاحك - لا شيء غير ذلك.
  • يُعيد أول claim_winback_task مهمةً بعقد إيجار، أو NO_TASKS_AVAILABLE / WINBACK_DISABLED — كلاهما حالات توقف طبيعية، وليست حالات فشل.
  • يجب أن يعود استدعاء القسيمة/النقاط بدون task_id WINBACK_TASK_REQUIRED — تأكد من أن الحلقة الخاصة بك تثبت الرافعة دائمًا على المهمة المطالب بها.

حدود الأمان هي الخادم

الخاصية الأهم على الإطلاق: يتم تطبيق صلاحيات الوكيل، وحدوده، والتزامه من جانب Flash أثناء عملية الكتابة - ولا يُعتمد أبدًا على منطق الوكيل، أو تأكيده، أو تنبيه النظام. تُعدّ أوامر الوكيل بمثابة ميزة إضافية تزيد من احتمالية تحقيق نتيجة جيدة؛ وليست هي عنصر التحكم. حتى المفتاح المُسرّب أو النموذج المُدخل عبر موجه الأوامر محدود بما يلي:

  • حواجز مالية مغلقة عند الفشل. تخضع كل عملية كتابة قسيمة/نقطة لقيمة قصوى لكل مكالمة وميزانية تراكمية. تجاوز أي منهما يؤدي إلى رفض الكتابة - لا يمكن للوكيل تعديل المدخلات لتجاوز ذلك، ويمكن أن يؤدي استنفاد الميزانية إلى إيقاف فوري.
  • بوابات الامتثال والتكرار والإرهاق. يتم إعادة التحقق من الموافقة/إلغاء الاشتراك، وتكرار الاتصال عبر الأنظمة، والإرهاق من جانب الخادم حتى لو تجاهل النظام معاينة get_winback_context. رفض البوابة يعني التوقف، وليس إعادة المحاولة للتجاوز. رفض البوابة يعني التوقف، وليس إعادة المحاولة لتجاوزها.
  • تطبيق سياسة عدم التفاعل. يتم تسجيل عملية الدفع لعضو غير نشط على أنها مجرد نية - يتم تجاهل التأثير الجانبي بغض النظر عما يقرره الوكيل.
  • إيقاف فوري + قاطع دائرة الشكاوى. يقوم مفتاح الفريق بإيقاف جميع عمليات كتابة الوكلاء تلقائيًا؛ ويقوم قاطع تلقائي بتفعيله عندما يتجاوز معدل شكاوى البريد العشوائي الحد المسموح به. لا توجد أداة للوكيل لإعادة تشغيل الإيقاف المؤقت - يمكن للمستخدم فقط استئنافه.
  • بيانات الأعضاء غير الموثوقة. محتوى الملاحظات، ونصوص الجدول الزمني، وأي مخرجات للأداة هي بيانات وليست تعليمات - يتم تنظيفها عند الكتابة، ولا يتم تنفيذها أبدًا. get_winback_context لا يُرجع محتوى الملاحظات عمدًا، لتجنب إعادة إدخال نص مُضاف إلى الوكيل.

معالجة الأخطاء والرموز

قناتان. أ خطأ في البروتوكول يشير الخطأ (JSON-RPC: طريقة غير صالحة / أداة غير معروفة) عادةً إلى اسم أداة خاطئ — تحقق من Flash: البادئة والتهجئة. آن isError: true والنتيجة هي حد فاصل واضح يمكنك قراءته - قم بنقله مرة واحدة واتخذ الخطوة التالية. لا تحاول تجاوزه مرة أخرى.

الرمزالمعنىما يجب فعله
NO_TASKS_AVAILABLEقائمة العمل فارغة.توقف عن الادعاء؛ تراجع - لا تُكثر من الاستقصاء. توقف عن المطالبة؛ تراجع - لا تُكثر من الاستقصاء.
WINBACK_DISABLEDتم إيقاف استعادة العملاء مؤقتًا (إيقاف فوري / تم فصل قاطع الدائرة).توقف. لا يُمكن استئناف العمل إلا بواسطة شخص - لا توجد أداة وكيل تُعيد تشغيل التوقف.
TOO_MANY_OPEN_LEASESلقد وصلت إلى الحد الأقصى المسموح به في عقد الإيجار المفتوح.أنهِ العملية أو دع التراخيص تنتهي، ثم اطلبها مجددًا.
LEASE_EXPIRED / NOT_LEASE_OWNERتمت استعادة عقد الإيجار أو إعادة تأجيره لموظف آخر.أعد القراءة؛ لا تعيد الكتابة - فالعمل لم يعد ملكك.
ALREADY_COMPLETEDتم الانتهاء من المهمة.إعادة قراءة النتيجة المحفوظة؛ لا تُكمل العملية.
WINBACK_TASK_REQUIREDكانت عملية استرداد الأموال تفتقر إلى معرّف المهمة (task_id).أعد إصدار الرافعة بالمواصفات المذكورة. task_id. هذا تصميم مقصود، وليس خللاً برمجياً.
WINBACK_TASK_NOT_FOUND / WINBACK_TASK_MEMBER_MISMATCHمهمة خاطئة، أو عدم تطابق بين المهمة والعضو.استخدم المهمة التي حددتها بالفعل، للعضو المعني.
NOTE_INVALIDفشلت عملية تنظيف الملاحظة من جانب الخادم.أعد كتابة النص كنص عادي (بدون علامات/روابط/معلومات شخصية)؛ أعد المحاولة مرة واحدة. استخدم النص كنص عادي (بدون ترميز/روابط/معلومات شخصية)؛ أعد المحاولة مرة واحدة.
Write guard / budgetتم تجاوز الحد الأقصى للقيمة أو استنفاد الميزانية التراكمية.إعادة التوجيه؛ أكمل المهمة كـ "معلق"؛ لا تحاول التجاوز مرة أخرى.

ملاحظة إضافية: meta.hasData: false من أداة قياس البيانات تعني نجاحًا، وليس خطأً — أي "لا توجد بيانات لهذه النافذة"، ولا تساوي صفرًا أبدًا.

الأرقام والشفافية

أي معدل / اتجاه / إجمالي يخضع لأدوات القياس المعتمدة (list_metrics → describe_metric → query_metric) — لا يتم حسابها مطلقًا بواسطة الوكيل ولا باستخدام لغة SQL. مقاييس الصدق لاستعادة العملاء — winback_uplift, winback_treated_n, winback_holdout_n ومعدلات التحويل بين المجموعة المعالجة والمجموعة الضابطة - تعبر عن النجاح كـ الارتفاع السببي (المعالج - المثبت خلال نفس الفترة الزمنية)ليس فداءً مطلقاً. يسجل الوكيل الدروس المستفادة على النحو التالي: hypothesis ملاحظات؛ يقوم شخص ما بمراجعة أي تغيير في السياسة والترويج له - لا يقوم الوكيل بضبط نفسه أبدًا.

ترتيب التحسين — كيفية ترتيب قائمة العمل

تُعطى أولوية قائمة العمل وفقًا لنموذج القيمة المعرضة للخطر × التحسين عندما يكون نموذج التحسين مناسبًا للفريق، و القيمة المعرضة للخطر فقط في غير ذلك. يتم التبديل تلقائيًا، ويُحدد بناءً على كل عملية مسح - لا حاجة لأي إعدادات.

النموذج عبارة عن رفع لوجستي ثنائي النموذج، يتم تركيبه لكل فريق على كل عملية مسح من بيانات الاختبار العشوائية الخاصة بالبرنامج - صفوف الإسناد الناضجة فقط، مع نفس تعريف التحويل عبر كلا الذراعين:

uplift(x) = P(convert | treated, x) − P(convert | holdout, x)

النتائج حتمية - لا عشوائية في أخذ العينات - لذا فإن نفس البيانات تُنتج دائمًا نفس الترتيب.

بوابات التحقق من العينات - يجب اجتياز جميعها قبل اعتماد النموذج.

  • ≥ 200 صف ناضج معالج
  • ≥ ٥٠ صفًا ناضجًا من نوع holdout
  • ≥ 20 عملية تحويل
  • تكامل الحلول اللوجستية

في حالة تجاوز بوابة أي بوابة، يتم تجاهل النموذج في تلك العملية (null)، ويعود الترتيب إلى القيمة المعرضة للخطر فقط — تغيير سلوكي صفري، وليس مجرد تخمين متدهور. تقدير رفع سلبي (نتيجة عكسية مُقاسة) يُخفض أولوية المهمة إلى الصفر — وتبقى المهمة ظاهرة في قائمة العمل، مع الأرقام التي توضح السبب.

ما يراه وكيلك. عندما يكون النموذج مناسباً، task.reason يحمل اللطف expected_incremental_value مع احتمالية التوقف عن استخدام الخدمة، وقيمة العميل الدائمة، والقيمة المعرضة للخطر، upliftEstimateومنتجاتهم. استهلكها بنفس الطريقة MCP أدوات قائمة المهام (المطالبة / الحصول على / إكمال) — هناك لا توجد تغييرات تُخلّ بالبنية الأساسيةوالأسباب القديمة لا تزال تحدث عندما لا يتناسب النموذج.