前言¶
DeepSeek Harness(DSH)的设计理念强调通过插件扩展功能。在开发长期运行的智能体会话时,内置的 grep 和 glob 工具存在性能瓶颈:它们每次调用都会生成新的进程并从头扫描,导致重复搜索效率低下。dsh-frecency 是一个插件,它覆盖了这些内置工具,通过常驻索引和 frecency 排序来加速文件搜索。
插件简介¶
dsh-frecency 是 DeepSeek Harness 的一个插件,用于提供常驻索引和 frecency 文件搜索功能。它由 ZK-Andy 维护,采用 MIT 许可证。该插件的核心作用是接管 grep 和 glob,在保持工具名称和 schema 不变的前提下,提升文件搜索的响应速度。
核心能力¶
该插件提供以下功能:
- 同名工具覆盖:
grep和glob保持原有的名称和 schema。模型无需修改提示词即可直接使用。 - 常驻索引(grep):利用内存中的索引进行内容搜索,避免每次调用都启动
rg进程,从而提升性能。 - Frecency 排序:文件列表根据访问频率和修改时间进行排序,最近频繁打开或修改的文件会排在前面。
- 内置语义对等的 glob:
glob工具执行与内置工具相同的rg --files命令(包含隐藏文件和忽略文件,排除 VCS 元数据)。若rg不可用,则降级使用常驻索引。 - 带标注的 grep 输出:搜索结果包含
isDefinition(引擎分类的定义行)和gitStatus(文件状态)信息。 - Git 感知索引:引擎跟踪每个文件的工作树状态,并在结果中体现为
gitStatus。 - 优雅降级:如果原生引擎无法加载,插件会退出,内置的
rg工具继续正常工作。
安装与启用¶
通过以下命令安装插件:
dsh plugin --profile <profile> add dsh-frecency
安装后需要重启 DSH 并启动会话。此时 grep 和 glob 保留其名称和 schema,模型切换无需任何提示词调整。若需恢复使用内置工具,可通过配置 enabled: false 或移除插件来实现。
依赖与兼容性¶
- Node.js 版本:需要 Node.js >= 22。
- DSH 版本:已针对 DSH 0.1.2-alpha.3 至 0.2.1-alpha.1 进行构建和测试。
- 依赖包:插件依赖于当前运行安装中的宿主包,包括
@deepseek-ai/dsh-tools、@deepseek-ai/dsh-tool-fs-search、@deepseek-ai/dsh-output-retention和@deepseek-ai/schemastery。
注意事项¶
- 插件在每个智能体的创建阶段注册到各自的层中,这与主平面的注册机制不同。
- 作为一个社区插件,它位于 SkillHub 目录中,与 DeepSeek 或幻方无官方从属关系。