大多数编码 Agent 会把每一个可用工具的 JSON Schema 都塞进提示词——包括模型最终根本不会用到的工具。dsh-lazy-tools 为 DeepSeek Harness 提供了 CodeBuddy 风格的延迟工具加载。它是一个 tool_search + defer_execute_tool 覆盖层,让工具 schema 在真正需要之前不会进入模型上下文,从而减少 token 消耗、缩小上下文窗口,同时保持工具的可发现性。
功能特性¶
- 按需发现:模型通过
tool_search按需发现工具,激活后即可直接调用。 - 懒激活:工具默认不进入上下文,只有被请求时才激活。
- 按名激活:通过
defer_execute_tool按精确工具名直接激活已知工具。 - 无侵入:不修改工具注册表,只对模型可见的工具列表做减法,与任何其他策略天然共存。
- 灵活配置:支持 CodeBuddy 风格的
Defer(...)/NoDefer(...)模式及通配符。 - 自保守卫:
tool_search、defer_execute_tool和run_code永不被延迟。 - 按项目自动调优:插件会按项目统计真实使用情况,把最常用的工具设为常驻。
- 全局 + 项目级两层配置:支持全局默认配置与按项目覆盖的配置。
安装¶
通过命令行安装该插件:
dsh plugin --profile <profile> add github:studyzy/dsh-lazy-tools
安装后需要重启 DeepSeek Harness。bundle 层只在启动时加载,当前进程不会热加载。
配置与用法¶
插件默认为“装上即用、零配置”模式:默认延迟长尾工具,同时保留一组常驻编码核心(read、write、edit、bash、glob、grep、web_search、web_fetch、ask_user_question、skill)。
开启自动调优后,插件会按项目统计真实使用情况,把每个项目里最常用的工具设为常驻、其余全部延迟。模型通过 tool_search 按需发现它们,激活后即可直接调用。
如果需要自定义规则,可以在 profile 的 cordis.patch.yml 中配置。想彻底关掉延迟加载,只需在配置中写 defer: [] 即可。
注意事项¶
- 本插件不依赖提供商原生的延迟工具协议(如 Anthropic
tool_reference或 OpenAI 的 deferred-tool input items)。 - 插件不拥有、也不实现任何工具,也不代理执行,仅负责激活。
- 它适用于任何模型与任何提供商(DeepSeek、OpenAI、Anthropic、Gemini 等)。