dsh-agent-preset-switcher:在运行时热切换 DSH Agent 预设

前言

DSH(DeepSeek Harness)中的 Agent 预设决定了会话的工具目录、系统提示和 capabilities。官方机制下,预设通常在会话启动(turn/start)时确定,之后不可更改。这种设计是为了保证对话历史与工具调用的逻辑一致性。但在实际开发或调试中,有时需要在会话中途切换工作模式。该插件通过复用官方的 AgentPresets.recompose 机制,允许在会话的步骤边界进行热切换。

功能概览

该插件为 DSH 会话提供运行时切换 Agent 预设的能力。
* 斜杠命令:支持 /mode list 和 /mode <preset-id>。
* 步骤边界应用:切换不会中断当前正在进行的模型请求,而是在当前步骤完成后、下一个请求组装前生效。
* 机制复用:底层复用官方的 AgentPresets.recompose 逻辑,包括单例挂载和作用域重新绑定。

安装与启用

通过 dsh plugin 命令安装该插件包。

dsh plugin --profile web add "git+https://github.com/aefuimn/dsh-agent-preset-switcher.git"

安装完成后,需要重启 dsh web 进程并刷新页面以加载插件。

验证安装是否成功,运行:

dsh plugin --profile web ls

输出列表中应包含 dsh-agent-preset-switcher。

典型用法

安装并重启后,在 DSH 会话中即可使用斜杠命令。

  1. 查看当前及完整预设列表:
    输入 /mode list。系统会返回当前正在使用的预设 ID,以及所有可用的预设列表。

  2. 请求切换预设:
    输入 /mode <preset-id>。系统会记录请求并准备在下一个步骤边界应用更改。

适用场景与注意

该插件适合需要在调试或交互过程中动态测试不同 Agent 预设的场景。

  • 并发与中断:切换操作是异步的,不会打断当前正在进行的模型请求。最长等待时间为当前步骤完成时间。
  • 子代理限制:子代理会话无法应用此插件提供的切换功能,其预设跟随父会话。
  • 异常处理:如果底层的 recompose 机制抛出异常,切换操作会被视为失败,会话将保持原状。
  • 许可证:MIT 许可证。

结语

通过引入步骤边界重绑定机制,该插件在不破坏官方架构的前提下,增加了 DSH 会话的灵活性。开发者可以在对话中途尝试不同的 Agent 工作模式。

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

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

小夜