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

從工作清單中租用下一個處於風險中的成員任務。原子操作-其他工作者不會獲得相同的任務。返回任務(id, 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 建立一個金鑰 — 選擇 建立金鑰 → AI 代理程式 → “SoClaw 找回”,這將預先選擇下列最小權限範圍、工具集、權限上限和 TTL。一次性顯示會顯示 MCP 端點和 Bearer 設定。缺少工具表示密鑰缺少該範圍 — 而不是 Flash 缺少該功能。

權限範圍winback:read · winback:claim · winback:write · coupons:read · coupons:write · points:write · members:read · metrics:read
工具集winback
帽子單次訪問價值上限(優惠券面值上限)、單次訪問會員數量上限以及累計預算(單次訪問/每日/30天)——所有限制均強制執行,失敗則關閉。
TTL有限的有效期限-密鑰會過期並重新頒發,因此洩漏的密鑰無法無限期運行。
即時暫停團隊級開關(以及自動投訴斷路器)會將代理程式的寫入操作設定為失敗關閉。代理無法自行恢復。

團隊/商店資訊透過伺服器端密鑰注入。 任何工具均不接受 teamId、storeId、tier 或 SQL——如果您傳遞了其中任何一個,伺服器都會忽略它。

自行部署 OpenClaw 執行階段 + SoClaw 技能

Flash 成功挽回局面 系統 (工作列表, MCP 工具、安全執法)和 SoClaw 技能 (決策原則+行動方案)。你提供運行時環境:自架站。 OpenClaw 代理人,把它指向 Flash的 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 除了用於挽回客戶之外,還透過同一個租賃循環(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's 在寫入時-從不信任代理人的推理、確認或系統提示。 代理的 HOLD 指令是一種便利措施,可以提高獲得良好結果的機率;它們並非控製手段。即使是洩漏的密鑰或透過提示注入的模型,也受到以下限制:

  • 失敗關閉資金保障。 每次優惠券/積分寫入都需經過單次呼叫價值上限和累計預算限制。超出其中任何一項,寫入操作都將被拒絕——代理無法調整輸入以繞過限制,預算耗盡會導致立即暫停。
  • 合規性、頻率和疲勞度控制。 即使客服人員忽略了 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 從計量工具的角度來看是 成功,而非錯誤 — 這意味著“該視窗沒有資料”,永遠不會是 0。

數據與誠信

任何比率/趨勢/總和資料都會透過受管指標工具(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 行已成熟的已處理 行
  • ≥ 50 行成熟的 holdout 行
  • ≥ 20 次轉化
  • 兩種邏輯擬合已融合

在 any 門控下方,該模型將在該次掃描中被丟棄 (null),排名將回落至純粹的風險價值 (VaR)——零行為變化,而非降級估計。 負提升估計值(已測量的反作用)將任務優先順序降至 0——該任務仍保留在工作清單中,並顯示說明原因的數字。

您的代理商所看到的內容。 當模型擬合時,task.reason 會攜帶類型 expected_incremental_value,其中包含流失機率、客戶生命週期價值 (CLV)、風險價值 (VaR)、upliftEstimate 及其乘積。透過相同的 MCP 工作清單工具(索賠/獲取/完成)來使用它——沒有破壞模式的更改,並且當模型不擬合時,仍然會出現舊的原因類型。