把 Codex 变成凝聚态物理研究工作台:用一条 Workflow 串起全部 Skills
以二维 Hubbard 模型的条纹序问题为例,把当前 Codex Skills 串成一条从选题、文献、推导、数值实验到论文交付和流程复用的凝聚态科研工作流。
凝聚态物理研究很少败在某一行代码上。更常见的问题发生在环节之间:文献使用的哈密顿量和程序实现差一个约定,有限尺寸数据混入不同的收敛阈值,图画得很平滑却没有保存筛选规则,论文结论又比数值证据多走了一步。
Codex 的 Skills 适合管理这些接缝。一个 Skill 把任务的输入、步骤、检查项、输出格式和停止条件写成可复用流程。多个 Skills 只有通过研究产物互相交接,才能形成有效的 AI for Research 工作流。
本文用一个具体问题贯穿全程:
二维掺杂 Hubbard 模型中观察到的电荷条纹,能否在热力学极限保持,还是由边界、有限尺寸或数值误差造成?
我们从一句宽泛想法出发,走到文献证据表、可证伪假设、独立推导、模拟代码、原始数据、有限尺寸标度、论文预审、报告和项目专用 Skill。当前环境中的 32 个 Skills 都会进入这条流程。并非每个研究项目都需要同时调用它们;有些 Skill 只在数据格式、软件界面或交付形式满足特定条件时启用。
Skill 是工作流模块
按照 OpenAI 的说明,一个 Skill 是包含指令和资源的文件夹。核心文件 SKILL.md 定义任务边界,旁边可以放参考资料、脚本、模板和示例。Codex 先读取名称与简介,任务匹配后再加载完整指令。研究者也可以用 $skill-name 显式指定某个 Skill。
Skills 和工具承担不同职责。浏览器负责打开页面,PDF 工具负责提取文件内容,绘图库负责生成图;Skill 决定何时使用它们、如何核对结果以及必须留下哪些产物。若课题组规定“所有有限尺寸外推必须扫描最小尺寸和拟合窗口”,这个要求应进入 Skill,而不是依赖研究者每次临时提醒 Codex。
本文采用下面这条主线:
研究边界
→ 文献证据图
→ 可证伪问题
→ 项目契约
→ 独立推导
→ 可复现实现
→ 参数扫描与原始数据
→ 分析、作图和交叉检查
→ 反方审计
→ 论文、报告与伴随网站
→ 项目专用 Skill / Plugin
research-notebook 负责沿途记录证据和决策,research-project-status 在每个关口判断项目是否具备进入下一阶段的条件。它们构成整条流程的纵向轨道。
第 0 关:确认环境、权限和研究边界
研究开始前,Codex 需要知道自己能读取什么、能修改什么、哪些资料属于项目事实。
openai-docs 负责核对 Codex、Skills、Plugins 和 OpenAI API 的当前用法。涉及产品行为时应查官方资料,不能靠旧提示词或模型记忆猜测。plugin-management:plugin-management 检查现有插件、权限、依赖和连接状态;缺少通用 Skill 时,skill-installer 可以从受信来源安装。research-project-init 随后读取仓库中的代码、README、脚本和研究说明,建立项目级上下文。
这一关应产生四项结果:
| 产物 | 内容 |
|---|---|
| 研究范围 | 模型、参数区间、目标观测量和明确排除的问题 |
| 数据边界 | 哪些目录可读写,哪些数据不得上传或离开本机 |
| 工具清单 | 已安装 Skills、可用软件、连接器和缺失依赖 |
| 项目说明 | 背景、假设、目录、运行方式、验证标准和责任人 |
在 Hubbard 案例中,项目说明至少要固定哈密顿量约定:
还要写清楚晶格几何、边界条件、掺杂定义和使用的算法。若不同脚本对空穴掺杂采用 与 两种符号,后面的图和文字都会出错。
research-project-status 在关口末尾做第一次只读检查:项目是否已有可运行基线,输入数据是否存在,验收标准是否足够具体。缺少这些条件时,工作流停在这里。
第 1 关:把文献变成证据图
research-topic-literature 负责专题检索与物理综合。它需要保留论文中的方程、假设、参数区间、方法限制、竞争机制和来源。针对条纹序问题,单纯收集“观察到条纹”或“没有条纹”的摘要没有用。每篇论文都要落到相同字段:
| 字段 | 示例 |
|---|---|
| 模型 | 单带 Hubbard, |
| 几何 | 圆柱,开放与周期混合边界 |
| 状态点 | 掺杂、温度或基态条件 |
| 方法 | DMRG、AFQMC、张量网络或其他方法 |
| 主要观测量 | 、实空间密度、关联长度、配对关联 |
| 数值控制 | bond dimension、截断误差、自相关时间、符号平均值 |
| 作者结论 | 原文支持的最窄表述 |
| 我们的判断 | 与本项目问题相容、冲突或无法比较 |
browser:control-in-app-browser 可以打开论文网页、补充材料和数据仓库。pdf:pdf 提取与检查 PDF 中的正文、公式和表格。science-skill:vision 读取相图、结构因子热图、谱函数和实验装置图。当资料只存在于本机文献管理器或桌面软件中,computer-use:computer-use 可以操作界面;若数据库提供 API、连接器或命令行工具,应优先使用结构化接口。
graphify 把论文、代码说明和读图结果组织为知识图谱。节点可以是模型、方法、参数区间、观测量和结论,边则记录“使用”“支持”“冲突”“只在此范围成立”等关系。图谱的价值在于暴露不可比较的结果。例如,一篇论文研究宽度为 4 的圆柱基态,另一篇研究有限温度方格点阵,两者不能因为都出现电荷峰就合并成一条证据。
这一阶段的交接物是 literature/evidence-table、来源文件和知识图谱。每个结论都要指向论文页码、图号或数据链接。research-notebook 只记录会改变研究设计的发现,不复制整篇文献摘要。
第 2 关:把争论改写成可证伪问题
research-problem-decomposer 接收上一关的证据图,输出竞争假设、决定性观测量、控制实验和最小判别计算。对于条纹问题,可以先列出四个假设:
| 假设 | 可观察预期 | 最关键控制 |
|---|---|---|
| :热力学极限存在自发条纹序 | 结构因子峰随体积标度,序参量外推保持非零 | 多个宽度和长宽比 |
| :开放边界诱导 Friedel 振荡 | 调制振幅离开边界后衰减,周期或相位依赖边界 | 开放与周期边界对照 |
| :有限温度交叉行为 | 关联长度增长但未形成稳定长程序 | 温度扫描和关联长度比 |
| :数值算法尚未收敛 | 信号随 bond dimension、步长或采样长度变化 | 多初态和误差参数扫描 |
Skill 还要规定什么结果能否定每个假设。只写“支持 的证据”会诱导确认偏误;把反例条件提前写入项目说明,Codex 才能按相同标准处理正结果和负结果。
这一关的最小输出是一页研究契约:
问题:电荷条纹在二维热力学极限是否稳定?
主要观测量:N(q)、实空间 C_c(r)、关联长度比、外推序参量。
竞争解释:自发序、边界效应、有限温度、数值未收敛。
必须完成的控制:边界、尺寸、长宽比、初态、误差阈值。
放行条件:至少两个相互独立的观测量给出相容结论。
referee-mode 可以在此时做一次轻量预审,专门寻找遗漏的竞争解释。研究者确认研究契约后再进入代码阶段。
第 3 关:把研究契约写进仓库
research-project-init 根据研究契约整理项目结构,避免把输入、缓存、派生数据和论文图混在一起。一个可用的目录可以写成:
PROJECT.md 研究问题、假设、流程与验收标准
research.md 证据、解释、失败与决策
literature/ 来源清单、证据表和知识图谱
theory/ 推导、符号约定和估计量定义
configs/ 可版本控制的参数文件
src/ 模拟和分析代码
tests/ 极限、对称性和回归测试
data/raw/ 不改写的原始输出
data/derived/ 带生成记录的派生数据
figures/scripts/ 可复现绘图程序
figures/output/ 论文和报告使用的图
manuscript/ 论文源文件与回复材料
talks/ 组会、会议和答辩材料
research-notebook 从这时开始持续工作。它记录参数选择的理由、影响判断的结果、失败尝试和来源。它不记录每条命令,也不覆盖旧结论。若新证据推翻旧方案,日志保留变化发生的原因。
research-project-status 充当关口检查器。每次恢复项目时,它先回答五个问题:当前研究问题是什么,已有证据是什么,哪些验证已通过,最大不确定性在哪里,下一项最小动作是什么。
当任务可以安全拆分时,awesome-agent:team-leader 负责定义子任务所有权和交接条件。例如,一名 agent 整理 DMRG 文献,一名 agent 检查结构因子估计量,另一名 agent 审查测试;它们不能同时修改同一文件,也不能互相覆盖未提交结果。多 agent 只提高并行吞吐量,不构成独立科学复核。关键推导仍要走下一关的独立重建。
第 4 关:独立重建理论与估计量
audit-and-rederive 不信任已有笔记、模型回答或论文中的中间步骤。它从约定和目标量出发重建推导,逐项检查符号、量纲、边界项、近似条件和极限。
条纹序的电荷结构因子可以定义为
审计不能停在公式看起来熟悉。它要追问:
-
是总格点数、测量窗口内格点数,还是只计算圆柱中心区域?
-
是否先减去非均匀密度背景?开放边界下用全局 会不会把 Friedel 振荡写进峰值?
-
傅里叶变换采用哪些允许动量?纵向开放边界是否需要正弦基或窗口函数?
-
外推量使用 、其平方根,还是实空间长距离平台值?
-
误差传播是否考虑不同 或 点之间的协方差?
Skill 应输出带编号的推导、假设清单、未决问题和可以转成代码测试的恒等式。例如,非相互作用极限、半填充粒子空穴对称性、总密度求和规则与小系统精确对角化都能提供测试基准。
science-skill:paper-review-helper 可以读取关键参考论文,逐段核对我们是否复现了作者的定义。science-skill:vision 用来确认论文图中采用的归一化和坐标范围,但研究者要以正文、补充材料或公开代码为准。
第 5 关:把推导变成可验证代码
codex Skill 适合调用 Codex CLI 对代码库做分析、重构和自动化编辑。输入不应是“写一个 DMRG 程序”,而应引用上一关产物:
$codex 在现有分析模块中实现 theory/charge_structure_factor.md
定义的估计量。保留当前数据格式;增加非相互作用极限、平移不变小系统
和开放边界窗口的测试;不要修改 raw data。
awesome-agent:team-leader 可以把工作拆成互不冲突的部分:
| 子任务 | 输入 | 输出 | 验收 |
|---|---|---|---|
| 估计量实现 | 带编号推导 | src/observables/ | 小系统测试通过 |
| 数据 schema | 参数与来源要求 | schema 和迁移脚本 | 旧数据可只读解析 |
| 有限尺寸分析 | 判别标准 | src/analysis/ | 合成数据恢复已知指数 |
| 回归测试 | 基线结果 | tests/ | 数值容差有物理依据 |
browser:control-in-app-browser 可以查询算法库的官方文档并测试本地 Web 界面。computer-use:computer-use 只在任务必须操作本机 GUI 软件时介入,例如某个没有命令行接口的仪器导出程序。spreadsheets:excel-live-control 只处理已经打开并与 Codex 连接的 Excel 工作簿;普通 CSV、TSV 或独立 .xlsx 文件交给 spreadsheets:Spreadsheets。
实现阶段的最低要求包括:
- 所有运行参数进入配置文件,禁止只留在 shell 历史中。
- 原始输出记录代码版本、随机种子、环境和时间。
- 分析脚本不改写
data/raw/。 - 单元测试检查公式,实现测试检查数据流,回归测试检查已知物理极限。
research-notebook记录会影响结果解释的实现选择。
research-project-status 在关口末尾检查基线能否从干净环境复现。测试失败或来源不明的数据不能进入大规模参数扫描。
第 6 关:运行最小判别实验
研究者先运行第 2 关定义的最小判别计算,再扩展参数网格。条纹案例可以从两个宽度、两种边界、两个 bond dimension 和多个初态开始。若这个小矩阵已经显示峰值随收敛参数剧烈变化,大规模尺寸扫描只会制造更多不可靠数据。
spreadsheets:Spreadsheets 负责检查独立数据文件中的 schema、单位、缺失值和重复任务。它可以把任务表、运行记录和结果摘要整理成工作簿。spreadsheets:excel-live-control 在课题组使用活动 Excel 工作簿追踪计算资源时更新状态,但科研原始数据仍保存在可版本化或可校验的文件中。
research-notebook 为每个改变判断的结果建立记录:
证据:L_y = 4 圆柱在 bond dimension 8000 时出现周期 4 电荷调制;
提升到 16000 后中心振幅下降 35%。
解释:当前结果更支持“未收敛或边界增强”,不足以外推自发序。
验证:更换初态后趋势保持;L_y = 6 尚未完成。
下一步:固定截断误差而非固定 bond dimension 比较两个宽度。
来源:配置、原始输出、分析脚本、图和代码提交。
research-project-status 汇总完成度和阻塞项。若数据缺少 provenance,Status 应把任务标记为待重跑,不让它悄悄进入论文图。
第 7 关:分析、可视化与交叉检查
academic-plotting 把派生数据转成可发表的 Matplotlib 图,并统一字体、尺寸、色彩、线型、开放标记和误差棒。它还应保存生成脚本与参数。条纹问题至少需要实空间密度、结构因子、收敛扫描和有限尺寸外推四类图。
visualize:visualize 适合建立交互分析工具。你可以拖动最小系统尺寸、温度窗口或修正指数,观察拟合结果如何变化。交互探索帮助研究者找到脆弱结论;论文采用的最终参数仍要写回固定脚本和配置。
有限尺寸标度可以从
开始。Codex 需要扫描最小尺寸、拟合窗口、是否包含修正项,以及数据协方差的处理方式。一次漂亮的数据塌缩不能代替稳定性分析。
science-skill:vision 在这里承担视觉质检:坐标轴与正文是否一致,误差棒是否可见,颜色在灰度打印下能否区分,面板标签是否重复,图注有没有遗漏归一化。graphify 把“原始数据 → 派生表 → 图 → 论文结论”的关系加入知识图谱。研究者随后可以追问某个结论依赖哪些尺寸、脚本和文献定义。
imagegen 只用于博客封面、概念示意或不承载数据的视觉材料。它不能生成或补齐谱函数、显微图、相图、误差棒和实验数据。概念图若进入论文或报告,也要明确标记为示意图。
这一关的放行条件包括:图可以从原始数据重建;筛选和拟合规则已经版本化;替代分析得到相容结论;每条图中结论都能回到数据和推导。
第 8 关:用反方视角审查结论
referee-mode 对整条论证发起攻击。它要寻找缺失控制、替代机制、样本选择、有限尺寸偏差和超出证据的措辞。对于“条纹序在热力学极限稳定”这句话,它应逐项检查:
- 宽度和长宽比是否足以支持二维外推。
- 结论是否由最小的两个系统主导。
- 周期或相位是否跟随边界钉扎场。
- 数值误差是否小于尺寸间差异。
- 电荷结构因子、实空间关联和关联长度是否给出相容结论。
- 其他竞争序是否改变相同参数区间的解释。
science-skill:paper-review-helper 按论文结构记录问题,区分致命问题、需要补充的控制、表达问题和引用问题。audit-and-rederive 回到被质疑的公式做第二轮独立推导。research-topic-literature 针对新出现的竞争解释补充来源,避免把整套文献检索重新做一遍。
研究者把审查结果写成“主张账本”:
| 主张 | 支持证据 | 反对证据 | 仍缺控制 | 当前可用措辞 |
|---|---|---|---|---|
| 宽度 4 与 6 出现相同波矢峰 | 图 3、表 S2 | 振幅随精度下降 | 宽度 8 未完成 | “观察到相容的短程条纹关联” |
| 热力学极限序参量非零 | 当前外推 | 拟合依赖最小尺寸 | 更大宽度与修正项 | 暂不声称长程序 |
research-notebook 记录结论为何收窄。research-project-status 依据主张账本判断项目适合投稿、需要补算,还是只能形成方法报告。
第 9 关:写作、文档、报告和公开交付
证据链稳定后,science-skill:hardworking-paper-writer 与作者逐句修改论文。它保留作者的术语和论证顺序,逐段处理摘要、结果、讨论与局限。stop-slop:stop-slop 删除空泛开头、机械排比、无证据的强调和模板化结尾。两者都不能提高主张账本中的证据等级。
documents:documents 生成或编辑 Word 文档,并通过渲染检查分页、公式、图注和交叉引用。pdf:pdf 检查最终 PDF 的字体嵌入、页面裁切、图像清晰度和文本提取。presentations:Presentations 把主张账本改写成组会或会议报告,每一页只承担一个论证任务。
template-creator:template-creator 把经过验证的论文回复信、组会模板、海报版式或数据报告制作成可复用模板。它适合稳定格式,不适合固化仍在变化的科学结论。
若项目需要伴随网站,sites:sites-building 可以建立参数浏览器、交互图、复现说明和数据字典;sites:sites-hosting 负责发布与托管。网站展示派生结果并链接原始数据、代码版本和许可证。它不能成为唯一的数据存档。imagegen 可以制作封面视觉,论文数据图继续来自分析脚本。
这一关的交接物至少包括论文源文件、最终 PDF、图表包、补充材料、报告和复现入口。每个公开主张都应在主张账本中有对应记录。
第 10 关:把有效流程固化成课题组能力
研究结束后,skill-creator 把重复出现的步骤写成项目专用 Skill。条纹项目可能沉淀出三个独立流程:
-
check-dmrg-convergence:读取运行元数据,比较截断误差、bond dimension、初态和扫掠次数,输出可放行或必须重跑的判断。 -
audit-finite-size-scaling:扫描最小尺寸、拟合窗口、修正项和协方差处理,生成稳定性报告。 -
build-claim-ledger:把论文中的主要主张映射到图、数据、推导、来源和缺失控制。
plugin-creator 可以把多个 Skills、参考模板和工具依赖封装成个人 Plugin。若 Plugin 需要连接文献库、集群任务系统或实验数据库,连接器提供授权数据与受控操作,Skill 规定调用顺序和验收标准。plugin-management:plugin-management 检查权限与依赖,skill-installer 负责安装经过审查的 Skill,openai-docs 核对当前的构建与分发方式。
这一阶段需要版本和测试。研究者准备应该触发 Skill 的请求、意思相同的间接请求、输入不完整的请求、不得触发的请求和边界案例。若描述错误导致 Skill 误触发,应修改触发范围;若 Skill 选对了任务却漏掉检查项,应修改流程正文。
经过这一步,下一位组员不必从聊天记录复制提示词。他可以直接调用经过验证的工作流,并得到相同结构的输入检查、分析结果和审计报告。
32 个 Skills 在这条 Workflow 中的位置
下面的清单用于核对覆盖范围。括号内标明首次进入主线的阶段;贯穿型 Skill 会在后续阶段重复出现。
| 类别 | Skills | 在流程中的职责 |
|---|---|---|
| Codex 与扩展管理 | openai-docs、skill-installer、skill-creator、plugin-creator、plugin-management:plugin-management | 核对产品行为,安装、创建、封装和管理研究工作流(第 0、10 关) |
| 研究问题与项目记忆 | research-problem-decomposer、research-project-init、research-project-status、research-notebook | 定义可证伪问题,维护项目契约、状态和证据日志(第 0 至 10 关) |
| 文献与知识结构 | research-topic-literature、graphify、pdf:pdf、science-skill:vision | 建立带来源的证据表,抽取论文,读图并构建知识图谱(第 1、4、7、8 关) |
| 理论与科学审计 | audit-and-rederive、referee-mode、science-skill:paper-review-helper | 独立重建推导,攻击结论,记录结构化审稿问题(第 2、4、8 关) |
| 编程与协作 | codex、awesome-agent:team-leader | 修改和审查代码,拆分有明确所有权的并行任务(第 3、5 关) |
| 外部界面与数据 | browser:control-in-app-browser、computer-use:computer-use、spreadsheets:Spreadsheets、spreadsheets:excel-live-control | 查询网页和本地应用,整理独立表格或操作已连接的 Excel(第 1、5、6 关) |
| 分析与视觉 | academic-plotting、visualize:visualize、imagegen | 生成可复现科学图、交互探索和非数据型概念视觉(第 7、9 关) |
| 论文与交付 | science-skill:hardworking-paper-writer、stop-slop:stop-slop、documents:documents、presentations:Presentations、template-creator:template-creator | 逐句写作、去除模板腔,生成文档、报告和可复用模板(第 9 关) |
| 网站与发布 | sites:sites-building、sites:sites-hosting | 建立并发布伴随网站、参数浏览器和复现入口(第 9 关) |
Workflow 的核心是产物交接
要让这些 Skills 形成研究闭环,必须规定它们如何交换可信产物。文献 Skill 的输出要进入问题拆解;问题拆解的判据要进入项目配置;推导要产生代码测试;模拟要留下原始数据和 provenance;分析图要能回到脚本;审稿问题要更新主张账本;成熟的检查流程才适合固化为 Skill。
这条链上有四条不能省的规则:
- 每项主张都指向数据、推导或来源。
- 每次数据变换都保留输入、脚本、参数和输出。
- 每个关口都写明放行条件和停止条件。
- AI 生成的解释接受独立推导、替代分析或人工复核。
研究者仍然负责模型是否合理、近似是否受控、数据是否能区分竞争机制,以及论文应该声称什么。Codex 通过 Skills 执行检查、维护记录并生成可审查产物。两者分工清楚以后,AI 才能进入凝聚态科研的核心流程,而不只是停留在写代码和润色文字的外围。