前言¶
用 Agent 做開發時,討論中常常冒出一件值得單獨做的事:一個待驗證的報錯、一次該補的迴歸、一個可以拆出去的小任務。它當時不宜打斷主線,但如果不記下來,關掉窗口就沒了。交給模型記錄要消耗一個回合,切出去記到別處又容易斷掉上下文。
Glean 把這件事降級成一次純本地寫入:看到助手回覆裏有個候選,點一下或敲一條命令,它就進候選池文件;標記過程不喚醒模型、不佔 token、不打斷當前話題。候選攢夠了,再打開任務臺決定哪些真的要派發。
Glean 由 Morange1 維護,屬於客戶端插件,作者是 Morange1,在 skillhub.cn 的目錄頁能找到。插件名的含義是「收割後在地裏拾起遺落的穀穗」。
這是什麼東西¶
一句話定位:Glean 是一個工作區級別的候選任務臺,抓對話裏的候選事項,存到 tasks/candidates.json,並提供一個按會話分組的面板來查看、進入、完成、刪除候選,以及查看已派出任務。
它解決的不是任務調度問題,而是「對話中出現的次要事項如何暫存」這個問題。候選與已派發任務是兩套數據:候選在 tasks/candidates.json,已派發在 tasks/agents.json,互相不引用。
核心功能¶
標記候選,不喚醒模型。 標記動作由宿主執行,只在會話日誌裏留下 command/run / command/done,不派發、不打斷、不花 token。
兩種操作入口。 每條助手回覆的操作行裏有書籤按鈕,點擊即寫入;也可以在輸入框敲 /candidate。按鈕實際執行的是 /candidate --id=<消息ID>,所以標記的一定是你點的那條,而不是最新一條。命令可帶備註:/candidate 這個值得單獨做。
候選列表只讀。 /candidates 打印當前候選池,最多 20 條,超出提示剩餘數量;每條摘要前 80 字,不回讀原文。
寫回執分三種:
已標記爲候選 #3 · 第 12 輪 · 寫入 tasks/candidates.json
已存在候選 #3(第 12 輪)。
沒有可標記的助手消息。
任務檯面板。 側欄新增 任務臺 入口,按工作區展示兩欄:候選區按主會話分組、可摺疊,每條可「進入 / 完成 / 刪除」;已派出區讀 tasks/agents.json,可摺疊、可星標、可刪除,星標置頂。
交互語義。 「進入」讓候選轉 entered,宿主用 agent.followup() 喚醒主 agent 寫任務書並派發;「完成」轉 done;「刪除」轉 dropped;刪除任務轉 archived,臺賬保留。分組標題寫入 tasks/sessions.json。
數據來自插件自有路由,都不緩存、不拋錯:
GET /candidate-pool/data?root=…
POST /candidate-pool/enter
POST /candidate-pool/update
POST /candidate-pool/agent
POST /candidate-pool/session
未用 workspaceFiles Remote 的原因:任務臺是 root 級面板,無會話綁定,而那個 Remote 需要一個可解析的會話。
安裝與啓用¶
插件以工作區目錄形式交付,安裝走插件管理器的 install_bundle,不要手寫 dsh plugin add:
target: <絕對路徑>/plugins/candidate-pool
安裝後當前會話即可使用。宿主一側的改動需要重啓才加載新一代模塊,客戶端一側刷新頁面即可。
依賴分兩層。宿主服務:commands、sessions、workingDirectory、webServer。客戶端服務:slots、remote、remote.commands、locale;客戶端插槽 conversation.chat.assistant-actions、sidebar.panellist、main,分別由 @deepseek-ai/dsh-client-ui-chat、dsh-client-ui-sidebar、dsh-client-ui-layout 提供。插件只依賴公開的 Cordis 服務與插槽,不讀寫其他插件的 DOM、樣式或組件。
典型用法¶
1、聊到一半發現某個事項值得單獨做,不打斷當前話題,在助手回覆的操作行點書籤圖標,候選即寫入 tasks/candidates.json。
2、需要補一句說明時,用命令形式:
/candidate 這個值得單獨做
3、查看當前候選池:
/candidates
輸出形如:
候選 1 條
#1 · 第 17 輪 · 11-03 22:07 · 備註:可以都有了
插件寫完了,已經裝進當前 profile…
文件:tasks/candidates.json
4、決定真的要做時,打開側欄 任務臺,在候選區點「進入」。候選轉 entered,宿主喚醒主 agent 寫任務書並派發。之後在已派出區跟蹤狀態:已交付用品牌色、已採納用綠、進行中用黃、已歸檔用灰。
適用場景與注意¶
適合這幾類使用:長對話裏攢待辦、把討論中出現的次要事項先登記後派發、想在轉發前看到候選清單再決定。它也適合不想爲記一條待辦而打斷模型的人。
有幾項限制需要在用之前知道。
- 需要會話對工作區有寫權限;只讀沙箱下命令會返回寫入失敗。
- 本版只有標記與只讀看板;派發、交付、歸檔仍由主任務手動完成並寫臺賬。
- 任務臺不顯示子任務對話,也不會自動刷新,要點「刷新」或切換面板。
- 摘要截斷在 200 字;需要原文時按
sessionId+seq回讀會話日誌,如果該消息已被壓縮則爲不可讀。 - 查找分組目前只顯示短 ID;會話標題是投影,尚未開放讀取。
另需注意,插件以當前 DSH 進程的權限運行,能讀寫工作區文件。安裝前應檢查源碼與許可證,本插件許可證爲 MIT。當前版本 0.6.0,目錄頁顯示星標爲 0,屬於個人維護的小規模項目。
結尾¶
Glean 的價值不在於做一個任務管理器,而在於把「標記候選」這一步做得足夠輕:不喚醒模型、不消耗 token、不打斷討論,候選先落盤,是否派發由你後續決定。用它之前只需確認工作區有寫權限,並接受「派發仍走主任務手動寫臺賬」這一版邊界。