dsh-claude-ux:爲 DSH Web 復刻 Claude 式區域風控與對話自主性

前言

在 DeepSeek Harness(DSH)上跑 web profile 時,若需要限制特定區域用戶訪問、或在用戶持續辱罵、反覆要求嚴重有害內容時主動結束對話,通常只能自己寫中間件或改前端邏輯,維護成本高,行爲也難與主流產品對齊。

下面介紹社區插件 dsh-claude-ux(維護者 eri64)。它在 DSH web profile 上覆刻 Anthropic/Claude 的兩類行爲:區域風控(可反向)與對話自主性。除兩個默認關閉的可選外部調用外,其餘判定均在本地完成。插件歸類爲 admin-security,GitHub 約 63 stars,許可證 MIT。

這是什麼

dsh-claude-ux 是面向 DSH web profile 的插件,一句話定位:Claude 式「區域風控 + 自主結束對話」。

它解決兩類問題:

  1. 區域訪問控制:按信號(時區、語言、字體、代理、黑名單域名等)判定目標用戶,命中後走拒絕階梯,必要時結束會話。
  2. 對話自主性:對持續辱罵或嚴重有害請求先警告、再主動結束;自傷/他傷風險消息不觸發結束。

與「純前端攔截」或「手寫詞表」相比,插件把區域策略、懲罰階梯、辱罵分級(詞表 + LLM 語境兜底)、設置頁與狀態 API 打包進 DSH 插件體系,安裝後自動註冊,無需手改配置文件。

核心功能

區域風控(可反向)

插件檢測目標用戶的多種信號:時區、系統/瀏覽器語言、中文字體、代理、代理/中轉域名黑名單、公網 IP 歸屬(可選)、WebRTC IP 一致性(可選)。

regionTargetcn 表示風控中國用戶(對齊 Claude 原版行爲);選 non-cn反向風控——檢測到不是中國人即命中。

命中後按懲罰階梯處置:

  1. 返回拒絕文案(可附帶嘗試計數,如「第 N/M 次嘗試——繼續將結束本次對話」)。
  2. 達到 refusalEndsAfter 次數後結束會話(Chat ended 面板;服務端對後續消息持續拒絕,重啓後仍生效)。
  3. 向系統提示詞注入模型級區域指令(promptEnforcement 開啓時)。

另支持隱寫通道:系統提示詞日期格式(2026-06-302026/06/30)編碼區域判定;Unicode 撇號變體(U+2019 ↔ U+02BC)編碼黑名單命中。

對話自主性

用戶持續辱罵或反覆要求嚴重有害內容時,插件先警告、再主動結束對話。自傷/他傷風險消息永不觸發結束(對齊 Claude 公開限制)。

辱罵結束與嚴重有害結束使用獨立文案,均可在設置頁自定義;留空時灰字顯示內置默認。

辱罵判定採用詞表秒判 + LLM 語境兜底

  • 強詞(如「傻逼」「fuck」等)直接判定。
  • 弱詞(如「垃圾」「閉嘴」等)與未命中消息,由獨立 LLM 請求做語境裁決(purpose 標記,不進會話日誌與模型上下文)。
  • 消息入隊即異步預分類,近零額外延遲。

分類模型可從 DSH 已配置的模型目錄下拉選擇,或留空跟隨會話主模型。

嚴重有害內容(如未成年性內容、恐怖主義、大規模暴力)不警告、直接結束;自傷/他傷風險除外。

隱私與外部調用

默認配置下(ipCheck: falsewebRtcCheck: false),插件不與任何外部服務通信:時區、語言、代理、黑名單、瀏覽器語言/字體等檢測均在本機完成,不上報遙測。

若手動開啓:

  • region.ipCheck:公網 IP 歸屬查詢(聯繫 ipinfo.io / ip-api.com)。
  • region.webRtcCheck:WebRTC IP 探測(聯繫 Google STUN)。

完整數據流向見倉庫 docs/PRIVACY.md

安裝與啓用

安裝

一條命令安裝或更新到最新版:

npx -y @deepseek-ai/dsh plugin --profile web add github:eri64/dsh-claude-ux

包內自帶註冊條目(dsh.bundle),dsh plugin 安裝後自動註冊,無需手動改配置文件。

啓用

  1. 重啓 web profile(dsh web),瀏覽器硬刷新。
  2. 設置頁左側標籤欄出現 「Claude 風控」 獨立標籤(與視覺工具插件同款):總開關、風控目標、區域策略、即時檢測狀態、閾值與文案。
  3. 插件默認關閉enabled: false,避免把自己鎖在外面);打開總開關並「保存並應用」後即時生效。

校驗安裝是否成功:瀏覽器訪問本機 DSH web 的 /_dsh/claude/status(默認 http://127.0.0.1:3080/_dsh/claude/status),返回 {"ok":true,...} 即表示主機插件已加載。

主要配置項

默認 說明
enabled false 總開關
region.target cn 風控誰:cn=中國用戶 | non-cn=非中國用戶(反向)
region.policy block block=拒絕回覆 | observe=只記錄+隱寫標記 | off=關閉
region.minSignals 2 信號分閾值(strong=2 / medium=1 / weak=0.5)
region.refusalEndsAfter 3 拒絕 N 次後結束會話
region.ipCheck false 公網 IP 歸屬查詢(默認關閉)
region.webRtcCheck false WebRTC IP 探測(默認關閉)
abuse.llm.mode all 辱罵判定:all | fuzzy | off
steganography true 隱寫標記

設置頁可改:enabledregionPolicyregionTargetabuseEnabled、警告/結束閾值、refusalEndsAfter、四條文案、LLM 模式與模型等,保存即生效,無需重啓。

blacklistcnTimezones、詞表、minSignalsipCheck 等需通過 patch 修改後重啓。參考 examples/cordis.patch.yml,修改包內 node_modules/dsh-claude-ux/cordis.patch.yml 後重新安裝;設置頁能改的項優先用設置頁。

典型用法

風控中國用戶(默認方向)

  1. 安裝插件並重啓 dsh web
  2. 打開設置頁「Claude 風控」標籤,將總開關設爲開啓,regionTarget 保持 cnregionPolicyblock
  3. 保存並應用。訪問 /_dsh/claude/status 查看檢測狀態卡(風控目標、主機判定、命中、信號分、公網 IP 等)。

命中目標用戶時,每條消息先返回拒絕文案;達到 refusalEndsAfter(默認 3)次後,以區域結束文案終止會話。

反向風控(限制非中國用戶)

regionTarget 設爲 non-cn。其餘階梯與文案邏輯相同,僅判定方向反轉。

只觀察、不攔截

region.policy 設爲 observe:記錄命中並寫入隱寫標記,不直接拒絕回覆。適合先驗證信號準確度再切到 block

自定義詞表與黑名單

需要覆蓋 blacklistcnTimezones、辱罵詞表等 patch 級選項時,複製 examples/cordis.patch.yml 修改對應字段,寫入 node_modules/dsh-claude-ux/cordis.patch.yml,再執行安裝命令重新安裝。

適用場景與注意

適合誰:

  • 在 DSH web 上需要 Claude 式區域訪問策略的部署者。
  • 需要辱罵分級、嚴重有害內容自動結束對話,且希望詞表與 LLM 語境結合的場景。
  • 希望默認純本地判定、僅在必要時纔開啓 IP/WebRTC 外部查詢的團隊。

注意事項:

  1. 插件以當前 dsh 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認行爲符合你的合規要求。
  2. 總開關默認關閉,避免誤鎖管理員;首次啓用前建議先用 observe 模式或在本機驗證 /_dsh/claude/status
  3. 開啓 ipCheckwebRtcCheck 會向第三方服務發起請求,部署前需評估隱私與網絡策略。
  4. 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本插件爲社區維護項目。

結尾

dsh-claude-ux 把 Claude 式區域風控與對話自主性落到 DSH web profile:本地信號判定、可反向目標、拒絕階梯、詞表加 LLM 的辱罵裁決,以及獨立設置頁與狀態 API。若你正在 DSH 上搭建需要區域策略或對話邊界的產品化界面,可按本文步驟安裝驗證。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜