前言¶
在 DSH 這類插件化智能體環境裏,有些任務需要按固定間隔把 prompt 投回當前 agent:例如週期性檢查狀態、跟進未完成任務,或讓模型在多輪之間持續調整。vlln/dsh-loop 解決的就是這個場景:它提供一個 /loop 命令、一個 loop 工具,以及聊天頁上方的活動狀態條,並在單個會話內支持併發多個循環。
下面介紹它的功能、安裝方式、典型用法,以及使用時需要注意的邊界。
插件定位¶
vlln/dsh-loop 是一個 DSH 定時循環插件,維護者爲 vlln,許可證爲 MIT。它由 dsh.bundle 與 dshClient channel 交付,標註爲 0 patch。
它適合需要“定時把一段 prompt 交給當前 agent 處理”的任務。循環只在當前 harness 進程內存在:進程退出後消失,不在重啓之間持久化。這一點與 Claude Code 的 /loop 語義一致。
核心能力¶
loop 工具¶
loop 工具面向模型側,支持以下動作:
start:啓動一個新循環stop:停止指定循環或全部循環status:查看狀態list:列出當前會話中的循環
模型可以在每一輪調用 loop 工具,根據當前狀態自行調整循環參數。
/loop 命令¶
用戶側可用以下命令:
/loop [interval] <prompt>
/loop list
/loop stop <id>
/loop stop
其中:
/loop [interval] <prompt>:啓動一個新循環/loop list:列出當前會話中的循環/loop stop <id>:停止指定 id 的循環/loop stop:停止當前會話中的所有循環
活動狀態條¶
狀態條位於聊天頁輸入框上方的 dock 槽:
- 單個循環時,顯示提示詞、間隔和下次時間
- 多個循環時,摺疊爲計數條,點擊可展開列表
單個會話內可以併發運行多個循環。
安裝與啓用¶
先確認環境滿足 package.json 聲明的要求:Node.js >=22.19.0,DSH >=0.1.0-rc.5。
從 git 源安裝:
dsh plugin --profile web add "github:vlln/dsh-loop#main"
這條命令會把 vlln/dsh-loop 的 main 分支加入 web profile。
如果使用 npm 源,資料中的示例爲:
dsh plugin --profile web add @vlln/dsh-loop@0.3.0
注意:README 推薦 npm 源安裝版本爲 @vlln/dsh-loop@0.3.0,而 package.json 中 version 爲 0.3.1。資料內存在版本差異,實際安裝前建議覈對目標來源。
安裝完成後,先重啓 web 使其生效,因爲 bundles 在啓動時組合。之後可以在設置頁的 Plugins 面板中 disable/enable,運行時生效並持久化。
典型用法¶
用戶側¶
下面示例展示從啓動到停止的基本流程。
啓動一個間隔爲 5m 的循環,投遞 prompt check PRs on the deploy branch:
/loop 5m check PRs on the deploy branch
查看當前會話中有哪些循環,以及它們的 id:
/loop list
停止指定 id 的循環:
/loop stop loop-1
停止當前會話中的所有循環:
/loop stop
模型側¶
模型可以通過 loop 工具發起或檢查循環。
讓模型啓動一個間隔 2m 的循環,prompt 爲 fix flaky test:
loop action=start prompt="fix flaky test" interval="2m"
查看循環狀態:
loop action=status
停止指定循環:
loop action=stop loop_id="loop-2"
適用場景與注意¶
適合:
- 需要在 DSH web 會話中做定時輪詢或週期性任務跟進的開發者
- 希望模型在每一輪調用
loop工具,並根據當前狀態調整循環參數的使用者
注意:
- 循環是進程內的:當前 DSH harness 進程退出後,循環會消失;不要在需要跨重啓持久化的任務中使用它
- 插件會以當前 dsh 進程權限運行。安裝前請檢查源碼、許可證和安裝來源
- 社區目錄是獨立站點;文中給出的
dshfind目錄頁不等於 DeepSeek 或幻方的官方應用商店
鏈接¶
- GitHub:
https://github.com/vlln/dsh-loop - 插件目錄頁:
https://dshfind.com/en/plugins/vlln/dsh-loop?ref=badge