@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_contextnb_list_varsnb_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
羽毛球分组比赛记分
小程序二维码

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

小夜