Skip to content

dsh-autonomous-think

Verified

dsh-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 <解压后的目录路径>

方法三:手动放进去

  1. 解压这个 zip
  2. 把整个 dsh-autonomous-think 目录放进 DSH 的插件目录
  3. 在 profile 的 package.json 里把它加进 bundles
  4. 重启 DSH

装完之后怎么确认装上了

  1. 重启 DSH(不是刷新页面,是关掉重开)
  2. 打开网页界面
  3. 看输入框上方那一行工具按钮,最右边应该多出一个脑子图标
    • 灰色空心 = 待机
    • 点它会弹出一个框:选时长(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