dsh-scout
Evidence-driven company and job due-diligence for DSH: logs sources with evidence levels, adds evidence-bounded claims, verifies the legal entity against official registries, and renders a PROCEED/VERIFY/STOP report with a verification checklist and interview questions.
Install
dsh plugin --profile web add dsh-scout
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
dsh-scout · 司察(Scout)






司察(Scout) —— 面向 DeepSeek Harness 的证据驱动型公司与岗位尽调 / 背调插件。
一句话说清楚:它让 AI 帮你回答——"这家公司和这个岗位,值得进入下一轮吗?面试中还有哪些事项必须核验?" 并且,每一个结论都挂靠真实的来源,绝不把"公司自述"或"融资新闻"当成已经核实的事实。
命名
- Scout:侦察兵先于你抵达目标——背调、尽调、取证、面试准备。包名与仓库名保持
dsh-scout,让安装引用稳定。 - 司察(sī-chá):"司"呼应 scout,"察"意为考察、明察,概括了这款插件"用证据调查一家公司与一个岗位"的核心动作。
为什么需要它?(它解决什么痛点)
假设你收到一个面试邀约或 Offer:
- 招聘 JD 说公司"全球第一、估值百亿"——这是公司的宣传口径,不是事实;
- 媒体报道说"融资 20 亿美元"——可能只是媒体转述,甚至已被公司否认;
- 你需要在面试前判断:公司主体真实吗?岗位的汇报线、授权、薪资靠谱吗?该问哪些问题?
司察(dsh-scout)把这件事做成一条可复现的工作流:收集来源 → 登记证据 → 添加结论 → 核验主体 → 生成带证据边界的尽调报告。报告明确区分「已核验」「待核验」「未知」,并直接给出面试行动清单。
它的心智模型:证据等级(核心概念)
所有结论(claim)都受证据等级约束,等级上限由它所引用的来源决定:
等级 · 含义 · 例子
E0 · 无来源 / 模型推断 · 没有来源支撑的猜测,只能标 unknown 或 needs_verification
E1 · 用户提供 · 你自己从内部渠道拿到的信息
E2 · 权威第三方 · 独立媒体、招聘平台(BOSS/猎聘)、工商聚合库(天眼查/爱企查)、维基百科
E3 · 官方一手 · 国家企业信用信息公示系统(gsxt.gov.cn)、监管公告、官方备案
四条纪律(插件强制,不可绕过):
1. 一条主张的 evidenceLevel 不能超过它引用的最强来源(E1 来源撑不起 E3 结论);
2. 没有来源的高影响结论,只能标记为 unknown 或 needs_verification;
3. 主体核验(scout_verify_identity)必须挂接 E3 官方登记来源,否则拒绝执行;
4. 决策默认保守:只要主体未核验、或有阻断级结论未核实,就保持 VERIFY,不会假装"已通过"。
这保证了:证据不足时,报告会诚实地告诉你"还没核实",而不是给你一个夸大的结论。
一个案例(case)的生命周期
scout_start 创建案例(默认决策 VERIFY) │ scout_search 调用 Web Provider 搜索,结果自动登记为来源 │ scout_ingest 批量登记采集结果(可随来源自动登记主张) │ scout_add_source 登记来源(sourceType + evidenceLevel) │ scout_add_claim 添加结论(受证据边界约束) │ scout_verify_identity 用 E3 官方源核验公司主体(可选但强烈建议) │ scout_verify_claim 用更强证据把结论提升为 verified(保留历史) │ scout_report / scout_questions 生成报告 / 派生面试问题 │ scout_compare 多个案例并排对比(决策/主体/风险/问题) │ scout_export / scout_import 落盘持久化(五文件 + 完成标记),换会话可恢复
也可以用显式入口驱动:/scout status|questions|report|export(见下文「命令与 Skill」)。
快速上手(一段完整示例)
以"判断某公司 HR 岗位是否值得推进"为例,Agent 会这样工作:
① scout_start(caseId=acme-hr, companyName=某科技公司, roleTitle=HRBP, location=深圳) ② 搜索公司工商信息 → scout_add_source(sourceId=s1, sourceType=company_registry/…, evidenceLevel=E2) ③ 抓取官方招聘 JD → scout_add_source(sourceId=s2, sourceType=company_official, evidenceLevel=E2) ④ 提炼职责/资格/薪资 → scout_add_claim(claimId=c1, status=verified, evidenceLevel=E2, …) 没有来源支撑的高影响项(如"汇报线")→ status=unknown / needs_verification ⑤ 尝试 gsxt 官方核验 → scout_verify_identity(…) ⑥ scout_report → 生成报告
生成的报告包含:
- 判断:
PROCEED/VERIFY/STOP(附理由) - Key supporting evidence:最有力的已核验结论
- Blocking or unresolved risks:阻断推进的风险与未知项
- Verification checklist:所有待核验的阻断/重要事项 + 各自的下一步动作(直接当面试行动清单用)
- Coverage(0.9.1 新增):11 个调查维度各自的「已核验 / 待核验 / 未调查」计数,并单列未调查维度——报告因此不只是证据清单,也是尽调进度
- Claim ledger:全部结论台账(状态/证据等级/影响/来源/置信说明)
- Sources:带 URL 的来源清单(可点击回溯)
- Interview questions:建议的面试反问(未调查维度的问题优先)
安装
先确认你在哪运行——两条入口的安装方式完全不同,不要混用:
你在哪运行 · 目标 profile · 安装方式
桌面 App(DeepSeek Harness) · desktop · App 内安装(唯一路径,见下)
CLI / headless / 自建 profile · 你自己的 profile 名 · dsh plugin --profile <your-profile> add …
路径 0:桌面 App(推荐)
桌面版的 desktop profile 由 Electron 应用独占,CLI 无法管理它——dsh plugin --profile desktop list 与 add 都会被直接拒绝:
error: profile "desktop" is managed exclusively by the Electron application
这是 CLI 里按 profile 名的硬拒绝,该 profile 的所有 dsh plugin 子命令都会命中——包括下面兼容性小节里的 allow-version。请在侧边栏 → 插件页(安装、启用、移除都在这一页)里安装:
dsh-scout@0.9.3
版本务必显式写死。pnpm ≥ 11 默认启用最小发布年龄(minimum release age)供应链保护,裸包名会让刚发布的版本被静默跳过、回退到旧版(0.9.2 发布后立即安装曾解析到 0.9.0);写上精确版本后 pnpm 会把它记入 profile 的minimumReleaseAgeExclude(输出里打印Added 1 entry to …)。
装完不需要重启:实测 12 个 scout_* 工具即时注入当前会话。桌面会话的 cwd 与 CLI 不同,建议在 profile 的 cordis.patch.yml 里给 scoutDir 配绝对路径(见下文「配置」)。
路径 1:CLI(npm,推荐)
# 把 <your-profile> 换成你自己的 profile 名,不要照抄示例 dsh plugin --profile <your-profile> add dsh-scout@0.9.3
<details>
<summary>怎么知道我的 profile 名?</summary>
dsh 没有 profile list 子命令(profile 会被当成 profile 名解析并报错),直接看目录:
ls ~/.dsh/profiles # 或用 $DSH_HOME/profiles
列出的每个名字都是可用 profile 名(如 web,或你自建的 profile)。desktop 由 App 独占,CLI 对它执行任何 dsh plugin 子命令都会被拒绝。
</details>
不要照抄示例名(例如 scout-demo):CLI 会照常创建并使用它、不报任何错——结果是插件装进了另一个 profile,你以为装好了却完全没生效。
路径 2:本地 tarball(离线 / 可复现)
pnpm pack # 生成 dsh-scout-0.9.3.tgz dsh plugin --profile <your-profile> add "file:$PWD/dsh-scout-0.9.3.tgz"
其他安装方式与取舍
来源 · 自带构建产物 · 执行安装脚本 · 建议
npm(路径 1) · ✅ 自带 dist/ · ❌(实测 pendingBuilds: []) · 推荐
本地 tarball(路径 2) · ✅(pnpm pack 产物) · ❌ · 离线 / 自测
git:github:MaxHou-infinity/dsh-scout#v0.9.3 · ❌(仓库不含 dist/) · ✅ prepare 会跑 tsc,并安装 devDependencies · 不推荐;只在需要未发布提交时使用
git 路径的 ref 必须是真实存在的 tag 或 commit:仓库自 v0.3.0 起共 10 个 tag(v0.3.0 … v0.9.2;v0.9.1 是本地迭代版、未打 tag),本次发布创建 v0.9.3。它也是三条路径里唯一会执行代码的:仓库不含 dist/,装完必然在本地构建,pnpm 可能要求为 dsh-scout 显式添加 allowBuilds(只放行你审查过的固定版本)。
桌面 App 自带 node / pnpm 运行时(实测 node 24.21.0 + pnpm 11.7.0),无需安装 Node;「Node ≥ 22.19」只对 CLI / 门禁路径成立。
装上了吗(成功判据)
桌面 App
1. 侧边栏 → 插件页:dsh-scout 出现在「已安装」里;打开它的详情页,标题旁带 v0.9.3——版本号只在这一页(列表卡片上只有「实验性 / 异常」状态标签);
2. 设置 → 内置插件 → 插件列表:`d
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::5,最后更新 2026-10-13