@beihaizb/dsh-notebook:爲 DSH 提供 Agent 可控的有狀態 Jupyter 工作區

前言

在 DeepSeek Harness(DSH)中,智能體如果只是調用一次性腳本,就很難處理有狀態的 Python 分析會話:變量已經加載到內存、模型已經構建、數據已經經過預處理,但下一步還需要修改某段代碼、觀察輸出、根據 traceback 調整。普通 notebook 更多是靜態結果文件,不一定方便 agent 持續讀、改、運行、檢查。

下面介紹 beihzb/dsh-notebook。它是一個 DSH 插件,目標是讓 notebook 成爲 agent 可以操作的對象。

這是什麼

beihzb/dsh-notebook 是 beihzb 維護的 DSH 插件,許可證爲 MIT。插件包名爲 @beihaizb/dsh-notebook,倉庫目錄名爲 beihzb/dsh-notebook。

它提供一個有狀態、Agent 可控的 Jupyter workspace:DSH agent 可以讀取、編輯、執行和檢查 notebook 單元格,並操作一個持久 ipykernel 運行時。插件同時提供與 VS Code 對齊的單元格 UI,以及標準 .ipynb 保存/加載能力。

核心功能

持久內核與 Agent 工具

插件使用真實的 ipykernel / jupyter_client sidecar。變量可以在多個單元格之間保持,agent 不是隻在拼字符串,而是可以操作已經存在變量、數據和模型狀態的運行環境。

Agent 可以調用這些工具:

  • nb_get:讀取單元格或 notebook 狀態。
  • nb_edit_cell:編輯單元格代碼。
  • nb_run_cell:運行單元格。
  • nb_context、nb_list_vars、nb_inspect_object:查看運行時變量和緊湊 notebook 狀態。

執行結果會提供結構化輸出和 traceback,便於 agent 判斷下一步。

安全編輯與版本歷史

插件圍繞 AI 編輯循環提供了幾類工具:

  • per-cell version snapshots
  • nb_cell_history
  • nb_revert_cell
  • nb_error_context
  • nb_edit_and_run_cell

這些能力用於可審計的“修改—重跑”流程。每次執行還會記錄在 cell.metadata.dsh.executions 中,每個單元格最多保留 50 條。

結構化運行結果與長輸出保護

運行類工具會返回結構化的 execution envelope,包含:

status
execution_count
duration_ms
stdout / stderr
outputs_summary
error
traceback_text

對於長輸出,插件有保護:每個 stream 有 driver cap(500 KB),envelope 中保留 6 KB 的 head+tail summary,完整合並文本會寫入 <notebook>_files/。

VS Code 對齊的單元格 UI 與執行語義

插件提供與 VS Code 對齊的單元格體驗和運行語義,包括:

  • Queued / Executing 狀態
  • Restart
  • Interrupt
  • Run All
  • Clear Outputs
  • Restart & Clear

輸出方面支持 tqdm 進度條、inline figures 點擊放大、長輸出摺疊和 multi-image grid。

錯誤導航支持點擊 traceback frame,跳到出錯單元格。

會話隔離與內核管理

每個 DSH session 擁有獨立的 notebook、kernel 和工作目錄,避免跨 session 狀態泄漏。多個 session 可以同時運行 kernel。

內核管理入口在 toolbar popup:可以列出跨 session 的 active kernels,並直接關閉某個 session 的 kernel。

如果 dsh web 被強制結束,Python sidecar 會檢測到父進程死亡,並自動關閉其 ipykernel。

Kernel picker 會在缺少 ipykernel 時給出安裝提示。

其他體驗

  • 標準 .ipynb 保存/加載,帶 autosave 和未保存修改提醒。
  • 雙語 EN / 中文 UI,工具欄一鍵切換,語言選擇跨 session 保留。
  • 在 big.LITTLE 機器上,可使用 copy-ready psutil snippet 或 OS scheduler 工具,把 Python 進程綁定到 performance cores。

安裝與啓用

安裝命令:

dsh plugin add @beihaizb/dsh-notebook

該命令使用 scoped npm/bundle 名 @beihaizb/dsh-notebook,插件說明爲 out of the box 加載。插件需要以下 peer dependencies:

"@deepseek-ai/cordis": "^4.0.1",
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6"

典型用法

  1. 讓 agent 修改有狀態會話:例如用戶提出 “Switch Harmony integration to scVI”。agent 查找相關單元格,讀取 source/context,編輯單元格,執行,檢查 stdout/traceback,必要時繼續迭代。
  2. 單格交給 AI:在 per-cell revision box 中輸入修改請求,agent 編輯並重跑該單元格。
  3. 管理 kernel:打開 toolbar popup,列出當前所有 active kernels,關閉某個 session 的 kernel。
  4. CPU 綁定:在 big.LITTLE 機器上使用 copy-ready psutil snippet 或 OS scheduler 工具,把 Python 進程固定到 performance cores。

適用場景與注意

適合:

  • 在 DSH 中讓 agent 操作持久 Python notebook 的開發者。
  • 需要 agent 查看運行變量、檢查輸出、根據錯誤重跑單元格的場景。
  • 需要按 .ipynb 保存/加載、同時保留會話隔離和 kernel 管理的場景。

注意:

  • 插件以當前 dsh 進程權限運行。安裝前應檢查源碼、許可證和 peer dependencies。
  • 本文只描述已覈實事實;倉庫 star 數、分類標籤等線索信息不在本文作爲事實引用。

查看與反饋

GitHub 倉庫:

https://github.com/beihzb/dsh-notebook

目錄頁(本文線索提供):

https://www.skillhub.cn/plugins/beihzb/dsh-notebook
羽毛球分组比赛记分
小程序二维码

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

小夜