6. 交互式科学工作台(INK)¶
6.1 简介¶
Interactive Analysis Workbench(INK)由高能所计算中心开发,致力于为用户提供安全、便捷的交互分析工具。将用户的交互操作包装为特殊作业,并通过网页交互操作。目前提供的功能包括 vscode、jupyter、vnc 等应用以及文件操作、ENode、EShell、OpenClaw、opencode 等服务。
6.2 快速入门¶
登录¶
已拥有集群账号的用户,直接访问 http://ink.ihep.ac.cn 并通过 IHEP SSO 账号登录。如未申请集群账号,请参考 账号申请。
首页¶
登录成功后,进入 INK 首页,如下图所示,包含 Services、User Info、Application、Interactive Jobs 以及 Platform Overview 五个区域,分别提供基础服务、交互式应用以及系统运行信息等。

文件操作¶
方法 1:点击主页右上角的 Files。

方法 2:点击 Services 区域中的 Files 图标。

进入文件操作网页。目前提供键入路径或点击文件夹进行路径跳转;支持隐藏或显示隐藏文件;支持集群文件上传、下载、删除等操作,对 .png/.pdf/.root/.fits 以及文本文件,支持在线查看。

交互式应用¶
提供 vscode、jupyter、rootbrowse、vnc 等网页交互。
注意
集群账号包含 physics 组的用户,可以选择 CentOS 7 或 AlmaLinux 9 操作系统启动应用。非 Physics 组用户统一使用新版 AlmaLinux 9 操作系统。CentOS 7 系统相关软件版本较老,如非必要,请选择 AlmaLinux 9。
具体方法:
-
点击 Application 中应用的图标,系统会为用户提交对应作业,并弹出作业清单。

-
作业清单中星号标明所提交的作业。清单右侧显示了作业状态。当出现 Connect 时,点击便可进入交互界面。

提示 1
作业刚提交,Connect 可能不显示。当交互界面可用后,Connect 才显示,用户可通过 Refresh 刷新作业状态。
提示 2
VNC 进入需要密码,点击对应 VNC 作业的 detail,将第一行记录的密码复制粘贴即可。
用户 Dashboard¶
点击右上角或首页 Services 栏中 Dashboard 图标进入用户 Dashboard 页面,包含以下五个标签页:
-
Dashboard :查看集群作业情况、可用存储空间使用情况。

-
User Information :进行账号延期、修改 home 目录等操作。

-
Apply for second linux group :申请添加辅组。

-
Apply for change default shell :修改默认 shell 类型(bash、tcsh、csh、zsh)。

-
AFS ACL Recovery :重置 AFS home 目录下的 ACL 权限。
用户 AFS home 目录下文件和目录的初始 ACL 为 rlidwka,其中 a(administer)权限允许用户自行管理 ACL。如果不慎将某个目录 ACL 中自己的 a 权限移除,则该目录的 ACL 将无法自行恢复。
此时可进入此标签页,输入需要恢复 ACL 的目录路径,点击 Check 查看当前目录的 ACL 权限设置。如果自己的 ACL 条目缺失或权限不完整(不足 rlidwka),点击 Reset 即可恢复对该目录的全部所有者权限。该操作仅影响用户自身的 ACL 条目,不会触碰系统或组的权限设置。
EShell¶
提供用户在网页上连接登录节点,实现网页办公。方法:点击右上角或首页 Services 栏中 EShell 图标。

可使用 Ctrl + Shift + C 及 Ctrl + Shift + V 实现复制粘贴,可以点击右上的配置按钮调整字号、主题颜色。
Mattermost 频道¶
提供用户与集群用户交流的渠道:Mattermost 注册链接
6.3 交互式应用详细说明¶
VSCode¶
VSCode 是微软开发的开源代码编辑器,支持多种语言,包括 C/C++、Python、Java、JavaScript 等。用户可以通过 VSCode 编辑文件、提交作业、查看结果,支持文件上传、下载、删除等操作,支持在网页上运行代码并查看结果。
该应用基于运行在计算节点的 code-server 服务,用户点击 Connect 后会转到网页式 VSCode,某些浏览器插件可能会接管按键输入,建议在 ink.ihep.ac.cn 上停用。
插件与联网¶
目前计算节点提供外网访问,如需安装 VSCode 插件,可直接搜索并安装。
注意
code-server 是 ssh-based VSCode,因此在某些功能上与本地 VSCode 应用存在差异,某些插件不支持(目前已知的包括 GitHub Copilot、Remote SSH、vscode-pdf 等插件无法使用),如有特殊需求请考虑使用 ENode。
代码助手¶
代码助手可以帮助用户编写代码大幅提高科研效率,VSCode 中有大量相关插件,以"腾讯云 AI 代码助手"为例,展示 copilot 的使用:
-
安装插件:在插件栏搜索"腾讯云 AI 代码助手"并点击 Install 安装。

-
完成安装后点击登录跳转腾讯云。

-
在腾讯云界面中完成注册并登录。

-
返回 VSCode 标签页,开启代码补全以及 AI 代码助手。

-
在 VSCode 中输入代码,点击代码助手,即可获得 AI 代码补全。

更多功能参见手册:Tencent Cloud coding-copilot
Jupyter¶
Jupyter 是 Python 语言的交互式编程环境,支持 Python、ROOT 等语言。用户可以通过 Jupyter 编辑文件、提交作业、查看结果,支持文件上传、下载、删除等操作,支持在网页上运行代码并查看结果。

- 左侧面板 :包括文件浏览器(可以查看、修改和创建文件)、命令面板、活动运行时和其他有用的面板。
- 主工作区 :用于显示笔记本、文档和终端。支持多窗口、多标签页功能。
- 顶部菜单栏 :提供文件操作、编辑、运行代码等常用功能。
- 创建笔记本 :在文件浏览器中单击 + 按钮,选择 Notebook,然后选择你想使用的内核(例如 Python 3)。
- 编辑和运行单元格 :在代码单元中输入代码,然后按
Shift + Enter运行。使用Ctrl + Enter运行当前单元格而不跳转到下一个单元格。Alt + Enter运行当前单元格,并在下面插入一个新单元格。 - 保存和导出 :使用菜单栏中的 File → Save Notebook 来保存工作,或者选择 Export 选项以不同格式导出,比如 HTML 或 PDF。
- 使用终端 :在 JupyterLab 中,你还可以打开一个终端,这对于需要访问系统命令行非常有用。点击 + 按钮然后选择 Terminal。
- 使用文本编辑器 :JupyterLab 提供内建的文本编辑器,支持多种文件格式,适合快速编辑代码和文本文件。
内核选择¶
INK-Jupyter 提供多种科学内核,供科学家自行选用,也可以自行安装个性化 ipykernel 以适应不同场景的分析需求。公共内核包括:
| 内核名称 | 描述 |
|---|---|
| Python 3 (ipykernel) | 默认内核,集成多种科学计算模块 |
| fermiPy 1.4.0 | 安装了 fermiPy 1.4.0 的内核 |
| Julia 1.11.5 | 安装了 Julia 1.11.5 的内核 |
| JUNO_PYTHON | JUNO 实验软件环境下的 Python 内核 |
| Python (LCG_107) | 配置了 LCG 107 环境的 Python 内核 |
| Python 3.12 with ROOT v6.34.04 | Python 3.12 与 ROOT 6.34.4 的集成内核 |
| ROOT C++ v6.34.04 | 仅 C++ 接口的 ROOT 6.34.4 内核 |
如有额外分析需求,可向管理员申请安装。
安装个人内核¶
用户也可安装个人内核到 ~/.local/share/jupyter/kernels/,建议使用模块管理工具,例如 venv 或 conda:
# Create a virtual environment
python3 -m venv ~/venvs/mykernel
# Activate the environment
source ~/venvs/mykernel/bin/activate
# Upgrade pip and install necessary packages
pip install --upgrade pip
# Build your env: pip install something
# Install ipykernel
pip install ipykernel
# Register the kernel
python -m ipykernel install --user --name mykernel --display-name "Python (mykernel)"
RootBrowse¶
RootBrowse 是 ROOT 文件浏览工具,支持在网页上查看文件,支持文件上传、下载、删除等操作,支持在网页上运行代码并查看结果。
应用使用新版本 ROOT 软件内置 ROOT::RBrowser() 方法,启动一个网页版 RootBrowse。与旧版通过 X11 和 C++ GUI 库实现的 TBrowse 相比,使用方式基本一致,响应速度大幅提升,并新增更多功能。
提示
RootBrowse 使用一次性链接,刷新或使用链接地址重连均无法正常打开网页,需要在 INK 网页 Jobs 界面中重新点击 Connect 获取新链接地址,链接地址刷新间隔为 1 分钟,1 分钟内重复点击也可能无法正常打开。该方法在新版本 ROOT 中提供,因此不支持 CentOS 7 系统。

RootBrowse 应用提供一个网页界面来浏览和操作文件系统和 ROOT 文件。用户可以在其中打开 ROOT 文件、查看目录结构和浏览对象。
具体界面¶
- 侧边栏 :显示文件系统的目录树或 ROOT 文件的内容,帮助用户导航不同的数据结构。允许用户选择不同的目录、文件或对象进行进一步操作。
- 工具栏 :包含常用操作的快捷按钮,如打开文件、保存、刷新视图等。
- 工作区 :显示选定的数据对象,支持多种视图模式,如数值表格、直方图、图形和其他可视化模式。
- 属性面板 :显示选定对象的详细信息和属性,允许用户进行属性修改和设置。
功能特性¶
- 多文件支持 :能够打开和浏览多个 ROOT 文件,并在它们之间切换和对比数据。
- 动态可视化 :提供交互式图表和视觉化工具,可以动态调整数据视图。支持常见的可视化类型,如直方图、散点图、曲线图等。
- 脚本和分析支持 :集成了 ROOT 的脚本执行能力,用户可以直接编写和运行 ROOT 的脚本以分析数据。支持 RDataFrame 等现代数据分析接口。
- 搜索和过滤 :提供强大的搜索功能,用户可以快速查找特定对象或数据集。支持根据元数据或数据内容进行过滤。
VNC¶
VNC 是远程桌面协议,在网页上运行远程桌面,可视化执行代码,并直接查看结果。
本应用基于运行在计算节点的 VNC Server 服务,使用 noVNC 作为 VNC 客户端连接服务,并以 Web Server 形式转发。框架图如下:

提示
可以使用 noVNC 侧边栏传递剪切板内容;某些浏览器插件可能会接管按键,建议在 ink.ihep.ac.cn 上停用。

如需安装桌面应用,请联系管理员并说明用途、安装方式等相关信息。
OpenClaw¶
OpenClaw 是一个面向交互式编程、代码理解与辅助分析的网页应用。它运行在计算节点上,通过浏览器提供类智能代理的交互界面,适合进行代码阅读、脚本编写、命令执行和与本地大模型相关的辅助工作。
OpenClaw 的启动方式与其他 INK 交互应用一致:在主页的 Application 区域点击 OpenClaw 图标提交作业,在 Jobs 列表中等待作业进入可连接状态后,再点击 Connect 打开界面。
首次使用与模型配置¶
OpenClaw 在首次使用时需要先配置模型服务。前端弹出菜单中通常包含以下项目:
- Template :选择一组预设的模型服务配置。如果用户之前已经保存过配置,相关模板会自动排在第一项,便于继续使用已有设置。
- Base URL :模型服务的接口地址,OpenClaw 通过该地址连接对应的大模型提供方。
- API Key :访问模型服务所需的密钥,用于身份认证。
- API Name :模型服务所使用的接口协议类型,例如
openai-completions或anthropic-messages。 - Model ID :实际使用的模型名称或标识,例如
hepai/deepseek-v3.2。 - Mount experiment data :是否在作业中挂载实验数据目录。
用户确认配置后,系统会将模型配置同步到个人 OpenClaw 工作目录。后续再次启动 OpenClaw 时,将优先读取用户上一次保存的有效配置。
IHEP 本地化配置与数据安全¶
INK 中的 OpenClaw 针对 IHEP 环境做了专门适配,主要包括以下特性:
- 提供若干预设模板,便于快速选择常用模型服务。
- 用户已保存的配置会在模板列表中优先显示,减少重复输入。
- OpenClaw 的连接地址采用 token 方式认证,用户通过 INK 的 Connect 进入后,一般不需要再手动完成设备配对。
- 用户配置会保存在个人 scratch 工作区对应的 OpenClaw 目录中,后续作业可复用这些设置。
当 Mount experiment data 关闭时,用户可以使用本地模型或外部模型服务;当该选项开启时,系统只允许使用 IHEP 本地模型,以避免实验数据通过外部模型服务传输。当前本地模型的一般形式为:
Base URL = https://aiapi.ihep.ac.cn/apiv2Model ID以hepai/开头
如果启用了实验数据挂载,但所填写的模型配置不满足上述条件,系统会拒绝保存该配置。
使用建议¶
- 如需处理实验数据、内部代码或其他敏感内容,建议优先选择 IHEP 本地模型,并开启 Mount experiment data 。
- 如只进行通用代码生成、文本整理或公开信息处理,可根据需要选择外部模型服务。
- 修改模型配置后,新配置会在后续启动 OpenClaw 时继续生效。
- 如果作业已启动但暂时不能连接,可在 Jobs 页面使用 Refresh 刷新状态,待 Connect 出现后再进入。
opencode(编程助手)¶
opencode 是基于 opencode v1.17.16 的 PR 构建版本(anomalyco/opencode#28326,支持 --base-path),以 Web 模式运行在计算节点上,通过浏览器提供代码理解、编辑、命令执行等交互式编程能力。
opencode 的启动方式与其他 INK 交互应用一致:在主页的 Application 区域点击 opencode 图标提交作业,在 Jobs 列表中等待作业进入可连接状态后,再点击 Connect 打开界面。
添加项目¶
首次使用时需要添加项目目录。点击主界面中的 添加项目 按钮,选择或输入项目路径。
注意
请勿将 /afs/ihep.ac.cn/users/.../(即 ~/)等过大的目录指定为项目根目录。项目过大将导致 opencode 内存占用过高,Slurm 作业可能被 hold;同时项目路径不支持符号链接,部分用户选择 ~/ 后页面会崩溃。如遇此情况,可通过清除浏览器中该网址的站点存储数据来恢复:
- Chrome :打开 opencode 页面 → 按 F12 → Application → Storage → 点击 Clear site data
- Firefox :打开 opencode 页面 → 按 F12 → Storage → 右键点击该网址 → Delete All
新建会话¶
在项目页面点击 新建会话 即可开启新的对话。每个会话独立保存对话历史,用户可根据不同任务创建多个会话,便于切换工作上下文。
连接模型¶
在会话界面点击 设置 ,配置模型服务:
- Base URL :模型服务接口地址,IHEP 本地模型使用
https://aiapi.ihep.ac.cn/apiv2 - API Key :模型服务的认证密钥
- Model :选择使用的模型,IHEP 本地模型 ID 以
hepai/开头
此外,opencode 官方提供免费模型服务 OpenCode Zen ,包含 deepseek、minimax 等开源模型,默认模型为 Big Pickle 。具体配置方法可参考 OpenCode Zen 文档。 注意 :OpenCode Zen 的模型提供商位于海外,如需处理敏感信息(实验数据、内部代码等),建议优先使用 IHEP 本地模型。
对话与审批¶
配置完成后即可在对话框中输入指令,opencode 会根据任务类型自动调用工具(读写文件、执行命令等)。出于便捷性考虑,opencode 默认采用宽松权限策略,项目内的文件读写和 Shell 命令执行均 无需审批 ,自动执行。仅当访问项目外路径(external_directory)或检测到重复无效调用(doom_loop)时,才会触发审批机制。用户也可根据需要在配置中调整各级权限规则。
Build 模式与 Plan 模式¶
opencode 提供两种工作模式:
- Plan 模式 :只读模式,AI 仅进行分析、规划和回答,不执行任何文件修改或命令。适合代码阅读、方案设计等场景。
- Build 模式 :完整模式,AI 可以读取文件、执行命令、修改代码等。适合实际的代码开发和调试工作。
用户可在对话框中通过指令或界面按钮切换模式。
注意
opencode v1.18.0 及以上版本采用了新的界面布局,模式切换入口有所调整。建议用户在 配置 → 通用 → 高级 中开启 显示智能体,以便在会话界面中显示并切换 build / plan 模式,避免不必要的错误操作。
默认执行权限¶
opencode 默认权限策略为宽松模式(permissive),绝大多数操作无需审批即可自动执行:
read/edit/bash/glob/grep等:默认allow(自动执行),其中.env文件读取默认拒绝external_directory:访问项目工作目录以外的路径,默认ask(需审批)doom_loop:检测到同一操作连续重复 3 次,默认ask(需审批)
用户可在项目配置文件(opencode.json)中通过 permission 字段自定义权限规则,将特定操作设为 allow / ask / deny。具体配置方法可参考 opencode 权限文档。
配置与数据存储¶
opencode 的配置文件和数据存储在以下路径:
- 全局配置 :
~/.config/opencode/opencode.json - 项目配置 :项目根目录下的
opencode.json或.opencode/目录 - 数据存储 :
~/.local/share/opencode/(包含认证信息、日志、会话数据等) - 缓存 :
~/.cache/opencode/
由于 AFS home 目录默认空间仅 500MB,如果上述路径占用过大,用户可将实际文件夹移至其他存储位置(如 /scratchfs),然后在原路径创建软链接指向新位置:
# 示例:将 opencode 数据目录移到 scratchfs
mv ~/.local/share/opencode /scratchfs/<group>/<username>/opencode_data
ln -s /scratchfs/<group>/<username>/opencode_data ~/.local/share/opencode
会话隔离¶
opencode 的会话数据存储在 ~/.local/share/opencode/ 目录下。如果用户同时使用 INK 中的 opencode Web 版和登录节点 Shell 中的 opencode CLI 版,且希望两边的会话互不干扰,可在 Shell 中通过设置 XDG_DATA_HOME 环境变量来指定独立的数据目录:
这样 Shell 中的 opencode 将使用 /scratchfs/<group>/<username>/.local_share_cli/opencode/ 作为数据目录,与 INK Web 版的会话完全隔离。
OpenChamber¶
OpenChamber 是开源的 AI 编程助手平台,功能与 opencode 基本一致。在计算平台上,OpenChamber 作为 INK 交互应用运行在计算节点上,通过浏览器提供代码理解、代码编写、命令执行、程序调试等交互式编程能力,适合开展日常代码开发与数据分析工作。
启动方式¶
OpenChamber 的启动方式与其他 INK 交互应用一致:在主页的 Application 区域点击 OpenChamber 图标提交作业,在 Jobs 列表中等待作业进入可连接状态后,再点击 Connect 打开界面。
提示
作业刚提交时 Connect 可能不显示,可通过 Refresh 刷新作业状态,待界面可用后再进入。
添加项目¶
首次使用时需要添加项目目录。点击主界面中的 添加项目 按钮,选择或输入项目路径。
注意
请勿将 /afs/ihep.ac.cn/users/.../(即 ~/)等过大的目录指定为项目根目录。项目过大将导致 OpenChamber 内存占用过高,Slurm 作业可能被 hold;同时项目路径不支持符号链接,部分用户选择 ~/ 后页面会崩溃。如遇此情况,可通过清除浏览器中该网址的站点存储数据来恢复。
新建会话¶
在项目页面点击 新建会话 即可开启新的对话。每个会话独立保存对话历史,用户可根据不同任务创建多个会话,便于切换工作上下文。
连接模型¶
在会话界面点击 设置 ,配置模型服务:
- Base URL :模型服务接口地址,IHEP 本地模型使用
https://aiapi.ihep.ac.cn/apiv2 - API Key :模型服务的认证密钥
- Model :选择使用的模型,IHEP 本地模型 ID 以
hepai/开头
此外,OpenChamber 也提供免费的模型服务 OpenCode Zen ,包含 deepseek、minimax 等开源模型,具体配置方法可参考 OpenCode Zen 文档。 注意 :OpenCode Zen 的模型提供商位于海外,如需处理敏感信息(实验数据、内部代码等),建议优先使用 IHEP 本地模型。
对话与审批¶
配置完成后即可在对话框中输入指令,OpenChamber 会根据任务类型自动调用工具(读写文件、执行命令等)。出于便捷性考虑,OpenChamber 默认采用宽松权限策略,项目内的文件读写和 Shell 命令执行均 无需审批 ,自动执行。仅当访问项目外路径(external_directory)或检测到重复无效调用(doom_loop)时,才会触发审批机制。用户也可根据需要在配置中调整各级权限规则。
Build 模式与 Plan 模式¶
OpenChamber 提供两种工作模式:
- Plan 模式 :只读模式,AI 仅进行分析、规划和回答,不执行任何文件修改或命令。适合代码阅读、方案设计等场景。
- Build 模式 :完整模式,AI 可以读取文件、执行命令、修改代码等。适合实际的代码开发和调试工作。
用户可在对话框中通过指令或界面按钮切换模式。
默认执行权限¶
OpenChamber 默认权限策略为宽松模式(permissive),绝大多数操作无需审批即可自动执行:
read/edit/bash/glob/grep等:默认allow(自动执行),其中.env文件读取默认拒绝external_directory:访问项目工作目录以外的路径,默认ask(需审批)doom_loop:检测到同一操作连续重复 3 次,默认ask(需审批)
用户可在项目配置文件(opencode.json)中通过 permission 字段自定义权限规则,将特定操作设为 allow / ask / deny。具体配置方法可参考 opencode 权限文档。
配置与数据存储¶
OpenChamber 的配置文件和数据存储在以下路径:
- 全局配置 :
~/.config/opencode/opencode.json - 项目配置 :项目根目录下的
opencode.json或.opencode/目录 - 数据存储 :
~/.local/share/opencode/(包含认证信息、日志、会话数据等) - 缓存 :
~/.cache/opencode/
由于 AFS home 目录默认空间仅 500MB,如果上述路径占用过大,用户可将实际文件夹移至其他存储位置(如 /scratchfs),然后在原路径创建软链接指向新位置:
# 示例:将 OpenChamber 数据目录移到 scratchfs
mv ~/.local/share/opencode /scratchfs/<group>/<username>/opencode_data
ln -s /scratchfs/<group>/<username>/opencode_data ~/.local/share/opencode
会话隔离¶
OpenChamber 的会话数据存储在 ~/.local/share/opencode/ 目录下。如果用户同时使用 INK 中的 OpenChamber Web 版和登录节点 Shell 中的 opencode CLI 版,且希望两边的会话互不干扰,可在 Shell 中通过设置 XDG_DATA_HOME 环境变量来指定独立的数据目录:
这样 Shell 中的 opencode 将使用 /scratchfs/<group>/<username>/.local_share_cli/opencode/ 作为数据目录,与 INK Web 版的会话完全隔离。
6.4 常见问题¶
-
作业无法提交成功
如果用户的 rc 文件(
.bashrc、.tcshrc等)中包含阻塞式输入或类似的执行程序,INK 在使用用户身份提交作业或创建文件可能会失败。解决方案:在 rc 文件中添加非交互式会话防护,如果是非交互式会话登录,则退出 rc。代码如下:
- BASH
- ZSH
- TCSH/CSH
-
初次登录后 Kerberos 报错

解决方法:点击右上角头像,退出登录,关闭浏览器重新登录即可。
其余问题见常见问题。
有问题?输入后跳转到对话页继续交流