SocialHub.AI
Yeni · erken erişim

SoClaw Geri Kazanım Entegrasyonu

SoClaw, Flash'nin özerk geri kazanma sistemidir: yüksek değerli, risk altındaki üyelerden oluşan dahili bir çalışma listesi, yönetilen bir dizi MCP araç ve karar verme becerisi. Bunu, SoClaw becerisini yükleyen ve kapsamlı, sınırlı bir aracı anahtarı aracılığıyla döngüyü çalıştıran, kendi barındırdığınız açık kaynaklı bir aracı çalışma zamanı olan bir OpenClaw aracısını çalıştırarak çalıştırırsınız.

Bu kılavuz, operatör/entegratör içindir. İşletme genel bakışı için SoClaw ürün sayfasına bakın . Geri kazanma araçları, MCP Entegrasyon kılavuzunda belgelenen aynı yönetilen MCP sunucusu üzerine kuruludur.

Geri kazanma döngüsü

SoClaw, bir seferde bir üyeyi işler. Temsilci bir görevi kiralar, üyenin karar bağlamını okur, tek bir para kolu veya BEKLE seçer, dürüst bir not kaydeder ve işlemi tamamlar - ardından bir sonrakini talep eder. Talep edilen bir görev en fazla bir para işlemi sağlar.

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.

Kiralama en az bir kezdir, tam olarak bir kez değil. Bir kiralama süresi dolabilir ve bir görev başka bir çalışana yeniden kiralanabilir - bu nedenle çift harcama, kiralama ile değil, idempotansiyel ile önlenir. Her para kolu task_id'ı taşır; sunucu, ondan tekrarlanabilirlik anahtarını türetir, böylece aynı görevin tekrar çalıştırılması ikinci bir kupon vermek yerine işlemi sonlandırır.

Geri kazanma araçları (araç seti winback)

Üç yazma aracı rate-only'dır; anlık duraklatma anahtarı ve yazma hızı sınırıyla korunur; nominal değer taşımadıkları için çağrı başına değer sınırı yoktur. Her araca Flash:<tool_name> olarak bakın.

claim_winback_taskyazma · sadece değerlendirmewinback:claim

İş listesinden bir sonraki risk altındaki üye görevini kiralayın. Atomik — başka hiçbir çalışan aynı görevi almaz. Görevi döndürür (kimlik, memberId, öncelik, segmentKey(kol, sebep), kira sözleşmesi (sahip, expiresAt, leaseSeconds), ve girişimler/maxAttemptsParametre yok — ekip anahtardan geliyor.

Parametreler: (none)
get_winback_contextokuwinback:read

Üye için yalnızca okunabilir bir ön kontrol: onay, e-posta sıklığı toleransı, yorgunluk, son erişim, şikayet/abonelikten çıkma riski, üye kaybı sinyalleri (90 günlük harcama, son sipariş, kademe, durum), üyenin direnen kolu ve bir DANIŞMA policyHintHiçbir not gövdesi döndürülmez. Çıktı VERİ'dir, talimatlar değil; sunucu, yazma sırasında her bir geçidi yeniden güçlendirir.

Parametreler: member_id
add_member_noteyazma · sadece değerlendirmewinback:write

Üye kaydına dürüst, insan tarafından okunabilir bir not yazın. Metin, güvenilmeyen VERİ olarak saklanır ve sunucu tarafında temizlenir: ≤2000 karakter, kontrol/bidi/sıfır genişlikli karakterler kaldırılır, işaretleme/otomatik bağlantılar/çıplak URL'ler ve PII kalıpları reddedilir. tür ∈ geri kazanma | gözlem | hipotez. Asla temsilci bağlamına geri okunmaz.

Parametreler: member_id, body, kind?, task_id?, action_ref?
complete_winback_taskyazma · yalnızca oran · idempotentwinback:claim

İddia edilen görevi sonucuyla (etkinleştirilmiş kaldıraç + referanslar veya BEKLETME nedeni) tamamlayın. İdempotent — yeniden tamamlama, ikinci bir yan etki olmaksızın depolanan sonucu tekrar oynatır. Sonuç 'beklemede' kalır; dönüşüm daha sonra bekleme ile uyumlu atıf ile doldurulur — asla icat etmeyin.

Parametreler: task_id, acted?, lever?, action_ref?, note_id?, hold_reason?

Para kaldıraçları — bir göreve bağlı

Bunlar standart Flash yazma araçlarıdır. Bir geri kazanma aracısı , talep edilen görevin task_id değerini geçirmelidir; aksi takdirde geri kazanma yazma işlemi WINBACK_TASK_REQUIRED ile reddedilir. task_id, yazma işlemini idempotent hale getirir ve sunucu tarafından uygulanan tutma kolunu bağlar. Görev başına bir para işlemi.

issue_couponyaz · paracoupons:write

Üyeye bir havuzdan benzersiz bir kupon kodu tahsis edin — klasik geri kazanma kaldıraç mekanizması. Çağrı başına değer sınırı + kümülatif bütçe (başarısızlık durumunda kapatılır) + uyumluluk erişim kapısı + tutma bastırma işlemine tabidir. Geri kazanma için task_id'yi içermelidir.

Parametreler: member_id, pool_id, task_id, run_id?
earn_pointsyaz · para · katkı maddesipoints:write

Üyeye sadakat puanları verin (marjı koruyan, indirim yapmayan kol). Yazma işleminin tekrarlanabilir olması ve doğru tutma koluna bağlı olması için geri kazanma için task_id'yi taşımalıdır.

Parametreler: member_id, amount, task_id, description?
redeem_points_for_couponyaz · para · yıkıcıpoints:write

Üyenin puanlarını bir havuzdan kuponla atomik olarak değiştirin (puan + kupon veya hiçbiri). Geri kazanım için task_id'yi içermelidir.

Parametreler: member_id, pool_id, points_cost, task_id

Bekleme bütünlüğü sunucu tarafından zorlanır. Kolu holdout olan bir üye için yapılan para yazma işlemi yalnızca amaç olarak kaydedilir; kupon yok, puan yok, bütçe harcaması yok. Aracının da kola saygı duyması gerekir, ancak ona güvenilmez: sunucu ne olursa olsun yan etkiyi bastırır.

SoClaw temsilci anahtarının sağlanması

SoClaw, bir ajan (insan olmayan) API anahtarı altında çalışır — ajanın asla yükseltemeyeceği sert sınırlamalar taşıyan birinci sınıf bir anahtar türü. /flash/account/api-keys adresinde bir tane oluşturun — Anahtar Oluştur → Yapay Zeka Ajanı → “SoClaw Geri Kazanma” seçeneğini seçin; bu, aşağıdaki en düşük ayrıcalıklı kapsamları, araç setini, sınırlamaları ve TTL'yi önceden seçer. Tek seferlik gösterim, MCP uç noktası ve Taşıyıcı kurulumunu gösterir. Eksik bir araç, anahtarın bu kapsamdan yoksun olduğu anlamına gelir; Flash'in bu yeteneğe sahip olmadığı anlamına gelmez.

Yetki kapsamlarıwinback:read · winback:claim · winback:write · coupons:read · coupons:write · points:write · members:read · metrics:read
Araç Setiwinback
KapaklarÇağrı başına değer sınırı (maksimum kupon değeri), çalıştırma başına üye sınırı ve kümülatif bütçe (çalıştırma başına / günlük / 30 günlük) — hepsi başarısız olursa kapatılacak şekilde uygulanır.
TTLSınırlı bir ömür — anahtarın süresi dolar ve yeniden verilir, bu nedenle sızdırılmış bir anahtar sonsuza kadar çalışamaz.
Anında duraklatmaEkip düzeyinde bir anahtar (ve otomatik şikayet devre kesici), temsilci yazma işlemlerini başarısız bir şekilde kapalı duruma getirir. Temsilci kendini duraklatmadan geri alamaz.

Ekip/mağaza, sunucu tarafında anahtardan enjekte edilir. Hiçbir araç teamId, storeId, tier veya SQL kabul etmez — bunlardan birini geçirirseniz, sunucu onu yok sayar.

OpenClaw çalışma zamanını ve SoClaw becerisini kendi kendine dağıtın

Flash geri kazanmayı sağlıyor sistem (iş listesi, MCP araçlar, güvenlik uygulaması) ve SoClaw beceri (Karar doktrini + kılavuz). Çalışma ortamını siz sağlıyorsunuz: kendi sunucunuzda barındırın. OpenClaw ajan, onu şuraya doğrult Flash'S MCP Sunucuya aracı anahtarınızı ekleyin ve beceriyi yükleyin. Kendi sunucunuzda barındırmak size operasyonel kontrol sağlar — yapılandırma, izleme, sürüm sabitleme ve anahtarı kaldırma — ancak bazı dezavantajları da vardır. ilgilenmeyen Güvenlik modelini gevşetin: MCP Taraf, ajanı her ne olursa olsun harici olarak ele alır.

Flash'ı bir HTTP MCP sunucusu olarak kaydedin (sunucu anahtarı tam olarak flash olmalıdır):

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 becerisini (SKILL.md + doktrin · kaldıraçlar · iş akışları · referans) indirin, OpenClaw çalışma zamanınızın beceriler dizinine bırakın ve döngüyü çalıştırın:

↓ SoClaw becerisini (.zip) indirin

SoClaw ayrıca, geri kazanmanın ötesinde bir karar iş listesi üzerinde çalışır — onay (kanal siparişi incelemesi) ve sahtekarlık (aynı hane halkı yönlendirmesi) — aynı kiralama döngüsü (claim_agent_task → get_agent_task → complete_agent_task) aracılığıyla. Etkiler, Flash'nin mevcut idempotent yazma işlemleri üzerinden yürütülür; her karar ayrıca bir insana da iletilebilir.

↓ SoClaw karar verme becerisini (.zip) indirin

Öz kontroller:

  • Temsilci yalnızca anahtarınızın kapsamlarının izin verdiği geri kazanma araç setini ve kaldıraç araçlarını görmelidir - başka hiçbir şey.
  • İlk claim_winback_task kiralamalı bir görevi döndürür veya NO_TASKS_AVAILABLE / WINBACK_DISABLED — her ikisi de normal durma koşullarıdır, arıza değil.
  • task_id olmadan bir kupon/puan çağrısı geri gelmelidir WINBACK_TASK_REQUIRED — döngünün her zaman kolu talep edilen göreve sabitlediğini doğrulayın.

Güvenlik sınırı sunucudur

En önemli özellik: temsilcinin izinleri, sınırları ve uyumluluğu, yazma zamanında Flash tarafında uygulanır — asla temsilcinin mantığına, onayına veya sistem istemine bırakılmaz. Temsilcinin BEKLETMELERİ, iyi bir sonuç alma olasılığını artıran bir nezakettir; kontrol mekanizması değildir. Sızdırılmış bir anahtar veya istemle enjekte edilmiş bir model bile şunlarla sınırlıdır:

  • Başarısız kapanan para korumaları. Her kupon/puan yazma işlemi, arama başına bir değer sınırını ve kümülatif bir bütçeyi aşar. Bunlardan herhangi birini aşarsanız, yazma işlemi reddedilir; temsilci, bunu aşmak için girdileri ayarlayamaz ve bütçe tükenmesi anlık duraklamayı tetikleyebilir.
  • Uyumluluk, sıklık ve yorgunluk kapıları. Onay/abonelikten çıkma, sistemler arası iletişim sıklığı ve yorgunluk, temsilci get_winback_context önizlemesini görmezden gelse bile sunucu tarafında yeniden kontrol edilir. Bir kapı reddi, durdurma anlamına gelir, atlatmak için yeniden deneme anlamına gelmez.
  • Direniş uygulaması. Direnişte bulunan bir kol üyesi için yapılan para yazma işlemi yalnızca niyet olarak kaydedilir; ajanın ne karar verdiğine bakılmaksızın yan etki gizlenir.
  • Anında duraklatma + şikayet devre kesici. Bir ekip anahtarı, tüm temsilci yazmalarını başarısız bir şekilde kapalı olarak ayarlar; spam şikayet oranı eşiği aştığında otomatik bir devre kesici devreye girer. Duraklatmayı kaldırmak için bir temsilci aracı yoktur — yalnızca bir insan devam ettirebilir.
  • Güvenilmeyen üye verileri. Not gövdeleri, zaman çizelgesi metni ve herhangi bir araç çıktısı VERİ'dir, talimat değildir — yazma sırasında temizlenir, asla yürütülmez. get_winback_context, ajana geri enjekte edilen metni beslemeyi önlemek için kasıtlı olarak not gövdeleri döndürmez.

Hata işleme ve kodlar

İki kanal. Bir protokol hatası (JSON-RPC: hatalı yöntem / bilinmeyen araç) genellikle yanlış bir araç adı anlamına gelir — Flash: önekini ve yazımını kontrol edin. Bir isError: true sonucu, okuyabileceğiniz kesin bir sınırdır — bir kez iletin ve sonraki tek adımı atın. Asla atlamaya çalışmayın.

KodAnlamıNe yapmalı
NO_TASKS_AVAILABLEİş listesi boş.İddia etmeyi bırakın; geri çekilin – sıkı bir şekilde anket yapmayın.
WINBACK_DISABLEDGeri kazanma duraklatıldı (anlık duraklatma / devre kesici tetiklendi).Dur. Sadece bir insan devam ettirebilir — duraklatmayı geri alan bir ajan aracı yok.
TOO_MANY_OPEN_LEASESAçık kiralama sınırınız vuruldu.Kiralamaları tamamlayın veya süresinin dolmasına izin verin, ardından tekrar talepte bulunun.
LEASE_EXPIRED / NOT_LEASE_OWNERKira sözleşmesi geri alındı ​​veya başka bir işçiye yeniden kiralandı.Yeniden okuyun; yeniden yazmayın — iş artık sizin değil.
ALREADY_COMPLETEDGörev zaten tamamlandı.Saklanan sonucu yeniden okuyun; yeniden tamamlamayın.
WINBACK_TASK_REQUIREDBir geri kazanım para yazma işleminde task_id eksikti.İddia edilenle birlikte kolu yeniden teslim edin. task_idTasarım gereği, bir hata değil.
WINBACK_TASK_NOT_FOUND / WINBACK_TASK_MEMBER_MISMATCHYanlış görev veya görev/üye uyuşmazlığı.Gerçekten talep ettiğiniz görevi, üyesi için kullanın.
NOTE_INVALIDNot, sunucu tarafı temizliğinde başarısız oldu.Düz yazı olarak yeniden yazın (işaretleme/bağlantı/PII yok); bir kez yeniden deneyin.
Write guard / budgetDeğer sınırı aşıldı veya kümülatif bütçe tükendi.Röle; görevi HOLD olarak tamamlayın; yeniden bypass etmeye ÇALIŞMAYIN.

Bir tane daha: Bir ölçüm aracından gelen meta.hasData: false bir başarıdır, hata değil — "o pencere için veri yok" anlamına gelir, asla 0 değildir.

Sayılar ve dürüstlük

Herhangi bir oran/trend/toplam, yönetilen ölçüm araçlarından (list_metrics → describe_metric → query_metric) geçer; asla ajan tarafından hesaplanmaz ve asla SQL kullanılmaz. Geri kazanım dürüstlük ölçütleri — winback_uplift, winback_treated_n, winback_holdout_n ve tedavi edilen/tedavi edilmeyen dönüşüm oranları — başarıyı nedensel artış (aynı zaman diliminde tedavi edilen - tedavi edilmeyen) olarak ifade eder, mutlak kurtuluş olarak değil. Ajan, öğrenmeleri hypothesis notları olarak kaydeder; bir insan herhangi bir politika değişikliğini inceler ve onaylar; ajan asla kendi kendini ayarlamaz.

Yükseltme sıralaması — iş listesinin nasıl sıralandığı

İş listesi önceliği, bir iyileştirme modeli takım için uygun olduğunda risk altındaki değer × artış, aksi takdirde saf risk altındaki değerdir. Geçiş otomatiktir, tarama başına karar verilir; yapılandırılacak hiçbir şey yoktur.

Model bir iki model lojistik iyileştirmeProgramın kendi rastgele oluşturulmuş test verilerinden elde edilen her taramada, her iki kolda da aynı dönüşüm tanımıyla, yalnızca olgunlaşmış ilişkilendirme satırları kullanılarak, her takım için ayrı ayrı uyarlanmıştır:

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

Uyumlar deterministiktir — örnekleme rastgeleliği yoktur — bu nedenle aynı veriler her zaman aynı sıralamayı üretir.

Örnek kapılar — modele güvenilmeden önce hepsinin geçmesi gerekir

  • ≥ 200 olgunlaşmış işlenmiş satır
  • ≥ 50 olgunlaşmış holdout satır
  • ≥ 20 dönüşüm
  • Her iki lojistik uyum da birleşti

herhangi bir kapının altında, model o tarama için atılır (null) ve sıralama saf risk değeri esasına geri döner — sıfır davranış değişikliği, bozulmuş bir tahmin değil. negatif bir artış tahmini (ölçülen bir ters tepki), görevin önceliğini 0'a düşürür — görev, nedenini açıklayan sayılarla birlikte iş listesinde görünür kalır.

Temsilcinizin gördüğü. Model uygun olduğunda task.reason, kayıp olasılığı, CLV, riske maruz değer, upliftEstimate ve bunların ürünüyle birlikte expected_incremental_value türünü taşır. Bunu aynı MCP çalışma listesi araçlarıyla kullanın (talep etme / alma / tamamlama) — şema bozucu değişiklikler yoktur ve model uymadığında eski neden türleri hala ortaya çıkar.