dsh-morning-paper:用持久事件日誌算出的會話「頭版」

前言

在 DSH Web 里長時間跑會話時,Chat 是一條線性的消息列表:你能逐條讀對話,卻很難一眼回答「我離開這段時間發生了什麼」「哪幾個 turn 喫掉了 token」「哪些工具失敗後再也沒重試」。Trajectory 更偏軌跡細節,同樣不會把文件改動次數、牆鍾時間分佈、待你審批的事項收成一張可讀摘要。

下面介紹社區插件 dsh-morning-paper(維護者 damlys99,目錄分類爲「記憶」):在 Conversation View 裏增加名爲 Morning Paper 的標籤頁,與 Chat、Trajectory 並列;內容全部從持久事件日誌計算得出,不由模型生成,也不佔用你的上下文。

這是什麼

一句話定位:你離開後又回到會話時的一頁「頭版」——發生了什麼、哪裏壞了、還有什麼在等你。

數據來源是會話的可 durable event log。插件自述強調:briefing 是 computed,never written by a model;同一日誌與同一時鐘下輸出字節級一致,零 token、無幻覺。頁面是派生狀態,不調用 inject()、不追加 session event、不向模型發送任何內容;唯一寫入 transcript 的路徑是你主動執行的 /briefing 命令(README 稱 selftest 會斷言這一點)。

核心功能

Conversation View 裏的報紙式標籤頁

Morning Paper 是真實的 Conversation View 標籤頁,版式按報紙組織:報頭(masthead)、日期行(dateline)、待辦公告框(action bulletin)、帶首字下沉的導語(lede)、分欄與腳註式小字(small print)。

同一套 briefing 有兩種呈現:

  • 標籤頁:分頁渲染爲三頁「報紙」;
  • 命令 /briefing:在 transcript 裏打印同一份文檔的純文本連續欄(transcript 不能翻頁,分頁只是展示,不是另一套數據)。

三頁分別承載什麼

有內容纔出頁;安靜的會話可能只有一頁,不會硬湊三頁空白。

頁 內容
1 · Front 待辦公告、一行導語(outcome)、活動摘要(what it did)、你說過的話(what you asked)、上下文壓力(weather)
2 · The Log 按 turn 的時間線(耗時、步數、工具數、token、結果)、未解決失敗及失敗命令、corrections 行
3 · The Ledger 文件改動次數、交付物、時間花在哪(工具執行 vs 模型時間)、token 花在哪(按 turn 排序)

導語 deliberately 不引用 agent 的回覆——Chat 裏能讀到的複述會讓 briefing 失去價值;導語是一行結果(例如 Turn 17 completed. 或 turn 結束爲 blocked 時在等你)。

相對 Chat 多出來的事實

README 歸納了線性聊天無法直接給出的聚合信息,例如:

  • 哪些文件被反覆改動(如 12x src/auth/session.ts);
  • 牆鍾時間分佈:各工具執行時間、最長單次調用、工具執行佔窗口比例 vs 模型思考時間;
  • 哪個 turn 佔窗口 token 比例最大;
  • 失敗且從未重試的工具調用(同一工具失敗後又有成功則視爲已處理);
  • 從你發出的消息裏篩出的「你之前要什麼」。

兩個閱讀範圍

頭版要回答兩個問題,因此有兩種讀法:

問題 數據來源
我離開期間發生了什麼? 僅瀏覽器上次展示 seq 之後的事件
現在有什麼需要我? 整段日誌——離開前就在等的審批、一小時前 blocked 的 turn 仍然 blocked

Fork 繼承的事件不計入「發生了什麼」的計數,並在 notes 行說明;readSession 會報告繼承前綴長度,避免把 fork 來的工作算進當前會話。

安裝與啓用

插件面向 DSH Web profile。官方安裝命令如下(來自 README):

dsh plugin --profile web add -w dsh-morning-paper
# restart dsh web, then reload the page

要求 DSH 版本 >=0.1.2-alpha.1 <0.2.0-0(package.json 的 engines.dsh 與 README 一致)。安裝後配置行會自動寫入 profile;因 host 模塊與 client bundle 在啓動時組裝,需要重啓 dsh web 再刷新頁面。README 說明 patchReload: live 只監視 patch 文件,不能替代這次重啓。

卸載:

dsh plugin --profile web remove dsh-morning-paper

npm 包當前版本爲 0.1.1(見 package.json),許可證 MIT,Node >=20。

典型用法

離開會話再回來

在 Web profile 下啓動 DSH 並保持會話標籤打開,例如:

dsh --profile web

一段時間後回到瀏覽器,打開 Morning Paper 標籤即可看到頭版:離開時長、事件數、牆鍾窗口、當前 turn、是否需要 action 等會出現在報頭區域(README 示例中有 away 42m | 751 event(s) | … | 0 action(s) required 一類行)。

在 transcript 裏要同一份 briefing

需要可複製、可搜索的純文本時,在會話裏執行:

/briefing

輸出形狀與 README 中的示例一致(LEAD、WHAT IT DID、TURNS、FILES、WHERE THE TIME WENT、WHERE THE MONEY WENT、BUSINESS、CORRECTIONS、UNRESOLVED、YOU ASKED、WEATHER 等區塊)。若你希望 agent 用自然語言再寫一段說明,README 建議用 /briefing 再配合 agent;本插件本身不提供模型生成的 prose。

適用場景與注意

適合誰: 經常在 DSH Web 裏開長會話、需要快速復盤「離開期間」與「當前卡點」的開發者;關心 token 分佈、工具失敗與未重試項、文件 churn 時,Ledger 與 Log 頁比逐條翻 Chat 更直接。

信任邊界: 內容來自日誌聚合,不是模型摘要;若日誌不完整或 fork 邊界理解有誤,應以 Trajectory / 原始事件爲準覈對。

安全與權限: 插件隨當前 dsh 進程加載與運行,能訪問該進程有權讀寫的會話與配置。安裝前建議在 GitHub 查看源碼與 MIT 許可證,確認符合你的環境策略。社區目錄 SkillHub 插件頁 與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係;DSH 生態是「一切皆插件」,目錄站是獨立入口,不是官方應用商店。

結尾

dsh-morning-paper 把持久會話日誌收成一張可翻的「晨報」:發生了什麼、什麼壞了、什麼在等你——計算得出、不進上下文、Chat 裏看不到的聚合在一處呈現。需要純文本時用 /briefing。

  • 目錄頁:https://www.skillhub.cn/plugins/damlys99/dsh-morning-paper
  • GitHub:https://github.com/damlys99/dsh-morning-paper
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜