DeepSeek Harness (DSH) 采用插件化架构,支持在 WSL 环境中运行。在进行文件搜索时,直接调用系统工具存在权限与安全风险。本文介绍 dsh-wsl-search 插件,它通过沙箱机制封装了 ripgrep、fd 和 ast-grep,将搜索行为限制在指定的目录范围内。
是什么¶
dsh-wsl-search 是一个为 DeepSeek Harness WSL 环境设计的插件。它提供了沙箱化的 ripgrep、fd 和 ast-grep 工具,默认将搜索范围限制在 $HOME 和 ~/.dsh 目录下。该插件由用户 173787247 维护,遵循 MIT 许可证。
核心功能¶
插件主要提供以下能力:
- 工具可用性检查:确认
rg/fd/ast-grep在当前环境是否可用。 - 内容搜索:支持基于内容的检索,对行数和行长设有上限。
- 按文件名查找:使用
fd逻辑进行快速文件名匹配。 - 结构化模式搜索:支持使用
ast-grep进行代码结构的模式匹配。
安装与启用¶
安装前需确保环境满足以下条件:
- DeepSeek Harness 版本 >= 0.1.2
- Node.js >= 18
- WSL 环境中已安装 ripgrep 和 fd
执行以下步骤进行安装:
# 1. 安装系统依赖
sudo apt install ripgrep fd-find
# 2. 安装插件
dsh plugin --profile web add github:173787247/dsh-wsl-search
配置与用法¶
插件通过 config 字段进行配置,主要控制搜索的行数限制、匹配数量上限以及允许搜索的根目录。默认情况下 allowRoots 为空,表示仅允许在 $HOME 和 ~/.dsh 下搜索。
config:
enabled: true
timeoutMs: 30000
maxMatches: 50
maxLineChars: 400
allowRoots: [] # 空数组 = 默认 HOME + ~/.dsh
要搜索项目目录,需将绝对路径添加进 allowRoots,但切勿添加根目录 / 以防止权限失控。
插件提供的命令包括:
search_status:检查工具可用性。search_rg:内容搜索。search_fd:按文件名查找。search_astgrep:结构化模式搜索。
适用场景与注意¶
该插件通过 allowRoots 机制限制搜索路径,默认仅允许在 $HOME 和 ~/.dsh 下操作,这符合安全沙箱的原则。使用时需注意,插件在当前 dsh 进程的权限上下文中运行。在安装前,建议检查 GitHub 源码与许可证(MIT)。
dsh-wsl-search 提供了安全、可控的文件搜索能力,适合需要在 WSL 环境下进行文件分析的智能体或工具链。完整配置与源码见下方链接。