前言¶
在 DSH 这类以插件方式扩展能力的体系里,开发者在添加、替换、升级、组合或自研一个能力前,常常需要先回答:当前环境里是否已经有可用覆盖?生态里哪些是可安装项目,哪些只是原型?下一步最安全的动作是什么?已有做法多是在插件列表、代码仓库和运行时行为之间人工比对,缺少一个统一的预检入口。下面介绍 cyanseek/dsh-landscape,它是一个用于 DeepSeek Harness 的只读能力预检工具,在改变或构建能力前先给出基于证据的建议。
这里的社区目录是独立站点,不与 DeepSeek / 幻方构成官方从属关系。
这是什么¶
cyanseek/dsh-landscape 是一个只读能力预检工具。它的用途是:在修改或构建 DeepSeek Harness 能力之前,先用自然语言描述一个变更需求,再根据当前环境、生态证据和限制条件给出决策建议。
该插件由 cyanseek 维护,许可证为 MIT,运行要求是 Node.js >= 22。它支持 DSH 插件、Agent Skill、CLI、Node API 和静态站点/API 等使用方式。
它与“直接安装插件”或“先写代码再验证”不同:它不执行变更,只输出判断和下一步建议。根据已核实能力,它明确不做安装、启用、禁用、升级、卸载、编辑 profile 或创建仓库这类变更操作。
核心功能¶
dsh-landscape 的主要能力可以概括为以下几点:
- 只读能力预检:用自然语言描述一个变更需求,得到基于证据的决策。
- 不执行变更:不安装、启用、禁用、升级、卸载、编辑 profile 或创建仓库。
- 降低前置配置成本:无账号、无 API key、无初始化、无必需配置。
- 结果可决策:输出决策类型可为
USE、INSTALL、COMPOSE、EXTEND、BUILD、WAIT、DISABLE或INVESTIGATE。 - 保留边界信息:保留显式
Do Not Build和Build Only边界。 - 稳定结果契约:包含
intent、environment、decision、risks、doNotBuild、buildOnly、nextAction、limitations等字段。 - 运行时信息不足时仍可工作:运行时检查或实时发现不可用时,仍使用 bundled snapshot,并说明未验证内容。
在安全与信任方面,已核实事实还包括:
- 发现过程读取已归属的公开元数据,不执行发现仓库中的代码。
- 绝对本地路径、凭据值、插件配置和原始检查错误会被排除在环境输出之外。
- 归档项目默认被排除出活跃竞争;fork 会被标记并降权。
- 包没有运行时依赖,GitHub 插件安装不运行 lifecycle build scripts。
package未声明发布到 npm;相关npx命令运行已验证的 GitHub 源码。
安装与启用¶
先确认当前环境满足 Node.js >= 22。
将固定版本的插件添加到已有 DSH profile:
dsh plugin --profile web add github:cyanseek/dsh-landscape#2d3570aadbbd291dbfc58e2484e287bd14fa92e0
这里的 --profile web 属于 DSH 插件安装命令的一部分,实际使用时应替换为你已经使用的 profile。
安装后,可以查看当前配置:
dsh --profile web --dump-config
如果不再需要该插件,可以移除:
dsh plugin --profile web remove dsh-landscape
典型用法¶
在 DSH 插件中使用¶
安装后,可以直接向 DSH 提问。例如:
Before adding browser automation, check this environment and the ecosystem. Tell me what to use, what not to build, and the safest next action.
这一步不是命令变更,而是要求 DSH 先做一次能力预检:查看当前环境和生态,再说明什么可以直接用、什么不要重复构建,以及最安全的下一步动作。
作为 Agent Skill 使用¶
如果只想临时使用一次,不永久安装:
npx -y skills use cyanseek/dsh-landscape --skill dsh-landscape --agent codex
如果需要安装为可携带的 Skill:
npx -y skills add cyanseek/dsh-landscape --skill dsh-landscape -g -a codex -y
Agent Skill 适合在 Agent 改变或构建 DSH 能力前调用预检,由宿主 Agent 继续完成后续审查。
CLI¶
可以直接传入需求:
npx -y github:cyanseek/dsh-landscape "Should I install browser automation for DSH?"
也可以继续显式调用兼容的工作流:
npx -y github:cyanseek/dsh-landscape find "browser automation"
npx -y github:cyanseek/dsh-landscape analyze "Linear integration for DSH"
npx -y github:cyanseek/dsh-landscape brief "Linear integration for DSH" --format agent
npx -y github:cyanseek/dsh-landscape status --json
这里需要注意:package 未声明发布到 npm;上述 npx 命令运行的是已验证的 GitHub 源码。
Node API¶
在 Node API 中,可以先加载 snapshot 和 alias data,再调用 analyzeNeed:
import { analyzeNeed, loadAliases, loadSnapshot } from 'dsh-landscape'
const [{ snapshot }, aliasData] = await Promise.all([loadSnapshot(), loadAliases()])
const result = await analyzeNeed('Should we build browser automation?', {
snapshot,
aliasData,
})
console.log(result.decision, result.nextAction)
这段代码演示的是应用集成场景:传入自然语言需求,读取 decision 和 nextAction 两个字段,用于后续流程判断。
适用场景与注意¶
适合以下场景:
- 在添加、替换、升级、组合或自研 DSH 能力前,先确认现有覆盖。
- 想区分可安装项目、原型项目、占位项目和不可用项目。
- 希望给后续 Agent 或开发者留下明确的
Do Not Build、Build Only和Next Action。 - 在自动化流程里以 CLI 或 Node API 方式调用预检结果。
需要注意以下限制:
- DeepSeek Harness 处于开发者预览,可能引入破坏性变更。
- 公共发现不能覆盖所有 GitHub、npm、私有或本地项目。
- 当前公共运行时表面可能未暴露
active profile、DSH 版本、bundle provenance或peer compatibility,Landscape 会报告为 unknown。 - 基于元数据的成熟度判断保守,不替代运行时验收测试。
- 静态网站仅支持搜索;主机感知的审查需使用 DSH 或 Agent Skill。
- 该插件以当前
dsh进程权限运行,安装前应检查源码与许可证。
相关链接¶
- 目录页:
https://www.skillhub.cn/plugins/cyanseek/dsh-landscape - GitHub 仓库:
https://github.com/cyanseek/dsh-landscape