按需注入规则,不浪费上下文。
32.9/100
综合分
4
GitHub 星标
72
npm 周下载
—/5
用户评分
数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @jiesou/dsh-stream-rulesnpm 源 · @jiesou/dsh-stream-rules 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 31 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@jiesou/dsh-stream-rules @ 0.1.12
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 19:07:13
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 读取本地文件lib/index.js:8
const names = await readdir(dir).catch(() => []);
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 模式匹配自动注入规则
- 不占系统上下文
按模式匹配自动注入 steering rules,不占系统上下文——需要时才注入规则,不浪费上下文。思路类似 oh-my-pi 的「Time-traveling stream rules」,但代码实现非常简单紧凑。
README
由 DeepSeek 最新模型翻译生成dsh-stream-rules
按需注入规则,不浪费上下文。
你可以为 agent 编写自定义的流式规则(streaming rules)。
规则只在模式匹配后作为一条 steering notice 注入,然后 agent 会从同一个位置重试。
这样你就能控制 agent 的行为边界,同时不浪费上下文。
由我的 jiesou/opencode-stream-rules 移植到 DSH。
与 oh-my-pi 的 "Time-traveling stream rules" 类似,但代码实现非常简单紧凑。
工作原理
当规则的 match 返回 true 时触发,匹配对象是:
- 工具调用 — 工具名 + 扁平化后的参数(数字也带上,比如 timeoutMs),在 dispatch 之前。
- 落定的结果 — dispatch 之后,工具的内容、状态标记([timed out after 600000ms]、[exit code: 1] 等)和 error message 一起加入匹配,因此描述"结局"(崩溃、磁盘满、超时)的规则也能命中。dispatch 之后命中只能 steering、不能 deny。
展开完整文档(README 剩余 1 节)
dsh-stream-rules
按需注入规则,不浪费上下文。
你可以为 agent 编写自定义的流式规则(streaming rules)。
规则只在模式匹配后作为一条 steering notice 注入,然后 agent 会从同一个位置重试。
这样你就能控制 agent 的行为边界,同时不浪费上下文。
由我的 jiesou/opencode-stream-rules 移植到 DSH。
与 oh-my-pi 的 "Time-traveling stream rules" 类似,但代码实现非常简单紧凑。
工作原理
当规则的 match 返回 true 时触发,匹配对象是:
- 工具调用 — 工具名 + 扁平化后的参数(数字也带上,比如 timeoutMs),在 dispatch 之前。
- 落定的结果 — dispatch 之后,工具的内容、状态标记([timed out after 600000ms]、[exit code: 1] 等)和 error message 一起加入匹配,因此描述"结局"(崩溃、磁盘满、超时)的规则也能命中。dispatch 之后命中只能 steering、不能 deny。
命中后:
- 默认 — 向 agent 注入一条 SYSTEM NOTICE steering 消息(dispatch 前用 agent.inject(),dispatch 后作为 additionalContexts 挂在工具结果上——都是 DSH 的"非唤醒"机制,为下一次 pre-step 排队模型可见上下文)。agent 会从同一位置重试,此时它已经知道了这条规则。
- reject: true — 拒绝第一次工具调用({ kind: 'deny' });之后的尝试会被放行。在不至于过度限制的前提下进行 steering,例如在容器内已经允许 pip install 通过时。
每条规则在每个会话(每个 agent)中最多触发一次,与原始版本的 notified 去重逻辑一致。
安装
从 npm 安装(预构建产物,推荐):
dsh plugin --profile <name> add @jiesou/dsh-stream-rules
或从 GitHub 安装(安装时会运行 prepare 构建):
dsh plugin --profile <name> add github:jiesou/dsh-stream-rules
或者在你 profile 的 cordis.patch.yml 中添加一行:
- id: stream-rules
name: '@jiesou/dsh-stream-rules'
安装之后
你需要自己编写 .js 规则文件。在编辑之前,这个插件默认不会做任何事。
1. 找到插件的路径:
$DSH_HOME/profiles/<name>/node_modules/@jiesou/dsh-stream-rules
$DSH_HOME 默认是 ~/.dsh。
2. 编写规则:
mv rules/rules.js.example rules/rules.local.js
- 以 _ 开头的文件会被跳过。
- 可以用 config.rules 指向其他规则目录:
- id: stream-rules
name: '@jiesou/dsh-stream-rules'
config:
rules: /path/to/your/rules
- 带 reject: true 的规则只在第一次工具调用时拒绝;之后 agent 重试会被放行。既做了引导又不过度限制(例如在容器里时允许 pip install)。
编写规则
// rules/rules.local.js
export default [
{
match: (v) =>
v.includes('pip') &&
v.includes('install') &&
!v.includes('uv pip') &&
!v.includes('uvx'),
reject: true,
prompt: 'Use uvx or uv venv + uv pip instead of pip install directly',
},
{
match: (v) => v.includes('curl') && v.includes('api.github.com'),
prompt: 'Prefer using gh cli over curl https://api.github.com/.... gh offers more requests limits.',
},
{
match: (v) => v.includes('pdf'),
prompt: 'Use the markitdown skill to read PDF files.',
},
// add your rules here
]
| 字段 | 必填 | 说明 |
| match | ✅ | (v: string) => boolean;每次工具调用都会被扁平化为字符串并匹配——dispatch 之后还会带上落定结果的内容、标记与 error message |
| prompt | ✅ | 用于 steering 的提示语 |
| reject | | 若为 true,则先阻止第一次工具调用,而不仅仅是 steering |
兼容性
声明在 package.json 的 dsh.compatibility:DSH >=0.1.7-alpha.1 <0.2,Node.js ^22.19.0 || >=24.0.0,Profile web / headless。
=0.1.7-alpha.1 是硬下限,不是偏好:该版本起 session format v4 拒绝已废弃的 { kind: 'plugin', plugin: … } 消息来源,插件改为自带 MessageSourceMap 条目。
逐版本证据(每个版本都用 dsh plugin add <tarball> 装进一次性 Profile):Profile 能组合并冷启动;再针对该版本的 tools/pre-execute waterfall 与 agent.inject() 直接验证工具调用钩子(steering 通知送达、reject: true 拒绝第一次调用并放行重试);最后卸载插件,Profile 仍能启动。下表是 >=0.1.0-rc.6 那次声明的证据;上面新声明的范围尚未逐版本重新实测。
| DSH 版本 | 安装 | 启动 | 钩子 | 卸载 |
| 0.1.5-alpha.1 | 通过 | 通过 | 通过 | 通过 |
| 0.1.5-alpha.2 | 通过 | 通过 | 通过 | 通过 |
| 0.1.5-rc.1 | 通过 | 通过 | 通过 | 通过 |
实现说明
- 单个 src/index.ts(约 80 行)。
- 使用 DSH 的 tools/pre-execute waterfall(deny)、tools/post-execute(匹配失败报错 + additionalContexts)和 agent.inject()(steering),这些都是官方文档记载的原生扩展点。没有改动核心,没有 monkey-patching。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jiesou/dsh-stream-rules
按需注入规则,不浪费上下文。
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份人设,统一管理多个 coding agent。
★ 1,141已汉化DSH
74.1
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7
这是你的仓库?认领条目