前言¶
DeepSeek Harness (DSH) 的核心设计是「一切皆插件」。在开发需要周期性执行任务的智能体时,手动编写调度逻辑往往繁琐且容易出错。dsh-loop 插件正是为了解决这个问题而生,它为智能体提供了一个用户友好的 /loop 斜杠命令,用于管理定时循环任务。
插件定位¶
这是一个由开发者 XiaoWind 维护的 DSH 插件。它通过注入命令服务,为智能体增加了一个定时循环执行器。通过该插件,开发者无需编写复杂的调度代码,即可在 Web 界面直接控制 Agent 的循环行为。
核心功能¶
该插件主要包含以下能力:
* 定时循环指令:提供 /loop 斜杠命令,支持立即执行首次 Tick。
* 持久化配置:循环配置会在重启后保持,通过 /loop resume 可恢复。
* 灵活的时间设置:支持 ms、s、m、h、d 等时间单位,支持组合时长(如 1h30m)。
* 手动控制:支持通过 /loop stop 或销毁 Agent 来结束循环。
* 状态查询:提供 /loop status 和 /loop help 查看当前运行状态。
安装与启用¶
使用 dsh plugin 命令安装。由于插件依赖命令服务,它仅会在包含命令适配器的 Profile(例如 web profile)中激活。
dsh plugin --profile web add git+https://github.com/XiaoWind/dsh-loop.git
安装或更新后,必须重启 Web 应用,因为插件层会在启动时加载。
典型用法¶
插件提供了一组斜杠命令来控制循环:
| 命令 | 效果 |
|---|---|
/loop 30m |
立即执行一次,随后每 30 分钟执行一次 |
/loop 30m fix the tests |
设置一个 30 分钟间隔的循环,目标为修复测试 |
/loop fix the tests |
使用默认间隔,目标为修复测试 |
/loop 1h30m |
使用组合时长(1小时30分钟) |
/loop resume |
恢复上次重启前保存的循环配置 |
/loop status |
显示当前运行的循环状态 |
/loop stop |
停止当前循环 |
/loop help |
显示帮助信息 |
语法规则为:首位是时间间隔(可选),其余部分为循环目标。如果省略时间间隔,则使用默认间隔。
配置说明¶
如果不指定时间间隔,插件使用默认值。可通过配置文件修改此默认值:
# cordis.patch.yml
- id: loop
config:
defaultIntervalMs: 900000
默认间隔为 600000 毫秒(10 分钟)。
注意事项¶
- 运行环境:插件以当前 DSH 进程的权限运行,建议在安装前检查源码与许可证。
- 激活条件:只有在配置了命令适配器的 Profile 中才会生效。
- 文件存储:循环配置持久化在
$DSH_HOME/dsh-loop/<sessionId>目录下。 - 无自动完成:插件不包含自动完成检测功能,需手动停止或销毁 Agent 来结束循环。
- 单文件:这是一个无构建步骤的单文件 ESM 插件。
总结¶
dsh-loop 通过简单的命令接口解决了智能体周期性任务的需求。它结合了 DSH 的插件机制,使得定时调度变得轻量且易于管理。项目源码托管在 GitHub,可通过链接访问。
- GitHub: https://github.com/XiaoWind/dsh-loop