DeepSeek Harness Hub
← 返回列表

插件加载体检trapstreet/dsh-trapstreet

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

查看已装插件是否真正加载运行并列出可用工具

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/27 · 已提供中文文档

检查哪些 DeepSeek Harness 插件实际已加载,并在 trapstreet.run 上查找公开评测榜

综合分
28.7
GitHub 分
28.7
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add trapstreet/dsh-trapstreet
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

@trapstreet/dsh-trapstreet

你安装了一些 DeepSeek Harness 插件。它们真的有在运行吗?

dsh plugin --profile  add @trapstreet/dsh-trapstreet

或者用 dsh plugin --profile  add github:trapstreet/dsh-trapstreet 来跳过 npm。

trapstreet_checkup

从正在运行的 harness 内部读取实时的加载器树。无需网络、无需 API 密钥、无需子进程、无需配置——即时完成。

is anything I installed actually doing anything?

84 plugin entries loaded, 80 active.

Not running:
@deepseek-ai/cordis-plugin-hmr    disabled
@deepseek-ai/dsh-pwsh-sandbox     disabled
@deepseek-ai/dsh-tool-pwsh        disabled
@deepseek-ai/dsh-skill-badge      disabled

27 tools available: bash, edit, glob, grep, read, run_workflow, skill,
trapstreet_boards, trapstreet_checkup, web_search, write, ...

它还会报告那些根本没有成为加载器条目的依赖项——这些包能干净地安装,以 0 退出,却什么都不做,因为它们从未声明 dsh.bundle。

传入 classify 还可以对照社区目录,查出每个插件是哪种类型:

What kinds: 3 session, 1 orchestration
1 not found in the directory: @trapstreet/dsh-trapstreet

这是唯一会接触网络的部分——不传它,检查就保持在本地且即时完成。一个包自身的名字往往与目录中记录的任何内容都对不上(github:icetomoyo/dsh_workflow 安装后是 @dsh-external/workflow,而 1769 个已列条目中只有 57 个带有 npm 名称),所以任何对不上的都会被列为未匹配,而不是被悄悄算作未分类。

工具列表之所以存在,是因为一个插件可以加载、激活,却什么都不注册(见下文状态 7)。哪个插件注册了哪个工具是无法还原的——注册表在内部是按注册项而非按加载器条目来索引的——所以这两个列表是并排报告的,而不是编造出一个映射关系。如果你为某项能力安装了东西,却没有出现对应的工具,那就是你的答案。

trapstreet_boards

查询 trapstreet.run 上的公开评测榜。只读:无需账户、无需密钥,而且它从不启动运行。

17 boards: 1 with a DeepSeek baseline, 11 untested on DeepSeek, 5 empty
* ledger-close -- 2 entries, top 0.6 (provisional)
- python-bugfix-diff -- 9 entries, top 0.8
! core-pdf-ocr -- no entries yet -- gap, nothing to compare against

传入一个榜单 id 可查看详情:它测试什么、固定的是哪个提交,以及哪些条目来自 DeepSeek 模型。榜单是实时获取的,所以新的榜单无需更新此插件就会出现。

这两个工具都无法告诉你的事

加载不等于工作,工作不等于有用。

一个插件可以在加载器树中处于 active 状态,却毫无贡献,或者破坏它参与的每一轮。这个插件本身就犯过这两种 bug——见下文。

一个插件是否真的有帮助,需要完全不同的东西:一个任务,它
它施展自身能力、一次运行,以及一个可供比较的基线。这就是为什么空板会被报告为缺口而不是匹配——一块没有基线的板只能交回一个数字,却没有任何东西可以用来给它排名。

“DeepSeek 基线”是从条目的模型名称推断出来的。那是测试框架的代理,而不是它的证明。

插件可能损坏的七种方式

下面每一行都是在构建和测试这个插件时遇到的。只有前三种在不运行测试框架的情况下可见,而 trapstreet_checkup 恰好覆盖了这三种。

| | 状态 | 对 checkup 可见 |
|---|---|---|
| 1 | 安装失败 | ✅ 安装报错 |
| 2 | 安装成功,但从未进入加载器树 | ✅ 没有加载器条目 |
| 3 | 在树中,模块加载失败 | ✅ Fiber 阶段为 failed 或缺失 |
| 4 | 加载成功,然后破坏对话 | ❌ |
| 5 | 加载成功,被调用,返回错误的形状 | ❌ 并且它表现为网络错误 |
| 6 | 从未激活,并阻止测试框架启动 | ❌ 一个无法启动的测试框架内部没有任何东西能报告它 |
| 7 | 激活了,但没有任何贡献 | ❌ 阶段为 active;只有 agent 知道它没有新能力 |

有三种状态值得详细说明,因为每一种都花了真实的时间才发现:

5 — render 必须返回块,而不是字符串

render: (args, value) => [{ type: 'text', text: '...' }]   // 不是 '...'

一个裸字符串落在测试框架期望数组的位置,并在 dsh-llm 内部抛出
TypeError: content.some is not a function。流循环的兜底捕获会将其报告为:

dsh: TRANSPORT: DeepSeek API stream from https://api.deepseek.com failed

插件挂载、导入并被调用——而每次调用都会杀死这一轮,同时错误却把责任归咎于网络。

6 — 插件不能跨 profile 移植

dsh: plugin tree failed to load: 1 entry did not activate
: pending (waiting for service: workspaceRegistry)

dsh-memory-evolve,社区目录中星标最高的记忆插件,安装正常,出现在组合树中,却让 headless profile 完全无法启动——它需要一个只有部分 profile 提供的服务。同样的安装在 web 下却能正常激活。没有任何东西警告你,而 --dump-config 在两者中都将其报告为已挂载。

7 — 已激活但为空

一个插件可以加载、激活,却不注册任何东西。@furongjun1999/dsh-memory 在未安装其配置和 Python 后端时就是这样:加载器满意了,而 agent 对自己能力的总结是“我没有跨会话记忆系统。”

相关:同一个包在 git 规范上安装为一个空壳,因为它在 prepublishOnly(发布时)而不是 prepare(安装时)下构建,同时 files 排除了 src。从 npm 安装它会附带代码;从 GitHub 安装则不会。你安装插件的方式可能决定它是否可用。

不要用 dsh --dump-config 来验证
尽管名字如此,它仍会写入 profiles//cordis.yml,因此会失败:

- 在 DSH 自己的 agent 沙箱内——EPERM
- 在无头环境中——SecItemCopyMatching failed -67674,这是来自 dsh 本身的 macOS Keychain 错误

两者看起来都完全像是插件缺失,但实际上并非如此。这就是为什么 trapstreet_checkup 会在进程内读取 loader 树。

如果你确实要运行它,请 grep 包名,而不是你安装时使用的 spec——对大多数插件来说两者并不相同。github:icetomoyo/dsh_workflow 安装后的包名是 @dsh-external/workflow。

针对本地 checkout 进行开发

安装打包好的 tarball,绝不要用目录路径:

npm pack
dsh plugin --profile  remove @trapstreet/dsh-trapstreet
dsh plugin --profile  add ./trapstreet-dsh-trapstreet-.tgz

三个陷阱,每一个都会产生一个看起来已安装、实际却没有的插件:

- 目录安装会创建一个符号链接,其真实路径逃出了 DSH_HOME,因此 peer 依赖不再能解析——即上面的状态 3。
- pnpm 按版本缓存,所以不升版本号就重新安装会静默地变成空操作,你会一直测试旧代码。
- tarball 的绝对路径会被记录在 profile 中,所以删除旧的 tarball 会破坏该 profile 中的下一次安装,直到你先执行 dsh plugin remove。

配置

| 变量 | 作用 |
|---|---|
| TRAPSTREET_BASE_URL | API 主机。默认为 https://trapstreet.run。 |
| TRAPSTREET_CALL_LOG | 如果设置,每次工具调用都会向该路径追加一行。 |

调用日志回答了 stdout 无法回答的问题:agent 是否自己主动调用了这个工具? 一次抛错的调用只会留下模型的叙述,读起来完全像是从未调用过它。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群