dsh-aivn:在 DSH 裏把對話工作區演成 AIVN 舞臺

前言

在 DeepSeek Harness(DSH)裏做帶劇情、選項和立繪的交互,常見做法是自己在會話外維護腳本,或另開一套獨立應用。AIVN 本身是一套舞臺引擎:劇作家輸出 Stage DSL,客戶端實時渲染背景、立繪、臺詞與停止點選項。同名獨立項目 stage-ai 提供完整桌面或 Web 體驗(路線樹、周目存檔、工坊等);若你已經在用 DSH,希望工作區即劇目、會話裏直接看到舞臺,而不多開一個應用,可以用插件 dsh-aivn(維護者 john-walks-slow,社區目錄分類爲「趣味換裝」)。

下面介紹它是什麼、能做什麼,以及如何安裝與上手。

這是什麼

dsh-aivn 把 AIVN 的舞臺引擎裝進 DSH:一個工作區對應一部劇目,在會話裏選擇「劇作家」預設後,對話頁會出現 AIVN tab(僅劇作家會話;搭臺助手會話沒有該 tab)。劇作家寫的 Stage DSL 在 tab 內實時演出——背景、立繪、臺詞條、停止點選項;玩家點選項後,該句回到劇作家繼續寫。可選能力包括逐句 TTS、聯網檢索、生圖、配樂等,由插件配置決定是否註冊對應工具。

插件與獨立版共用 @aivn/core、@aivn/stage 引擎與領域模型,差別在宿主:DSH 版用原生會話、文件側欄與技能機制,不做 AIVN 自有的譜系分支;分岔與回退依賴 DSH 原生能力(如 dsh-rewind、在新對話中分支)。

核心功能

舞臺與會話角色

  1. 劇作家:在 Stage DSL 中推進劇情;會話頭部第三個 tab 爲 Chat / Trajectory / AIVN。
  2. 搭臺助手:備料(立 play.json、素材等);生圖、摳圖等工具在該預設側使用,不在舞臺右上角導演欄裏出圖。

預設會在會話開始時固定,中途不能換 seat;要換角色需新建會話。

實時渲染與交互

  • 背景、立繪、對話框、停止點選項在 AIVN tab 中同步更新。
  • 舞臺左上角可全屏(iPhone Safari 退化爲鋪滿視口);玩家 HIDE 時全屏鍵隨臺詞條隱藏。
  • 右下角提供語音開關與「重聽這句」(需配置 TTS Key)。

導演工具欄

舞臺右上角面向「導演」:提示(引導 / 打斷)、改寫、重寫。改寫 / 重寫通過會話追加替換標記(與 dsh-rewind 同類手法),讓劇作家重寫對應拍子,保證上下文與畫面一致;與 AIVN 獨立版裏改腳本行的語義不同。

可選能力(配置後才註冊工具)

能力 配置要點 不配時的行爲
語音 ttsKeys 等(默認 Fish Audio) 無語音相關工具與提示
聯網檢索 searchKeys(Exa) 搭臺助手無 web_search
生圖 / 素材 imageFormat、imageBaseUrl、imageModel 等需給齊 無 generate_image / generate_asset
配樂 musicBaseUrl、musicModel 等需給齊 無 generate_bgm
命令行 shell: true 默認關閉 bash;僅對新開會話生效
限制級通道 nsfwModel、nsfwPrompt(可按劇目 play.json 覆蓋) 進通道不換模型時留空

配置共 21 個頂層字段;改插件配置或 cordis.patch.yml 後多數能力下一輪對話即生效,shell 例外。

劇目與 DSH 原生能力

  • 工作目錄根需有 play.json(唯一必填);另有 memory/、角色卡等骨架,詳見 README「一部劇目長什麼樣」。
  • 回退:dsh-rewind 回退後,插件重投影舞臺到該點。
  • 分支:用 DSH「在新對話中分支」;插件從會話重鋪,停在分叉時刻。
  • NSFW:劇作家調 enter_nsfw / exit_nsfw;退出後主模型只見摘要,日誌與舞臺仍保留原文。

客戶端 AIVN tab 依賴 dsh-web-app,在 package.json 的 dsh.client(platform: web)中聲明。

安裝與啓用

包爲 DSH bundle(package.json 中 dsh.bundle.patch)。web profile 下推薦:

dsh plugin --profile web add dsh-aivn

從 GitHub 直裝(倉庫內 lib/ 爲跟蹤的構建產物,無需本地 build):

dsh plugin --profile web add github:john-walks-slow/dsh-aivn

手工掛載:在 profile 的 cordis.patch.yml 增加:

- insert:
    - id: dsh-aivn
      name: dsh-aivn
      config: {}

配置方式二選一,保存後就地生效(一般無需重啓 dsh):

  1. 側邊欄 Plugins → dsh-aivn 配置卡(P0 能力開關與 Key,P1 默認口味項)。
  2. 同一 profile 的 cordis.patch.yml 裏 config 塊(與界面寫入同一份配置)。

示例片段(完整字段與默認值見 GitHub README):

- id: dsh-aivn
  name: dsh-aivn
  config:
    ttsKeys: ["<your-fish-audio-key>"]
    searchKeys: ["<your-exa-key>"]
    shell: false
    imageFormat: gemini
    imageBaseUrl: http://127.0.0.1:38000
    imageModel: gemini-3.0-pro-image

部分 Key 可用環境變量兜底,例如 DSH_AIVN_TTS_KEYS、DSH_AIVN_EXA_KEYS。

安裝前請自行查看倉庫源碼與 LICENSE,並理解插件以當前 dsh 進程權限運行;開啓 shell 或外連 API 前評估風險。

典型用法

1. 進入舞臺

  1. 新建會話,在座位 chip 上選 劇作家(備料選 搭臺助手)。
  2. 確認工作目錄根存在 play.json;若無,舞臺會提示「還不是一座劇目」。
  3. 在輸入框說一句話開演(例如「開始吧」)——該句會與劇目 opening 一併交給劇作家,不必照念開場白。

若已選劇作家且目錄裏有 play.json,輸入框上方會出現 「開始遊戲」:一次完成投遞 opening 並自動切到 AIVN tab(僅首次自動切換,之後由 DSH 記住 tab 選擇)。也可手動發話後點 AIVN tab。

2. 新建劇目

工作區尚無 play.json 時,可在輸入框執行(只寫尚不存在的文件;已有 play.json 會報錯):

/new-play 雨中的舊校舍

不寫劇目名則取工作目錄名。該命令寫骨架,不消耗 LLM 往返。校驗結構可讓搭臺助手調用 validate_play。

3. 玩家推進

在停止點選擇選項;選項作爲玩家臺詞回到劇作家,後續 DSL 繼續在 AIVN tab 演出。導演欄的提示不會出現在玩家時間線上(來源標記爲 dsh-aivn-director)。

適用場景與注意

適合:已在 DSH web 環境做 agent / 技能開發,希望用同一工作區管理劇目文件、會話軌跡與可視化舞臺;需要可選 TTS、檢索、生圖、配樂,且接受按 Key 逐項開啓。

不太適合:需要 AIVN 獨立版的路線樹、周目存檔與完整工坊——應使用 stage-ai。

注意:

  • 兩個預設、/new-play、/aivn 路由固定,不可通過配置改掉。
  • 社區目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係;安裝命令以 README 爲準。
  • 當前 package 版本爲 0.2.0(以倉庫 package.json 爲準)。

結尾

dsh-aivn 把「工作區 = 劇目、劇作家寫 DSL、會話內舞臺 tab 實時演」接到 DSH 上:回退與分支跟會話走,擴展能力靠扁平配置按需打開。若要完整 AIVN 產品體驗用獨立版;若已紮根 DSH,可按上文命令安裝並在 web profile 下從 /new-play 或現有 play.json 開演。

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

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

小夜