dsh-scout

toolstested: passnpmMIT

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.

下载量 / Downloads
1,491
依赖体积 / node_modules
2.69 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-scout

Sandbox test results

StageResult
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)

![ci](https://github.com/MaxHou-infinity/dsh-scout/actions/workflows/ci.yml)

![license MIT](LICENSE)

![node >=22.19](package.json)

![DSH 兼容性夜间检查](https://github.com/MaxHou-infinity/dsh-scout/actions/workflows/compatibility-nightly.yml)

![tests passing](tests/model.test.mjs)

![English README](README.en.md)

司察(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

Links

GitHub · Homepage · npm

Same category