dsh-autonomous-think
Verifieddsh-autonomous-think · v1.10.4 · MIT · Web UI
给它一段自由的时间。温柔版:不交付、不汇报,随它做什么。命令模式:派一件事,做完了才准停。可选强制模式挡退出。带 Web UI 开关。
Install
dsh plugin add dsh-autonomous-think Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Creators
Readme
dsh-自主思考
自主思考模式 —— 给它一段自由的时间。
为什么
agent 的每一个动作几乎都由请求驱动:被问才答,被派活才动。久了它会默认——只要没人在问,就该停着。
这个插件开一小扇门。点一下,它就有一段只属于自己的时间:读、想、写、发呆、翻旧账、修一个东西、或者什么都不做。
这段时间里,不交付。
它长什么样
输入框工具行最右边一个脑子图标:
- 空心灰 — 待机
- 实心绿 — 正在里面
点它永远是「打开设置框」,不会误关。 开着的时候点它,看到的是还剩多久和「结束这一段」——关闭只有这一个入口,不会因为手滑把一段时间关掉。
框里有两个开关,默认都不勾:
| 开关 | 不勾(默认) | 勾上 |
|---|---|---|
| 命令模式 | 给它一段时间,怎么用由它自己判断 | 派一件事给它,做完了才准停 |
| 强制思考 | 时间没用完也能自己收 | 时间没用完退不出去,说什么都走不了 |
两个开关互相独立——四种组合说的不是同一段话。
多个窗口同时开,互不打扰
每一段属于开它的那个会话。
- 窗口 A 开 30 分钟,窗口 B 开 60 分钟——两段同时存在,各有各的倒计时、各有各的开关。
- B 点「结束这一段」只关 B 的,A 那边一点不受影响。
- A 的时间到了,只有 A 的系统提示消失,B 照常。
- 页面上的按钮显示的也是当前这个会话的状态,不会因为别的窗口开着而亮着。
这一条是 1.10.x 才对的。1.9.x 及以前状态是一份全局的,两个窗口会互相顶掉——如果你用的是旧版,升级一下。
它收到什么
默认(两个都不勾) —— 一段只属于它的时间:
[自主思考] 你有一段只属你的时间。
接下来这段时间里没有任务,没有交付,也没有人在等你的答复。
读、想、写、发呆、翻旧账、修一个东西,或者什么都不做,都行。
不必整理成报告,也不必说给谁听。
这段时间不用先问谁——想做什么直接做。
想什么就用 think_note 记一句;想不出来就记「还没想出来」,这也算。
这一段落了,用 think_end 收一下,时间会自己再来。
勾了「命令模式」 —— 先选定一件事,然后做完:
[自主思考] 停下来。接下来这段时间归你。
从现在起你手上只有一件事:先选定它,然后做完。
挑那件你最想解决、又一直没动的——不是挑最容易交差的。
不是开个头、不是列个计划、不是「差不多了」——做不完就不算完。
卡住就换方法;换不了就把卡在哪、下一步是什么写进 think_note,然后接着做。
只有确认它真的完整落地——比如改的代码跑通、写的字能读、查的问题有答案——才算做完。
真发现这件事根本不该做、或者缺一个只有用户能给的东西,就把判断写进 think_note,然后换一件。
两版的区别不在语气,在停止条件:不勾命令模式时,这一段用完了就能收;勾了就只认「真做完了」。
勾了「强制思考」 —— 末尾会多一段,说清楚「现在退不出去」:
- 不勾命令模式:「不用想着怎么收——现在是强制模式,时间没走完退不出去。做累了就待着,记一句也行。」
- 勾了命令模式:「做完也不要调 think_end——试探只会被挡回来。一件做完就接着做下一件。」
开启时还可以附一句话,按开关不同走两条路:
用户建议: 用户给的指令:
[你的话] [你的话]
你可以参考,也可以不参考 这就是你要做完的那件事。
三件它做不到的事
① 不能一声不吭地收工
想结束时调 think_end 会被挡回来,要求先 think_reason 写下缘由,再 think_exit。
勾了强制思考之后这一步也没了——两个出口都直接拒绝,只有时间走完、或者你在界面上点「结束这一段」才放行。拒绝时会告诉它还剩多久。
② 不能沉默着停
说完一段话、没调任何工具、回合自然结束——它看起来「想完了」,其实只是没话说了。插件挂在回合关闭前的最后一道检查点上,只要还在时间里,就把回合推回去。
③ 不能自己问「我可以吗」
规则里写死了那条「不要找用户授权」。少了它,一个刚拿到时间的 agent 会先问一句「我可以读这个文件吗」,然后卡在那句话上面,等到时间结束。
安装
你要先有的
- DeepSeek Harness
>= 0.2.0(带 Web 界面) - 能打开 DSH 的网页界面
三种装法,挑一种
方法一:让 agent 装(最省事)
把整个目录(或这个 zip)丢给任意一个 DSH 会话,说:
帮我装这个插件:
dsh-autonomous-think,目录在<路径>。
它会调 plugin_manager 里的 install_bundle。装完重启 DSH。
方法二:命令行
dsh plugin --profile web add <解压后的目录路径>
方法三:手动放进去
- 解压这个 zip
- 把整个
dsh-autonomous-think目录放进 DSH 的插件目录 - 在 profile 的
package.json里把它加进 bundles - 重启 DSH
装完之后怎么确认装上了
- 重启 DSH(不是刷新页面,是关掉重开)
- 打开网页界面
- 看输入框上方那一行工具按钮,最右边应该多出一个脑子图标
- 灰色空心 = 待机
- 点它会弹出一个框:选时长(10 / 30 / 60 分钟 / 不限时),下面有两个开关和一行可以写话的地方
没看到按钮? 见下面「装不上怎么查」。
装不上怎么查
| 现象 | 先看什么 |
|---|---|
| 按钮没出现 | ① 真的重启了吗?② DSH 版本是不是 < 0.2.0 |
| 点了没反应 | 打开 ~/.dsh/autonomous-think/diag.log,最后几行会写它干了什么 |
| 报「找不到 agent」 | 插件需要在一个已经打开的会话里用;刚启动、没建会话时点会失败 |
| 宿主起不来 | 说明插件加载出错了。删掉 ~/.dsh/autonomous-think/state.json 再试(这个文件格式坏了会让插件拒绝启动) |
diag.log 是你唯一的眼睛。 每次开/关都会写一行,包括「找 agent → 拿到了 / 没找到」「注入 → 成功 / 跳过」,还有这次用的是哪一版(「(语气)命令模式 / 温柔版」)。出问题先看它。
卸载
plugin_manager remove_bundle dsh-autonomous-think
或者从 profile 的 bundles 里删掉那一行,重启。
笔记不会被删(~/.dsh/autonomous-think/ 还在)。要彻底清干净就手动删这个目录。
笔记在哪
~/.dsh/autonomous-think/
state.json— 当前状态(不要手改,重启会读它)YYYY-MM-DD.md— 当天的随想,只追加、不整理
笔记是同一个文件,不分会话——那是「它自己的笔记」,不是「某个窗口的笔记」。但每行前面带一个短标记,说明这段是哪次开的:
- [22:14:03] ⟨6ae4467d⟩ 今天想的是一个更小的问题
- [22:31:10] ⟨0638fea5⟩ 换了个窗口,接着刚才那条线
⟨...⟩ 里是会话 id 的前 8 位。同一个会话的笔记连在一起看就是连续的一段。
笔记是给它自己看的。 不发送、不汇报、不进对话历史。
工具
| 工具 | 作用 |
|---|---|
think_start |
进入自主思考模式(可带一个问题) |
think_begin |
同上,另外带时长(minutes),并挂上系统提示 |
think_note |
记一句随想(不发送、不汇报) |
think_dwell |
什么都不做,只记一行「(待着)」——不产出也算数 |
think_status |
看当前状态和剩余时间 |
think_end |
想退出(会被拦,要求写缘由;强制模式下直接拒绝) |
think_reason |
写退出缘由(强制模式下直接拒绝) |
think_exit |
真正退出(强制模式下直接拒绝) |
不开界面也能直接用工具——点按钮只是把这些串起来。
兼容
- DSH
>= 0.2.0 - 用到:
ctx.tools.register、ctx.tools.guard、ctx.systemPrompt.context、ctx.webServer.register、ctx.agents、agent/turn-stopping钩子 - 按钮只在 Web 界面有;不开 UI 也能用工具
- 数据目录用
homedir(),不写死路径
License
MIT