CapSci 科研工作台:操作介绍
界面设计稿,尚未实现 · 2026-10-20。结构图由 ASE 与 3Dmol.js 生成,曲线由 matplotlib 绘制,数值为样例数据。
设计理念
- 对话主导。 和 Claude Code、Codex 一样,每个计算任务从一句话开始,过程都在对话里推进。
- 决策留在对话,细节放进右侧窗格。 需要你确认的事在对话里一步完成;完整参数、曲线、3D 结构在右侧打开。
- 只用审核过的技能。 计算流程(技能,Skill)由批准人审核后才能用,失败即停,不会自动换方法。
- 软件登记一次,技能按编号引用。 VASP、赝势库、自己写的程序都登记在"设置 › 软件与资源"里。
操作界面
以"生成 Ni₀.₈₇₅Mo₀.₁₂₅ 的 FCC SQS,并进行结构弛豫"为例。
1. 描述目标,在对话里确认

- 输入目标后,CapSci 读取技能目录、匹配到技能
sqs_vasp_relax。 - 组分单位(两个按钮)和初始晶格常数 a₀(一个输入框)直接在对话里定,也可以一句话回复。
2. 复杂补参:右侧打开计算方法

- 点"查看完整计算方法",右侧按步骤列出全部参数,每项带来源标记。
- 对话里只留待确认的一项,两边的改动实时同步。
3. 批准开始计算

- 本机还没配 VASP 时,对话里会给出自动检测到的路径,点一下即可使用并登记。
- 批准卡列出你定的值、默认值、提醒、环境和演示性质。按 Enter 开始;右侧计算单的按钮是同一个操作。
4. 运行中

- 对话里是摘要卡:当前步骤、离子步、最大受力和趋势线。
- 右侧实时显示收敛曲线和 OSZICAR 末尾;可以离开,计算在后台继续。
5. 结果

- 对话里是一句结论和结果摘要卡,带演示标记。
- 右侧是可旋转的 3D 结构、结果表和文件。

6. 失败

- 失败卡说明停在哪一步、为什么、有限重试用到哪里,以及"不会自动换方法"。
- 右侧是诊断曲线、重试记录和日志;点"修改参数,新建任务"回到补参。
7. 查看流程编排

- 在对话里问,或点运行块的"查看编排",右侧以只读方式显示每一步的工具、参数传递和本次运行状态。
8. 技能库

- 所有人可见:已审核启用的技能和工具,每个技能需要哪些软件、本机是否就绪。
- "用这个技能新建对话"只预填目标,仍会经过匹配、补参和批准。
9. 设置 › 软件与资源

- 标准软件和自定义条目在同一张表里,技能按编号引用(如
vasp、potcar.pbe)。 - 取值分两层:实验室默认(管理员维护,只读)和本机覆盖。

- 自己写的程序也能登记:先选类型,再填路径和查看版本的命令。
- 登记后还不能直接调用,需要有工具包装它并通过审核。
10. 管理 › 技能审核

- 只有批准人能进入"管理"。Agent 在对话里起草的技能会出现在这里。
- 自动检查通过、人工审核项勾完后,才能"批准并发布"。
首次启动与项目(沿用简图)


- 首次启动只配工作目录、模型连接和第一个项目;计算软件第一次用到时再配。
- 项目只用来组织会话和文件,不影响技能选择和参数。
设计详解
信息架构
| 入口 | 谁能看到 | 内容 |
|---|---|---|
| 对话(左侧会话) | 所有人 | 所有计算任务;右侧窗格打开对象 |
| 技能库 | 所有人 | 已启用的技能和工具、本机就绪状态 |
| 设置 | 所有人,只影响自己 | 模型连接、软件与资源(本机)、项目与数据、外观、更新 |
| 管理 | 批准人 | 技能审核、软件环境模板(实验室默认)、成员与角色、审计记录 |
审核不放进设置:设置是个人的、低风险、改了马上生效的地方;审核是少数人做的、高风险、要留记录的事。
分区原则:对话讲过程,右侧放对象
运行、结构、计算方法、计算单、流程、文件都是有编号的对象。对话里放对象的摘要卡,右侧以标签页打开完整版。
| 放在对话里 | 放在右侧窗格 |
|---|---|
| 需要你决定的事 | 3D 结构、完整曲线、日志 |
| 一句话结论 | 完整参数表单、修订对比 |
| 工具调用的单行记录 | 流程编排、运行依据 |
| 对象摘要卡、决定后的一行记录 | 文件预览 |
需要你决定的事必须在对话里;内容超过半屏、需要多次交互或持续更新的,放到右侧。
决策原则
标准:只看对话、不打开右侧,也能安全地做出决定。
| 情况 | 对话里 | 右侧 |
|---|---|---|
| 简单确认 | 一个输入框或两个按钮,一步完成 | 不用 |
| 复杂补参 | 只列待确认项,显示"已填 7/7 · 待确认 1" | 完整表单,改动同步回对话 |
| 开始计算 | 关键信息和三个按钮 | 完整计算单,按钮是同一个操作 |
- 会改变决定的信息(缺失值、警告、演示标记、未确认来源)必须出现在对话里。
- 做完决定,卡片收成一行记录。
- 等待中的决定在输入框上方和左侧会话里都显示,按 Enter 确认当前项。
- 对话里出现新的待决定事项时,右侧不自动跳转。
对象与组件
- 每个对象一个组件、两种尺寸:对话里的紧凑版(静态快照),右侧的完整版(可交互)。
- 右侧窗格平时收起;运行开始时自动打开一次;窄屏上变成全屏的上层页面。
图样实现
- 图表和结构图由运行数据渲染,不由模型生成。Agent 只输出对象引用。
- 结构用 3Dmol.js(py3Dmol 用的就是它)读 POSCAR/CIF;曲线在对话里用后端 matplotlib 静态图,右侧可接入 Plotly 等可交互图表。
- 实时内容只保留一个实例,放在右侧。
流程编排的三层
| 层 | 位置 | 谁能操作 |
|---|---|---|
| 运行块:一次技能执行的进度 | 对话里 | 研究员查看 |
| 流程编排:步骤、参数传递、本次状态 | 右侧窗格,只读 | 研究员查看 |
| 技能审核:差异、审核清单、批准发布 | 管理 | 只有批准人 |
Agent 最多能起草技能草案;草案在扫描目录之外暂存,批准前不会被导入或执行。
软件与资源登记
- 按类型添加: 可执行程序、Python 环境、代码仓库或脚本、容器镜像、模型或数据文件、许可证或服务。标准软件只是带自动检测的预设。
- 技能只声明需要什么(如
vasp ≥ 6.0),不写路径;就绪状态由登记表自动算出。 - 两层取值: 实验室默认 → 本机覆盖。任务级的临时改动只能在计算单里改,并需要你批准。
- 自写程序: 每次运行记录 git 提交号或文件哈希;版本和审批时不同,计算单会提示。个人条目只在本机生效,共享需要管理员加入实验室模板。
- 边界: 设置里只放软件和资源,不放截断能、收敛判据这类科学参数,它们属于已审核的技能。
可信标记
- 参数来源:● 你提供或确认,○ 从对话提取、待确认,— 流程或工具默认。
- 演示:灰色斜线,结果、文件、导出都保留。
- 运行依据:技能版本、批准人、提示词版本、模型、软件路径和版本,随结果保存。
附录
图样是怎么做出来的
脚本和产物在 figures/:
| 图样 | 生成方式 |
|---|---|
| Ni–Mo 超胞(32 原子,4 个 Mo) | ASE 3.29 建 2×2×2 FCC 常规胞,按最远点选 4 个位点替换为 Mo(gen.py) |
| 3D 结构图 | py3Dmol 2.5(3Dmol.js)渲染 CIF,Chrome 截图(render3d.py) |
| 收敛曲线、趋势线、自洽失败曲线 | matplotlib 3.11(gen.py) |
Mo 位点不是真正的 SQS 优化结果;能量、受力、自洽迭代数据是样例数据。
与当前实现的差距
sqs_generate、jmatpro_creep、ml_predicted是演示实现;- 还没有桌面应用、HTTP 接口、项目、任务持久化和事件推送;
- 消息协议需要支持结构化部件(文字、工具调用、对象引用、批准请求);
- 工具 JSON 尚未声明软件需求,VASP 直接读取环境变量;软件登记表尚未实现;
- Resolve 尚未输出选型理由;技能审核和审计记录尚未实现。