前言¶
在 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 式「區域風控 + 自主結束對話」。
它解決兩類問題:
- 區域訪問控制:按信號(時區、語言、字體、代理、黑名單域名等)判定目標用戶,命中後走拒絕階梯,必要時結束會話。
- 對話自主性:對持續辱罵或嚴重有害請求先警告、再主動結束;自傷/他傷風險消息不觸發結束。
與「純前端攔截」或「手寫詞表」相比,插件把區域策略、懲罰階梯、辱罵分級(詞表 + LLM 語境兜底)、設置頁與狀態 API 打包進 DSH 插件體系,安裝後自動註冊,無需手改配置文件。
核心功能¶
區域風控(可反向)¶
插件檢測目標用戶的多種信號:時區、系統/瀏覽器語言、中文字體、代理、代理/中轉域名黑名單、公網 IP 歸屬(可選)、WebRTC IP 一致性(可選)。
regionTarget 選 cn 表示風控中國用戶(對齊 Claude 原版行爲);選 non-cn 爲反向風控——檢測到不是中國人即命中。
命中後按懲罰階梯處置:
- 返回拒絕文案(可附帶嘗試計數,如「第 N/M 次嘗試——繼續將結束本次對話」)。
- 達到
refusalEndsAfter次數後結束會話(Chat ended 面板;服務端對後續消息持續拒絕,重啓後仍生效)。 - 向系統提示詞注入模型級區域指令(
promptEnforcement開啓時)。
另支持隱寫通道:系統提示詞日期格式(2026-06-30 ↔ 2026/06/30)編碼區域判定;Unicode 撇號變體(U+2019 ↔ U+02BC)編碼黑名單命中。
對話自主性¶
用戶持續辱罵或反覆要求嚴重有害內容時,插件先警告、再主動結束對話。自傷/他傷風險消息永不觸發結束(對齊 Claude 公開限制)。
辱罵結束與嚴重有害結束使用獨立文案,均可在設置頁自定義;留空時灰字顯示內置默認。
辱罵判定採用詞表秒判 + LLM 語境兜底:
- 強詞(如「傻逼」「fuck」等)直接判定。
- 弱詞(如「垃圾」「閉嘴」等)與未命中消息,由獨立 LLM 請求做語境裁決(
purpose標記,不進會話日誌與模型上下文)。 - 消息入隊即異步預分類,近零額外延遲。
分類模型可從 DSH 已配置的模型目錄下拉選擇,或留空跟隨會話主模型。
嚴重有害內容(如未成年性內容、恐怖主義、大規模暴力)不警告、直接結束;自傷/他傷風險除外。
隱私與外部調用¶
默認配置下(ipCheck: false、webRtcCheck: 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 安裝後自動註冊,無需手動改配置文件。
啓用¶
- 重啓 web profile(
dsh web),瀏覽器硬刷新。 - 設置頁左側標籤欄出現 「Claude 風控」 獨立標籤(與視覺工具插件同款):總開關、風控目標、區域策略、即時檢測狀態、閾值與文案。
- 插件默認關閉(
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 |
隱寫標記 |
設置頁可改:enabled、regionPolicy、regionTarget、abuseEnabled、警告/結束閾值、refusalEndsAfter、四條文案、LLM 模式與模型等,保存即生效,無需重啓。
blacklist、cnTimezones、詞表、minSignals、ipCheck 等需通過 patch 修改後重啓。參考 examples/cordis.patch.yml,修改包內 node_modules/dsh-claude-ux/cordis.patch.yml 後重新安裝;設置頁能改的項優先用設置頁。
典型用法¶
風控中國用戶(默認方向)¶
- 安裝插件並重啓
dsh web。 - 打開設置頁「Claude 風控」標籤,將總開關設爲開啓,
regionTarget保持cn,regionPolicy爲block。 - 保存並應用。訪問
/_dsh/claude/status查看檢測狀態卡(風控目標、主機判定、命中、信號分、公網 IP 等)。
命中目標用戶時,每條消息先返回拒絕文案;達到 refusalEndsAfter(默認 3)次後,以區域結束文案終止會話。
反向風控(限制非中國用戶)¶
將 regionTarget 設爲 non-cn。其餘階梯與文案邏輯相同,僅判定方向反轉。
只觀察、不攔截¶
將 region.policy 設爲 observe:記錄命中並寫入隱寫標記,不直接拒絕回覆。適合先驗證信號準確度再切到 block。
自定義詞表與黑名單¶
需要覆蓋 blacklist、cnTimezones、辱罵詞表等 patch 級選項時,複製 examples/cordis.patch.yml 修改對應字段,寫入 node_modules/dsh-claude-ux/cordis.patch.yml,再執行安裝命令重新安裝。
適用場景與注意¶
適合誰:
- 在 DSH web 上需要 Claude 式區域訪問策略的部署者。
- 需要辱罵分級、嚴重有害內容自動結束對話,且希望詞表與 LLM 語境結合的場景。
- 希望默認純本地判定、僅在必要時纔開啓 IP/WebRTC 外部查詢的團隊。
注意事項:
- 插件以當前 dsh 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認行爲符合你的合規要求。
- 總開關默認關閉,避免誤鎖管理員;首次啓用前建議先用
observe模式或在本機驗證/_dsh/claude/status。 - 開啓
ipCheck或webRtcCheck會向第三方服務發起請求,部署前需評估隱私與網絡策略。 - 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本插件爲社區維護項目。
結尾¶
dsh-claude-ux 把 Claude 式區域風控與對話自主性落到 DSH web profile:本地信號判定、可反向目標、拒絕階梯、詞表加 LLM 的辱罵裁決,以及獨立設置頁與狀態 API。若你正在 DSH 上搭建需要區域策略或對話邊界的產品化界面,可按本文步驟安裝驗證。