dsh-slide:按 Conversation 開啓的 AI 幻燈片編輯器

前言

在 DeepSeek Harness(DSH)裏讓智能體產出演示文稿,常見流程是先生成大綱或 Markdown,再由人搬到演示工具裏排版;後續想調整,只能在對話裏用文字反覆描述改哪裏。dsh-slide 換了一種做法:它把當前 Conversation 的聊天界面切換成一塊 16:9 幻燈片畫布,人只負責選中對象、頁面或整個 deck,具體修改由專用的 annotation 子代理執行,結果直接反映在畫布和縮略圖上。DSH 的理念是「一切皆插件」,dsh-slide 就是以插件形式提供的這類能力。

下面按功能、安裝、典型用法的順序介紹它。

這是什麼

dsh-slide 是 JeremyGuo 維護的 DSH Web 端插件,當前版本 0.2.0,MIT 許可證。一句話定位:一個按 Conversation 獨立開啓的可視化幻燈片編輯器,帶 AI 批註(annotation)、Workspace 文件管理與共享知識引導。

它解決的問題是:讓智能體在一塊持久、可視的畫布上生成並迭代多頁幻燈片,而不是把幻燈片內容當純文本聊天。編輯動作完全交給 AI,人不直接改字或拖動對象,只通過選擇焦點和下達指令參與。

核心功能

按 Conversation 開關,不做全局替換

Slide Editor 的開關只作用於當前打開的 Conversation,不是把所有聊天界面換成畫布。開啓後保留同一 Session、Workspace 與模型配置;關閉時禁用當前 Session 的模式,但保留最後一次文檔關聯。對某個 Conversation 開關不影響其他 Conversation。

AI-only 編輯

多頁 16:9 畫布,帶即時內容縮略圖與對象、頁面選擇。人機交互只有一種:選中對象、頁面或整個 deck,然後向 annotation agent 下達指令。直接文本編輯、對象移動與縮放、插入、刪除、頁面鍵盤修改都不暴露。

編輯由專用 annotation 子代理執行,以選中對象、選中頁面或整個 deck 爲焦點;每個子代理保留整 deck 修改權,校驗通過的操作直接應用。選擇只是上下文而非權限邊界,爲完成請求,agent 仍可能做更大範圍的修改,包括新增頁面。

annotation 線程與右側面板

每個 annotation 擁有獨立消息線程,可以繼續對話。標題由首個請求自動總結,可手動重命名,後續輪次保留。

子代理運行期間,可以在 annotation 輸入處就地看到可見助手文本與工具生命週期;隱藏的模型推理不暴露。右側面板支持摺疊單個線程、查看已應用操作數、resolve、reopen、刪除;面板寬度可拖拽調整,寬度本地保留,也可用方向鍵調整。one-shot 子代理運行不會喚醒父 Conversation,各 annotation 可獨立推進。

文件管理與導出

deck 自動持久化到 Workspace,默認路徑:

.dsh-slide/<session-id>.slides.json

路徑含 Session id,所以同一 Workspace 的不同 Session 默認不共享文件;如果刻意讓多個 Session 關聯同一個 *.slides.json,它們會共享該文件,併發保存可能互相覆蓋。

浮動 File 菜單提供 New / Load / Save / Save As / Copy / Export / Close;其中 New、Load、Save As 使用 Workspace 文件選擇器選文件,不需要手輸路徑。配套的 Workspace 文件瀏覽器支持單擊導航與打開、文本與圖片預覽、拖拽上傳、新建文件夾、重命名、刪除。

當前 deck 可導出爲獨立瀏覽器演示,支持鍵盤導航、全屏、打印爲 PDF;Workspace 圖片以 data URI 內嵌。

渲染能力

圖片元素支持三種來源:workspace:<relative-path>、data URL、HTTPS URL,fit 支持 contain / cover / fill。幾何元素使用標準 SVG path 數據:多邊形(M/L/H/V/Z)、三次貝塞爾(C/S)、二次貝塞爾(Q/T)、橢圓弧(A)。

所有座標與視覺長度——x、y、width、height、fontSize、radius 等——都使用固定 1280 × 720 的幻燈片設計空間,編輯器隨渲染尺寸同步縮放,頁面與縮略圖共用同一套座標。

共享知識與文件訪問邊界

插件提供共享知識初始化 prompt 與 Workspace 相對的知識文件列表,可在 Settings 或編輯器面板編輯,作爲 annotation 的公共上下文。宿主文件路由綁定當前 Session 的權威 cwd,拒絕詞法路徑穿越與 symlink 逃逸。

安裝

安裝發佈版插件,然後啓動 dsh web:

dsh plugin --profile web add dsh-slide@dsh-plugin
dsh web

也可以從源碼構建安裝。package.json 的 engines 要求 node >=22.19.0:

pnpm install
pnpm run build
dsh plugin --profile web add /absolute/path/to/dsh-slide
dsh web

典型用法

切換到 Slide Editor 模式

安裝完成後,經過下面的步驟把一個 Conversation 切換成編輯器:

1、打開目標 Conversation。
2、點左下角 Settings。
3、選擇「幻燈片編輯器 (Slide Editor)」。
4、在「當前 Conversation」卡片打開「開啓幻燈片編輯模式」開關。
5、回到 Conversation,聊天界面被 Slide Editor 替換,Session、Workspace 與模型配置不變。

關閉時進入同一設置,把開關關掉,即回到標準聊天界面。

由 agent 打開已有 deck

主 Conversation 會獲得一個 open_slide_deck 工具,可打開已存在且通過文檔校驗的 Workspace 相對 *.slides.json 文件,並把當前 Conversation 切換到 Slide Editor 模式。典型流程:agent 先用文件系統工具創建 *.slides.json,再調用 open_slide_deck。

注意:子代理不能使用該工具,攜帶 parentSession 或 origin: "subagent" 的調用會被拒絕。

圖片與幾何元素

deck 內元素以 JSON 描述。下面是一個圖片元素,src 指向 Workspace 內的文件:

{
  "kind": "image",
  "x": 80,
  "y": 120,
  "width": 500,
  "height": 320,
  "src": "workspace:images/photo.png",
  "fit": "cover",
  "alt": "Product photo"
}

幾何元素用一段標準 SVG path 描述多邊形或曲線,path 在局部 viewBox 內定義,再縮放放進外層矩形:

{
  "kind": "geometry",
  "x": 600,
  "y": 180,
  "width": 400,
  "height": 240,
  "viewBoxWidth": 100,
  "viewBoxHeight": 100,
  "path": "M 5 90 L 50 5 L 95 90 Z",
  "fill": "#dbeafe",
  "stroke": "#2563eb",
  "strokeWidth": 2
}

多邊形用 M/L/H/V/Z,三次貝塞爾用 C/S,二次貝塞爾用 Q/T,橢圓弧用 A;開放曲線一般寫 "fill":"none"。

適用場景與注意

適合的場景:需要在 DSH 的對話流程裏持續生成和維護一套多頁幻燈片,把幻燈片當作可迭代的產物而不是一次性導出文件;希望人只把控方向,修改細節交給 agent 完成。

幾點注意:

1、編輯模型是 AI-only。不能手動改文字、拖動或縮放對象,所有修改都走 annotation 子代理,接受這個交互前提再安裝。
2、選擇只是上下文。子代理爲了完成請求,可能修改所選範圍之外的頁面或對象,也會新增頁面。
3、多個 Session 刻意關聯同一個 *.slides.json 時,併發保存可能互相覆蓋;默認按 Session 隔離的路徑設計就是爲了避免這一點。
4、插件以當前 dsh 進程的權限運行。宿主文件路由雖然綁定了 Session 的 cwd 並拒絕路徑穿越與 symlink 逃逸,安裝前仍建議檢查插件源碼與許可證(本項目爲 MIT)。

小結

dsh-slide 把「對話生成幻燈片」從文本往返變成畫布上的選擇與指令:人管焦點,子代理管操作,deck 與 annotation 狀態都留在 Workspace 裏。如果你在用 DSH 並需要讓 agent 維護演示文稿,它可以作爲一個起點。

  • GitHub:https://github.com/JeremyGuo/dsh-slide
  • 插件目錄頁:https://www.skillhub.cn/plugins/JeremyGuo/dsh-slide

目錄頁爲社區維護的收錄站點,與 DeepSeek / 幻方無官方從屬關係。

羽毛球分组比赛记分
小程序二维码

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

小夜