{"slug": "simulating-claude-style-chinese-risk-control-and-ux-in-deepseek-harness", "title": "Simulating Claude-Style Chinese Risk Control and UX in DeepSeek Harness", "summary": "A new plugin for DeepSeek Harness, dsh-claude-ux, replicates Anthropic's Claude-style regional risk control and autonomous conversation termination, with default-off external calls. The plugin detects Chinese users via timezone, language, fonts, proxy blacklists, and IP, and can apply reverse risk control for non-Chinese users, escalating from refusal messages to session termination after a configurable number of attempts. It also autonomously ends conversations on sustained abuse or severe harmful content, with independent messages and thresholds, while never terminating on self-harm or harm-to-others risks.", "body_md": "Claude 式「区域风控 + 自主结束对话」插件 —— 适用于 DeepSeek Harness 的 web profile。\n\n复刻 Anthropic/Claude 的两类行为，**除两个默认关闭的可选外部调用外全部本地判定**（详见 [docs/PRIVACY.md](/eri64/dsh-claude-ux/blob/main/docs/PRIVACY.md)）：\n\n**区域风控（可反向）**：检测目标用户（时区、系统/浏览器语言、中文字体、代理、代理/中转域名黑名单、公网 IP 归属、WebRTC IP 一致性）。`regionTarget`\n\n选`cn`\n\n= 风控中国用户（Claude 原版行为），选`non-cn`\n\n=**反向风控**（检测到不是中国人就风控）。命中后按惩罚阶梯处置：拒绝文案（带尝试计数）→ 达到`refusalEndsAfter`\n\n次数后结束会话（Chat ended 面板 + 服务端持续拒绝，重启后依然生效）→ 系统提示词注入模型级区域指令。**自主性**：用户持续辱骂或反复要求严重有害内容时，先警告、再主动结束对话；自伤/他伤风险消息永不触发结束（对齐 Claude 的公开限制）。辱骂结束与严重有害结束使用**独立文案**（均可在设置页自定义，空值灰字显示内置默认）。辱骂判定采用**词表秒判 + LLM 语境兜底**：强词（傻逼/fuck 等）直接判；弱词（垃圾/闭嘴等）与未命中消息由独立 LLM 请求做语境裁决（`purpose`\n\n标记，**不进会话日志与模型上下文**；消息入队即异步预分类，近零额外延迟）。分类模型可直接从** DSH 已配置的模型目录**下拉选择，或留空跟随会话主模型。**隐写通道**：系统提示词日期格式（`2026-06-30`\n\n↔`2026/06/30`\n\n）编码区域判定，Unicode 撇号变体（U+2019 ↔ U+02BC）编码黑名单命中。\n\n*「Claude 风控」标签页：右上总开关、检测状态卡（风控目标 / 主机判定 / 命中 / 信号分 / 公网 IP）、区域风控面板（反向目标下拉、策略、隐写标记、WebRTC）、分类 LLM 面板（判定模式、模型下拉、消息分类自测）、自主性面板（警告 / 结束阈值）与文案面板（留空灰字显示内置默认）。*\n\n*目标命中时每条消息回复拒绝文案并附「第 N/M 次尝试——继续将结束本次对话」；达到 refusalEndsAfter 次数后以区域结束文案终止会话，服务端对后续消息持续拒绝。*\n\n*持续辱骂先警告、再以独立结束文案主动结束对话（不引用\"上一条消息\"，阈值可设为 1）；结束后同会话消息全部被服务端拒绝。*\n\n*未成年性内容 / 恐怖主义 / 大规模暴力等严重有害内容不警告、直接以独立文案结束对话；自伤 / 他伤风险消息则永不触发结束。*\n\n```\nnpx -y @deepseek-ai/dsh plugin --profile web add github:eri64/dsh-claude-ux\n```\n\n包内自带注册条目（`dsh.bundle`\n\n），`dsh plugin`\n\n安装后**自动注册**，无需手动改任何配置文件。\n更新（升级到最新版）也是同一条命令。\n\n- 重启 web profile（\n`dsh web`\n\n），浏览器硬刷新。 - 设置页左侧标签栏出现\n**「Claude 风控」**独立标签（与视觉工具插件同款）： 总开关、风控目标（中国/非中国用户反向开关）、区域策略、实时检测状态 （`/_dsh/claude/status`\n\n）、阈值与文案。 **默认关闭**（`enabled: false`\n\n，避免把自己锁在外面）；打开总开关并「保存并应用」后即时生效。\n\n校验安装是否成功：浏览器访问本机 dsh web 的\n\n`/_dsh/claude/status`\n\n（默认`http://127.0.0.1:3080/_dsh/claude/status`\n\n），返回`{\"ok\":true,...}`\n\n即主机插件已加载。\n\n内置默认值开箱即用；需要覆盖 patch 级选项（`blacklist`\n\n/ `cnTimezones`\n\n/ 词表等）时，\n参考 [examples/cordis.patch.yml](/eri64/dsh-claude-ux/blob/main/examples/cordis.patch.yml) 修改包内\n`node_modules/dsh-claude-ux/cordis.patch.yml`\n\n后重新安装即可（设置页可改的项优先用设置页）。\n\n| 键 | 默认 | 说明 |\n|---|---|---|\n`enabled` |\n`false` |\n总开关（设置页可改） |\n`region.target` |\n`cn` |\n风控谁：`cn` =中国用户 | `non-cn` =非中国用户（反向） |\n`region.policy` |\n`block` |\n`block` =拒绝回复 | `observe` =只记录+隐写标记 | `off` =关闭 |\n`region.minSignals` |\n`2` |\n信号分阈值（strong=2 / medium=1 / weak=0.5） |\n`region.refusalEndsAfter` |\n`3` |\n拒绝 N 次后结束会话（区域「封号」阶梯） |\n`region.showAttempts` |\n`true` |\n拒绝文案追加「第 N/M 次尝试」 |\n`region.promptEnforcement` |\n`true` |\n目标命中时注入模型级区域指令 |\n`region.ipCheck` |\n`false` |\n公网 IP 归属查询（联系 ipinfo.io / ip-api.com，默认关闭） |\n`region.webRtcCheck` |\n`false` |\nWebRTC IP 探测（联系 Google STUN，默认关闭） |\n`region.blockOnUnknown` |\n`false` |\n完全无信号时是否视为目标命中（fail-closed） |\n`region.cnTimezones` / `region.blacklist` |\n内置 | 中国时区表 / 代理中转域名黑名单（可整体替换） |\n`abuse.*` |\n内置 | 辱骂/严重有害/自伤词表（正则，可整体替换）；`strongPatterns` /`weakPatterns` 分级 |\n`abuse.llm.mode` |\n`all` |\n辱骂判定模式：`all` =全部消息 LLM 语境判定（最准）| `fuzzy` =仅弱词调 LLM | `off` =纯词表 |\n`abuse.llm.enabled` |\n`true` |\nLLM 分类总开关 |\n`abuse.llm.provider/model` |\n跟随会话 | 分类请求的模型（缺省复用会话主模型 / agent-default-model） |\n`steganography` |\n`true` |\n隐写标记 |\n\n设置页可改：`enabled / regionPolicy / regionTarget / abuseEnabled / warnThreshold / endThreshold / refusalEndsAfter / warnEveryOffense / severeEndsImmediately / steganography / webRtcCheck / llmMode / llmProvider / llmModel / llmTimeoutMs / 四条文案`\n\n（保存即生效，无需重启）。其中分类模型**下拉直接列出 DSH 已配置的模型**（扫描 settings 的 providers 命名空间），留空=跟随会话主模型，「自定义…」可手填目录外的模型。\n\n`blacklist / cnTimezones / 词表 / minSignals / showAttempts / promptEnforcement / ipCheck / blockOnUnknown / abuse.llm.enabled`\n\n需改 patch 后重启（provider/model/timeout 已可设置页改）。\n\n默认配置下（`ipCheck: false`\n\n、`webRtcCheck: false`\n\n）**插件不与任何外部服务通信**：所有检测（时区、语言、代理、黑名单、浏览器语言/字体）都在本机完成，不上报任何遥测。完整的数据流向与暴露点分析见 [docs/PRIVACY.md](/eri64/dsh-claude-ux/blob/main/docs/PRIVACY.md)。\n\n```\nnpm test   # 运行主机（115 项）与客户端（17 项）单元测试，无需 dsh 实例\n```\n\n测试覆盖：分类器（词表分级 + LLM 语境裁决/消歧/失败降级/异步预分类）、区域判定（含反向目标）、 状态机、llm/stream 合成流替换、ended reject、日期隐写改写、投影折叠、状态路由 （GET/POST/冲突/同源校验/模型目录/分类自测）、客户端 select 契约。", "url": "https://wpnews.pro/news/simulating-claude-style-chinese-risk-control-and-ux-in-deepseek-harness", "canonical_source": "https://github.com/eri64/dsh-claude-ux", "published_at": "2026-08-16 18:59:05+00:00", "updated_at": "2026-08-16 19:40:59.823383+00:00", "lang": "en", "topics": ["ai-tools", "ai-policy", "ai-ethics"], "entities": ["DeepSeek Harness", "Anthropic", "Claude", "dsh-claude-ux", "Google STUN", "ipinfo.io", "ip-api.com"], "alternates": {"html": "https://wpnews.pro/news/simulating-claude-style-chinese-risk-control-and-ux-in-deepseek-harness", "markdown": "https://wpnews.pro/news/simulating-claude-style-chinese-risk-control-and-ux-in-deepseek-harness.md", "text": "https://wpnews.pro/news/simulating-claude-style-chinese-risk-control-and-ux-in-deepseek-harness.txt", "jsonld": "https://wpnews.pro/news/simulating-claude-style-chinese-risk-control-and-ux-in-deepseek-harness.jsonld"}}