dsh-tool-error-hints: 给失败的工具结果追加可执行的提示

前言

DSH 智能体在处理工具失败时,常遇到弱模型反复猜测错误路径的问题。报错信息通常只说明“不存在”,却未指出“何处存在”。dsh-tool-error-hints 旨在解决这一痛点,在失败结果后追加可执行的提示,防止模型陷入无效的路径猜测循环。

它做什么

插件运行在 tools/post-execute 阶段(瀑布流末尾),识别失败工具并在结果后注入 source.kind='plugin' 的提示。主要能力包括:

  1. 路径不存在:提供最近的已存在祖先目录及其内容,辅助模型修正路径。
  2. 命令不存在:提示容器内缺少该可执行文件,建议使用 command -v 探测。
  3. 权限不足:提示以非 root 运行,说明 sudo、apt-get 或写 /var 会失败。
  4. 把目录当文件读:提示应改用 ls 命令。
  5. 误报防护:区分 STRONG(如 No such file or directory)和 WEAK 错误,避免误伤合法的空结果。

安装与启用

通过提供的安装脚本部署:

bash /nas/dsh/工具/dsh-tool-error-hints/install.sh
dsh-restart

激活方式:在 ~/.dsh/profiles/web/cordis.patch.yml 文件中配置 insert: 条目。
注意:不要将配置写入 package.json 的 dsh.profile.bundles,否则会被还原。

确认加载

配置有不代表已加载。插件在 apply() 时会写入心跳日志:

tail -1 ~/.dsh-logs/tool-error-hints-loaded.log
# 2026-09-13T14:10:00.000Z pid=12345 roots=/nas/dsh maxEntries=24

设计约束

插件严格遵循以下约束以确保稳定:

  • 只读:仅使用 existsSync、readdirSync、statSync,绝不执行命令、绝不写文件。
  • 不覆盖:通过 additionalContexts 追加内容,不修改原始工具输出。
  • 异常全吞:插件异常不会中断正常的工具流程。

总结

该插件解决了弱模型在工具报错时无法获取有效上下文的问题。如需了解更多细节,可访问插件目录:https://www.skillhub.cn/plugins/ikta2010/dsh-tool-error-hints 或查看源码:https://github.com/ikta2010/dsh-tool-error-hints。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜