前言¶
在 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