关于 Skills Anywhere
Skills Anywhere 将配置的本地目录和 Git 来源中的 Agent Skills 汇集成目录,供 DeepSeek Harness 或 MCP 客户端使用。它还提供检查技能内容以及加载前验证已审阅版本的功能。
主要功能
- 01发现本地目录和 Git 来源中的技能
- 02按需搜索并加载技能
- 03检查技能资源链接
- 04比较目录清单与哈希值
- 05记录 MCP 技能加载回执
适用场景
- 01在不同 Agent 工具间复用技能
- 02加载前审阅技能变更
- 03在 CI 中设置技能链接检查门槛
- 04审计 Agent 收到的指令
MCP 相关
本地 stdio MCP 服务通过工具和 `skill://` 资源提供技能发现与加载。`open_skill` 可校验预期的文件、资源包和来源提交哈希值。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 要返回的技能最大数量(默认 200)。 |
| offset | integer | 否 | 跳过的技能数量(用于分页)。 |
详细介绍
dsh-skills-anywhere
产品方向与验收里程碑:路线图。
在不同工具间发现和加载技能。 从本地目录和已配置的 Git 源收集 Agent 技能,汇总到一个目录中,并通过实时的 DeepSeek Harness(dsh)提供方或本地 stdio MCP 服务使用。
English | 中文
移动技能前先检查
查找已安装文件夹中缺失的支持文件,然后在通过 MCP 加载前检查技能包的更改。浏览器文件夹检查 · 三个固定的公开示例。
npx [email protected] check path/to/SKILL.md --resources --json
添加 --fail-on-resource-issues 以设置 CI 门禁。此项会检查本地 Markdown 链接目标;不会检查正文中的依赖,也不会执行技能。范围与教程。
无需克隆,立即开始首次检查 — 找出一处缺失的技能引用,恢复它,并验证 CI 门禁。
从工作流开始
| 需求 | 工作流 |
|---|---|
| 在不同 Agent 工具间复用技能 | 收集本地和 Git 源,然后按需通过 dsh 或本地 MCP 加载 |
| 加载前检查更改 | 比较指令和目录清单;要求提供已审核内容的哈希 |
| 检查哪些指令已传达给 Agent | 将 MCP 加载回执与工具调用和任务评估一同保存 |
快速开始
需要 Node.js 22.19+ 或 24+。CLI 和本地 MCP 服务可独立运行; Git 源也需要 Git。
检查发现的技能:
npx dsh-skills-anywhere list
对于 MCP 客户端,请使用本地服务配置。 对于 DeepSeek Harness,请安装到所选配置文件中:
dsh plugin --profile web add dsh-skills-anywhere
启动 dsh,然后使用其 skill 工具或 /skill-name 加载。若要添加 Git 源,
请运行 npx dsh-skills-anywhere add anthropics/skills。
安装详情介绍了发布归档、源代码检出和 dsh 版本要求。
在 CI 中检查技能。 任何包含 SKILL.md 文件的仓库都可以添加
GitHub Action(0.14.0 及更高版本)。被拒绝的文件、修复项和隐藏
字符会显示为拉取请求批注,同时还会生成作业摘要和 JSON
报告:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: noteflowai/[email protected]
with:
fail-on-repair: true
fail-on-hidden-characters: true
输入、输出和范围。无需模型密钥 或安装 DeepSeek Harness。
在浏览器中试用
主页会打开一个已编写的资源检查器。选择一个技能文件夹,检查你自己的链接,然后点击 保存结果图片,生成一份可分享的汇总,展示计数和范围。图片中不包含文件名;JSON 报告会保留审核所需的路径。
试用交互式 Hugging Face playground — 浏览示例工作区、解决名称冲突,并搜索超出目录预算范围的内容。无需安装,也不需要模型 API。了解其工作原理。
查看技能说明、比较目录清单,并分享目录视图。 键盘导航会保留所选行和目录设置。为本地审核而打开的文件 会留在浏览器中。
带上你自己的 SKILL.md。 在本地比较提供方的严格和宽松解析:
检查修复内容、调用设置以及可下载的检查报告。
你的文件会留在浏览器中。相同的检查也可通过
命令行和 CI 使用,并提供文件哈希和可执行的退出代码。
报告会列出识别到的源 URL、完整提交地址格式
以及作者声明的工具。引用的内容、脚本行为和客户端
兼容性需要单独验证。
目录的工作原理
客户端可以为 SKILL.md
文件使用不同的项目、用户和插件目录。Skills Anywhere 会就地发现已配置的来源,并通过 dsh 或配置为连接其本地服务的 MCP 客户端提供生成的目录。目录定义描述发现路径;兼容性矩阵 则单独记录经过测试的协议连接。

在 dsh 中,它会在内置的 ctx.skills 注册表中注册一个额外的提供程序,因此模型常用的 skill 工具和 /name 调用只需直接使用更多技能:
- 预定义 Agent 目录。 Claude Code、Codex、Cursor、Gemini CLI、GitHub Copilot、Windsurf、Kiro、Goose、Cline、Kimi CLI、Letta Code,以及目录注册表中的其他条目对应的项目和用户路径。通过 MCP,这也包括共享的
.agents/skills约定,因此即使客户端本身不会读取该目录(例如 Claude Code),仍然可以看到其中安装的技能。 - Claude Code 插件市场。
~/.claude/plugins/marketplaces/*/plugins/*/skills/*中的技能,包括 Anthropic 官方市场。 - 已配置的 Git 来源。 选择技能仓库、子目录、分支、标签或提交。提供程序会维护本地检出,并在锁定文件中记录解析后的提交。
- 就地读取本地文件。 加载时会重新读取现有技能,而不会将其复制到每个客户端的目录中。Git 来源使用下文所述的托管缓存。
目录预算控制进入模型会话目录的技能摘要数量:默认最多 50 个。其他符合条件的技能仍可通过 find_skills 搜索,并可按需加载。/name 调用方式保持不变。
在 dsh 之外,也可通过 dsh-skills-anywhere mcp 使用同一组技能。已配置的 MCP 客户端可以通过工具和 skill:// 资源发现并打开技能。客户端对工具调用、资源和技能自身指令的支持情况决定了可用的工作流。
提供程序会去重符号链接和字节完全相同的条目,支持已记录的 frontmatter 修复,并会重命名冲突名称,例如 discord/configure 和 telegram/configure。CLI 会报告已发布的目录、跳过的条目以及每项更改的原因。
检查技能交付情况
成功调用 MCP open_skill 后会返回回执,其中标明已交付的指令正文、原始 SKILL.md 和可选的资源包。将其附加到工具 span,即可与任务结果一起检查已交付的版本。回执记录的是交付情况;遵循指令和权限执行是单独的检查项。
回执规范 ·
EvalArc Trace Workbench。
示例:审查机器人证据
通过 MCP 加载 Microduck 帧审查技能,然后让 Agent 使用 Robot Reel 验证记录的关节事实,再撰写审查结果。 交互式技能示例 (选择 04 Review robot evidence)· 本地演练 · 可复用技能。 浏览器会显示指令;Agent 自身的执行工具会运行只读验证器。无需新建仿真,也无需 GPU。
审查一次,加载同一文件
MCP open_skill 会返回原始文件的 SHA-256。提供 check --json 或先前打开文件时得到的 expected_sha256,即可在返回指令前拒绝已更改的 SKILL.md。作者最新的退出选择会立即生效,即使发现结果仍处于缓存状态也不例外。精确文件工作流。
对于 Git 源技能,将先前回执中的 source_commit 作为
expected_source_commit 传入。如果检出内容发生变化,或技能目录下存在本地更改,加载将被拒绝;这包括未跟踪、已忽略以及 assume-unchanged/skip-worktree 文件。
要求使用经过审查的源提交。
**MCP 协议支持:**本地 stdio 命令会协商旧版初始化方式和 2026-07-28 协议开放方式。四种 SDK 配置和已安装的 npm 归档均通过真实子进程连接进行检查。 兼容性矩阵和嵌入迁移。
审查整个技能目录。 使用 bundle /path/to/skill --json 生成文件清单,比较新增、删除和更改的资源,并在通过 MCP 打开时要求提供 expected_bundle_sha256。
交互式归档比较工具会展示指令未变、脚本已更改的情况,并可在本地比较你自己的清单。目录审查和限制。
摘要涵盖该目录中的记录路径和文件内容。
外部依赖项和执行权限需要单独审查;加载后文件仍可能发生更改。
安装详情和发现示例
已发布到 npm,并附带构建来源证明; 每个 GitHub 发布版本也包含相同的 tarball。
下方展示了发现输出示例。路径和数量取决于本地 安装和已配置的源:
$ npx dsh-skills-anywhere list
NAME FROM PATH
discord-access claude plugin discord @ claude-plugins-official ~/.claude/plugins/marketplaces/.../discord/skills/access/SKILL.md
frontend-design claude plugin frontend-design @ claude-plugins-official ~/.claude/plugins/marketplaces/.../frontend-design/skills/frontend-design/SKILL.md
skill-creator claude plugin skill-creator @ claude-plugins-official ~/.claude/plugins/marketplaces/.../skill-creator/skills/skill-creator/SKILL.md
...
31 skills, 6 renamed — run `dsh-skills-anywhere doctor` for details
从 git 检出或发布 tarball 安装,而非从 npm 安装
每个 GitHub 发布版本都附带预构建的 tarball,dsh plugin add 和 npx 均可直接接受其 URL(https://github.com/noteflowai/dsh-skills-anywhere/releases/download/v0.19.0/dsh-skills-anywhere-0.19.0.tgz)。如果你想使用尚未发布的提交:
dsh plugin --profile web add github:noteflowai/dsh-skills-anywhere
Git 安装会附带源代码,因此 pnpm 必须运行此包的 prepare 构建。pnpm 10+ 在你允许之前会拒绝运行:第一次 add 会失败,并打印需要允许的确切键。将该键(其中包含提交)复制到配置文件的 pnpm-workspace.yaml 中,然后再次运行 add。
# $DSH_HOME/profiles/web/pnpm-workspace.yaml
allowBuilds:
'dsh-skills-anywhere@https://codeload.github.com/noteflowai/dsh-skills-anywhere/tar.gz/<sha>': true
如果希望安装可复现,请固定一个提交(github:noteflowai/dsh-skills-anywhere#<sha>)。
要求
- DeepSeek Harness
0.1.5-rc.1或更高版本(该套件在0.1.5-rc.1和0.1.5-rc.2上运行),任何挂载@deepseek-ai/dsh-skill的配置文件(随附的web、acp、headless和sdk配置文件均已挂载) - Node.js 22.19+ 或 24+
- Git 源需要
PATH中有git(其他功能无需它)
| 位置 | 示例 | dsh 来源标签 | 默认优先级 |
|---|---|---|---|
| 其他 Agent 的项目技能 | <project>/.claude/skills/*、<project>/.cursor/skills/* | anywhere-project | 250 |
| 其他 Agent 的用户技能 | ~/.codex/skills/*、~/.cursor/skills/* | anywhere-user | 550 |
| Claude Code 插件市场和已安装插件缓存 | ~/.claude/plugins/marketplaces/*/plugins/*/skills/* | anywhere-claude-plugins | 580 |
| Git 来源 | anthropics/skills、vercel-labs/agent-skills/skills | anywhere-source | 700 |
在 dsh 注册表中,优先级数值较小的同名条目优先。内置 dsh 根目录保持其优先级(.dsh/skills 为 100,.agents/skills 为 200,~/.dsh/skills 为 400,~/.agents/skills 为 500)。不同来源之间按这些数值确定优先顺序;例如,优先级为 250 的 Agent 项目条目排在优先级为 400 的 dsh 用户条目之前。在 dsh 内部,不会再次扫描内置的 .agents/skills 和 .dsh/skills 根目录。
独立 MCP 服务没有内置提供方,因此也会以相同的优先级 200 和 500 提供共享的 .agents/skills 和 ~/.agents/skills(Codex、Amp、Goose、Zed 和 Letta Code 的默认位置)。createSkillsAnywhereServer 的嵌入方可以传入 sharedDirs: false,或排除 agents id。
运行 npx dsh-skills-anywhere agents,查看完整的 Agent 列表以及你机器上存在哪些目录。
技能格式
该提供方读取包含 SKILL.md 的目录,以及 dsh 的扁平 <name>.md 格式,并采用 Agent Skills 格式。
它会解析 name、description、disable-model-invocation 和 user-invocable,并保留 license、compatibility、allowed-tools 和 metadata。
compatibility 和 allowed-tools 承载作者的声明;运行时要求和工具权限由客户端控制。未知字段(包括 argument-hint 和 context)会保留在 metadata.frontmatter 下。保留这些字段并不意味着实现了来源客户端的行为。
脚本、references/ 和 assets/ 会通过技能的资源目录提供给使用方客户端。
在默认的宽松模式下,缺少名称时会使用目录名作为回退值;名称无效时会规范化为 kebab-case;缺少描述时会根据首段内容生成。每项修复都会记录下来,并由 doctor 显示。设置 lenient: false 可采用内置提供方的严格行为。
Git 来源
npx dsh-skills-anywhere add anthropics/skills # default branch
npx dsh-skills-anywhere add anthropics/[email protected] # tag or branch
npx dsh-skills-anywhere add vercel-labs/agent-skills/skills # sub-directory
npx dsh-skills-anywhere add https://github.com/o/r/tree/main/dir # GitHub tree URL
npx dsh-skills-anywhere add [email protected]:group/skills.git # any git URL
npx dsh-skills-anywhere add ./local/skills-repo --project # local repo, project-scoped
npx dsh-skills-anywhere add o/r --ref 3f2a9c1 --rank 300 # pin a commit, set precedence
来源有三个,按以下顺序合并:插件的 config.sources、用户文件 ~/.dsh/skills-anywhere/sources.json,以及项目文件 <project>/.dsh/skills-anywhere.json(提交该文件即可与团队共享技能)。CLI 会编辑最后两个文件。
每个仓库都会在本地检出到
~/.dsh/skills-anywhere/cache/<host>/<owner>/<repo>(设置了分支、标签或提交时使用 <repo>@<ref>)。后台同步会在启动时、每隔 syncIntervalMs(默认 6 小时)以及来源配置变更时运行。已解析的提交会记录在 ~/.dsh/skills-anywhere/lock.json 中。
发现功能会读取可用缓存。刷新失败时会保留现有检出内容;从未同步过的来源不会提供任何缓存技能。
成功的变更会使目录缓存失效,但发现过程不会等待网络同步。
若只想从仓库中选取部分技能,请为每个技能文件夹添加一个条目,并使用相同的 repo 和完整的提交 SHA 作为 ref;这些条目共用一次检出。
examples/isaaclab-v3.0.0 为五个 IsaacLab 用户技能(选择启用)采用了这种方式。它包含文件哈希和许可证目录,并列出了绕过此类允许列表的方式。
目录预算与 find_skills / open_skill 工具
dsh 会在每次请求时,将每个模型可调用技能的名称和描述发布到会话中。使用 marketplaces 和少数几个 git 来源时,这会占用数百行上下文。因此,提供方会为技能排序,并将前 catalog.limit 个(默认为 50 个)标记为模型可调用;其余技能则以关闭模型调用的状态发布。这样它们不会出现在目录中,但你仍可通过 /name 加载。
由 dsh-skills-anywhere/tools 行注册的两个工具,让模型也能访问隐藏部分:
find_skills(query, limit?)按关键词搜索所有技能(名称、描述、whenToUse、来源),无论技能是否在目录中,并指出哪些匹配项已列出。open_skill(name)按确切名称加载任意技能,包括因预算限制而隐藏的技能。如果技能自身的 frontmatter 中写有disable-model-invocation: true,仍会被拒绝加载,与内置的skill工具行为完全一致。
- id: skills-anywhere
config:
catalog:
limit: 30 # 0 = unlimited (old behaviour)
pin: [frontend-design] # always listed
hide: [example-skill] # never listed, still searchable and /name-invocable
- id: skills-anywhere-tools
config:
findLimit: 10
作者禁用的技能永远不会计入预算。哪些技能会留在列表中,取决于以下优先顺序:项目级技能优先于用户级技能,而用户级技能优先于 marketplaces 和 git 来源。工具行需要工具运行时(ctx.tools);在没有工具运行时的配置中,它会保持待处理状态,提供方则独立运行。
CLI
提交前请先检查。 运行 npx -y [email protected] check skills/example/SKILL.md --fail-on-repair。Playground 使用的同一解析器支持批量文件检查、带文件哈希的 JSON 报告,以及 CI 退出代码。
检查仅读取指定的文件。在 GitHub Actions 中,uses: noteflowai/dsh-skills-anywhere
会选取所有已跟踪的 SKILL.md 并标注检查结果。
命令、GitHub Action 和范围。
dsh-skills-anywhere list [--all] [--json] Skills the provider publishes (--all shows hidden duplicates)
dsh-skills-anywhere agents [--json] Agent directory definitions and paths found here
dsh-skills-anywhere sources [--json] Configured git sources and their synced commits
dsh-skills-anywhere add <source> [--ref] [--path] [--rank] [--project]
dsh-skills-anywhere remove <source> [--project]
dsh-skills-anywhere sync [--force] [--json] Clone or refresh every source now
dsh-skills-anywhere doctor [--json] Repaired, skipped, renamed and duplicate skills, with reasons
dsh-skills-anywhere check <files...> [--json] Explicit local files; strict parser gate by default
dsh-skills-anywhere mcp Serve skills to configured clients over stdio MCP
dsh-skills-anywhere route prepare <task> [--json] Typed choice request over installed, openable skills
dsh-skills-anywhere route apply --request <file> --response <file> [--min-confidence <x>] [--json]
验证已记录的技能选择
当分类器、大模型或人员为某项任务选择技能时,route 会根据此处安装的技能验证该选择。route prepare 会使用与 find_skills 相同的关键词搜索对发现的所有技能进行排序,剔除 open_skill 会拒绝的技能,然后仅保留前 8 个,作为类型化选择请求(skills-anywhere-route-request-1)。保留选项 _none 表示“没有列出的技能适用”,且永远不能作为技能名称。每个候选项都会记录其来源、SKILL.md 路径和内容哈希。由决策器编写响应;route apply 会将其作为不可信数据读取,并准确报告一种结果。不会加载、执行任何内容,也不会向网络发送任何内容。
dsh-skills-anywhere route prepare "fill pdf forms" --json > req.json
# Your decider writes resp.json, for example:
# {"choice": "pdf-forms", "confidence": 0.86, "model": "example"}
dsh-skills-anywhere route apply --request req.json --response resp.json --min-confidence 0.7
| 结果 | 退出码 | 含义 |
|---|---|---|
selected | 0 | 置信度达到阈值;输出要打开的技能名称、来源和 SKILL.md 路径 |
no_match | 0 | 决策器选择了 _none,且置信度达到或超过阈值 |
abstain | 0 | 未报告置信度,或置信度低于 --min-confidence |
stale | 1 | 自 prepare 后,所选技能已被删除、变得无法打开,或其 SKILL.md 路径或内容哈希已更改(文件被编辑,或另一个来源接管了该名称)。请重新运行 prepare |
invalid_input | 2 | 文件无法读取或不是 JSON、请求架构错误、选择不在选项范围内,或置信度不是 0 到 1 之间的数字 |
无效的 --min-confidence,或在其他命令中使用 --request/--response/--min-confidence,也会以退出码 2 退出。默认值 0.7 未经过校准,因此应根据自己的决策器在留出数据上的结果选择阈值。--json 会输出包含结果、选择、置信度、阈值和 model(仅用于溯源信息)的 skills-anywhere-route-result-1;其他响应键会被忽略。请求文件包含此计算机上的绝对路径。
所有命令都接受 --cwd <dir>。对于 check,它用于解析指定文件;其他命令则用它来选择项目。check --lenient 会接受提供方修复;--fail-on-repair 会拒绝所选模式下报告的任何修复。
--fail-on-hidden-characters 会拒绝包含不可见或会改变方向的字符的文件,每份报告都会将这些字符列为 hiddenCharacters。
CLI 使用与插件相同的解析代码,且无需运行 dsh。
用作 MCP 服务
dsh-skills-anywhere mcp 会通过 stdio 启动本地
Model Context Protocol 服务。
它通过以下工具公开相同的已配置源、去重和命名规则。使用 MCP 配置连接兼容的客户端:
| 工具 | 功能 |
|---|---|
list_skills | 浏览所有可由模型调用的技能及其描述和来源(limit、offset) |
find_skills | 按关键字搜索名称、描述和来源 |
open_skill | 加载一项技能的指令,以及其脚本和参考资料所在的目录 |
对于支持资源引用的客户端,技能也会作为 skill://<name> 资源公开。对于 frontmatter 中设置了 disable-model-invocation: true 的技能,MCP 工具和资源不会公开这些技能。该服务独立于 dsh 运行。
以下示例展示了客户端配置。自动连接检查覆盖了兼容性矩阵中的四种 SDK 配置和已安装的软件包;特定应用的行为取决于客户端版本,以及它对工具和资源的支持情况。
Claude Code(作为插件;此仓库同时也是插件市场)
claude plugin marketplace add noteflowai/dsh-skills-anywhere
claude plugin install dsh-skills-anywhere@noteflowai
也可以直接注册服务:claude mcp add skills-anywhere -- npx -y dsh-skills-anywhere mcp。无论使用哪种方式,都请重启一次 Claude Code,使其连接。
Cursor(.cursor/mcp.json 或 ~/.cursor/mcp.json)
{ "mcpServers": { "skills-anywhere": { "command": "npx", "args": ["-y", "dsh-skills-anywhere", "mcp"] } } }
Codex(~/.codex/config.toml)
[mcp_servers.skills-anywhere]
command = "npx"
args = ["-y", "dsh-skills-anywhere", "mcp"]
MCP 注册表中的标识符为
io.github.noteflowai/dsh-skills-anywhere。该仓库还包含适用于支持此格式的客户端的
Agent Plugin 清单(plugin.json 和 mcp.json)。
请按照客户端的安装流程操作。
如果客户端在项目目录之外启动服务,请添加 --cwd <dir>。
已配置的 Git 源会在启动时于后台同步。若要嵌入服务,执行
import { createSkillsAnywhereServer } from 'dsh-skills-anywhere/mcp' 会返回
McpServer 和 provider;详见传输与迁移指南。
在 dsh 网页界面中浏览和切换技能
在 dsh web 中,打开 设置 → 插件 → 插件配置。Skills Anywhere 卡片会列出 provider 找到的所有技能,并按其所在位置(Agent 目录、Claude Code 插件、Git 源)分组,同时显示其目录状态:模型可见的 已列出、受预算限制或被你隐藏的 未列出,或 作者已禁用;如果名称发生冲突,还会显示改名后的名称。每行提供 固定(始终列出)、隐藏(不纳入模型目录,但仍可通过 /name 和 find_skills 访问)和 排除(从 provider 中移除)选项;可直接编辑目录预算,筛选框则可搜索名称、描述和来源。

编辑内容会写入配置文件的 dsh 设置文档,作为 skills-anywhere 命名空间;该命名空间叠加在 cordis.patch.yml 中的 catalog 和 excludeSkills 之上,模型目录会立即更新:无需重启,也无需编辑文件。只有挂载了 dsh 设置服务和 Web 服务器的配置文件才会显示此卡片(随附的 web 配置文件包含这两项);在其他情况下,provider 的行为与组合配置完全相同。
配置
在个人资料的 cordis.patch.yml 中覆盖该行。补丁会替换整个 config 块,因此请重新声明你需要的所有键:
- id: skills-anywhere
config:
agents: true
excludeAgents: [openclaw]
claudePlugins: true
sources:
- anthropics/skills
- { repo: vercel-labs/agent-skills, path: skills, ref: main, rank: 650 }
excludeSkills: [example-skill]
| 字段 | 默认值 | 含义 |
|---|---|---|
providerName | skills-anywhere | ctx.skills 上的提供方名称 |
agents | true | 扫描其他 Agent 的技能目录 |
excludeAgents | [] | 要跳过的 Agent ID(参见 agents 命令) |
sharedDirs | false in dsh, true for the MCP server | 同时扫描 .agents/skills 和 ~/.agents/skills,dsh 的内置提供方已会读取这些目录 |
extraProjectDirs | [] | 额外的项目相对技能目录 |
extraUserDirs | [] | 额外的绝对路径或 ~/ 技能目录 |
claudePlugins | true | 扫描 Claude Code 插件市场和缓存 |
sources | [] | Git 来源:字符串或 { repo, ref?, path?, rank? } |
sourcesFiles | true | 同时读取用户和项目的 sources.json 文件 |
cacheDir | ~/.dsh/skills-anywhere/cache | 来源的检出位置 |
sync | true | 是否克隆并刷新所有 Git 来源 |
syncOnStart | true | 插件启动时以及项目首次使用时刷新 |
syncIntervalMs | 21600000 | 后台刷新间隔;0 表示禁用 |
syncTimeoutMs | 120000 | 每条 Git 命令的超时时间 |
maxDepth | 5 | 遍历来源和市场时的目录深度 |
dedupe | true | 合并符号链接和字节完全相同的重复项 |
lenient | true | 修复可恢复的前置元数据,而不是跳过 |
watch | true | 监视本地根目录,并在发生更改时刷新目录 |
excludeSkills | [] | 要隐藏的技能名称(原始前置元数据名称或 list 显示的已发布名称);可在运行时从网页卡片中编辑 |
ranks | { project: 250, user: 550, claudePlugins: 580, sources: 700 } | 每个组的优先级 |
catalog.limit | 50 | 模型目录中列出的此提供方技能数量;0 = 不限 |
catalog.pin | [] | 始终列出的名称 |
catalog.hide | [] | 永不列出的名称(仍可通过 /name 调用并搜索) |
dshHome, home | $DSH_HOME / ~ | 路径根目录,主要用于测试 |
dsh-skills-anywhere/tools 行接受 findLimit(默认值为 10)、findMaxLimit(50),以及 find / open 布尔值,用于仅注册一个工具。
优先级和重复项的处理方式
- 按优先级顺序扫描根目录。在同一优先级内,依次按 Agent 表顺序和路径排列。
- 指向同一文件(符号链接)的条目会合并为第一个条目。具有相同名称和字节完全相同的正文的条目也会合并为第一个条目。两种重复项都会在
doctor中显示为隐藏重复项。 - 仍然名称相同但内容不同的条目会全部保留。如果其中一个来自你的目录(某个 Agent 目录),它会保留裸名称,其他条目则会加上其插件、仓库或 Agent 前缀(
telegram-configure)。如果所有条目都来自市场或 Git 来源,则它们都会加上前缀,这样你会得到discord-access和telegram-access,而不是没有意义的裸名称access。doctor会列出重命名情况。 - 随后,dsh 注册表会按优先级将此提供方的候选项与内置候选项合并。
集成示例与测得结果
使用这些示例,将交付回执与单独计算的任务检查关联起来。报告保留指令、工具结果和每个交付的程序。
| 工作流 | 示例与证据 | 记录的结果 |
|---|---|---|
| 比较技能交付方式 | 27 次 Qwen3-8B 尝试,涵盖三种工程配置下的无技能、直接交付和 MCP | 直接交付和 MCP 的尝试均未完全解决任务。无技能条件在最后一种配置下解决了 2/3 次尝试。 |
| 从选定会话继续 | Funes MCP 源码示例和六次继续尝试,每种条件各三次 | 六次检索调用均成功。六个程序均未更改;每种条件都解决了 0/3 个任务。 |
查看独立来源的 SWE 任务: 另一个单独固定的群组记录了在四种工作流条件下,对 Astropy、pytest 和 SymPy 进行的 36 次尝试。直接预加载与 MCP 预加载交付相同的指导内容;无关的 MCP 对照组则匹配提示词长度。没有任何尝试获得原生验收:31 份报告可供评估,另有 5 份在上游基础设施标记问题后仍无法确定。 8 次尝试生成了非空补丁。 方法和离线记录 保留了工具故障、原生标签和不完整的用量记录,均可查看。
将已审核的技能带入新会话: 另一个包含六次尝试的群组通过工作流 MCP 预加载,重复使用前序会话中的原始技能字节。六次预加载均成功;记忆组检索到六条结果。六个程序均未更改,没有任何任务通过完整验收。报告关联了原始固定版本、交付回执、检索到的历史记录和任务检查。
使用隔离的技能组合测试夹具 查看运行时行为。 报告针对 32 个编写的控制项和 12 次模型尝试,分别记录文件接收、服务完成和授权情况。没有任何模型尝试完成服务任务。
这些针对公开任务的小型研究评估的是特定工作流;技能或记忆的一般效益需要单独评估。研究指南 将方法、组合控制项和独立群组汇总在一起,以便复现。
安全说明
- 插件会读取技能文件,但绝不会写入 Agent 目录。
- Git 源会在插件启动时及刷新间隔到期时,于你的机器上运行
git。对于任何你并非完全信任的内容,请固定提交版本,并检查lock.json。 - 已加载的技能会向 Agent 的上下文添加指令。使用前请检查指令和引用的脚本;执行权限由客户端控制,加载并不能确保模型会遵循这些指令。
- 技能通过 Node 的文件系统 API 读取,而非通过 dsh 的沙盒化
ctx.fs;内置提供程序对其捆绑的根目录也采用相同做法。
开发
pnpm install
pnpm run check # typecheck + lint + tests + build
pnpm pack # tarball for `dsh plugin --profile <name> add ./dsh-skills-anywhere-*.tgz`
测试会在临时目录中,针对真实的 @deepseek-ai/dsh-skill 注册表和真实 Git 仓库运行。
贡献
欢迎提交问题和拉取请求。请在
src/agents.ts 中添加发现路径,注明来源,并测试目录发现。
客户端集成需要单独进行协议和工作流检查。
请参阅 CONTRIBUTING.md。
社区列表:Awesome DeepSeek Harness · Awesome Gemini CLI。 发布历史与验证。
许可证
MIT © Note Flow AI
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。

