前言¶
在 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_historynb_revert_cellnb_error_contextnb_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狀態RestartInterruptRun AllClear OutputsRestart & 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
psutilsnippet 或 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"
典型用法¶
- 讓 agent 修改有狀態會話:例如用戶提出 “Switch Harmony integration to scVI”。agent 查找相關單元格,讀取 source/context,編輯單元格,執行,檢查 stdout/traceback,必要時繼續迭代。
- 單格交給 AI:在 per-cell revision box 中輸入修改請求,agent 編輯並重跑該單元格。
- 管理 kernel:打開 toolbar popup,列出當前所有 active kernels,關閉某個 session 的 kernel。
- CPU 綁定:在 big.LITTLE 機器上使用 copy-ready
psutilsnippet 或 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