← 返回文章

把 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 案例中,项目说明至少要固定哈密顿量约定:

H=ti,j,σ(ciσcjσ+h.c.)+Uininiμini. H = - t \sum_{ \langle i, j \rangle, \sigma } \left( c_{ i \sigma }^{ \dagger } c_{ j \sigma } + \mathrm{h.c.} \right) + U \sum_i n_{ i \uparrow } n_{ i \downarrow } - \mu \sum_i n_i .

还要写清楚晶格几何、边界条件、掺杂定义和使用的算法。若不同脚本对空穴掺杂采用 p=1np = 1 - np=n1p = n - 1 两种符号,后面的图和文字都会出错。

research-project-status 在关口末尾做第一次只读检查:项目是否已有可运行基线,输入数据是否存在,验收标准是否足够具体。缺少这些条件时,工作流停在这里。

第 1 关:把文献变成证据图

research-topic-literature 负责专题检索与物理综合。它需要保留论文中的方程、假设、参数区间、方法限制、竞争机制和来源。针对条纹序问题,单纯收集“观察到条纹”或“没有条纹”的摘要没有用。每篇论文都要落到相同字段:

字段示例
模型单带 Hubbard,U/t=8U / t = 8
几何Lx×LyL_x \times L_y 圆柱,开放与周期混合边界
状态点掺杂、温度或基态条件
方法DMRG、AFQMC、张量网络或其他方法
主要观测量N(q)N( \mathbf{q} )、实空间密度、关联长度、配对关联
数值控制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 接收上一关的证据图,输出竞争假设、决定性观测量、控制实验和最小判别计算。对于条纹问题,可以先列出四个假设:

假设可观察预期最关键控制
H1H_1:热力学极限存在自发条纹序结构因子峰随体积标度,序参量外推保持非零多个宽度和长宽比
H2H_2:开放边界诱导 Friedel 振荡调制振幅离开边界后衰减,周期或相位依赖边界开放与周期边界对照
H3H_3:有限温度交叉行为关联长度增长但未形成稳定长程序温度扫描和关联长度比
H4H_4:数值算法尚未收敛信号随 bond dimension、步长或采样长度变化多初态和误差参数扫描

Skill 还要规定什么结果能否定每个假设。只写“支持 H1H_1 的证据”会诱导确认偏误;把反例条件提前写入项目说明,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 不信任已有笔记、模型回答或论文中的中间步骤。它从约定和目标量出发重建推导,逐项检查符号、量纲、边界项、近似条件和极限。

条纹序的电荷结构因子可以定义为

N(q)=1Nsi,jeiq(rirj)(ninˉ)(njnˉ). N( \mathbf{q} ) = \frac{ 1 }{ N_s } \sum_{ i, j } e^{ \mathrm{i} \mathbf{q} \cdot ( \mathbf{r}_i - \mathbf{r}_j ) } \left\langle ( n_i - \bar n )( n_j - \bar n ) \right\rangle .

审计不能停在公式看起来熟悉。它要追问:

  • NsN_s 是总格点数、测量窗口内格点数,还是只计算圆柱中心区域?

  • 是否先减去非均匀密度背景?开放边界下用全局 nˉ\bar n 会不会把 Friedel 振荡写进峰值?

  • 傅里叶变换采用哪些允许动量?纵向开放边界是否需要正弦基或窗口函数?

  • 外推量使用 N(Q)/NsN( \mathbf{Q} ) / N_s、其平方根,还是实空间长距离平台值?

  • 误差传播是否考虑不同 rrq\mathbf{q} 点之间的协方差?

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

实现阶段的最低要求包括:

  1. 所有运行参数进入配置文件,禁止只留在 shell 历史中。
  2. 原始输出记录代码版本、随机种子、环境和时间。
  3. 分析脚本不改写 data/raw/
  4. 单元测试检查公式,实现测试检查数据流,回归测试检查已知物理极限。
  5. 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 适合建立交互分析工具。你可以拖动最小系统尺寸、温度窗口或修正指数,观察拟合结果如何变化。交互探索帮助研究者找到脆弱结论;论文采用的最终参数仍要写回固定脚本和配置。

有限尺寸标度可以从

ξLL=F ⁣((ggc)L1/ν,Lω) \frac{ \xi_L }{ L } = F\!\left( ( g - g_c ) L^{ 1 / \nu }, L^{ -\omega } \right)

开始。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-docsskill-installerskill-creatorplugin-creatorplugin-management:plugin-management核对产品行为,安装、创建、封装和管理研究工作流(第 0、10 关)
研究问题与项目记忆research-problem-decomposerresearch-project-initresearch-project-statusresearch-notebook定义可证伪问题,维护项目契约、状态和证据日志(第 0 至 10 关)
文献与知识结构research-topic-literaturegraphifypdf:pdfscience-skill:vision建立带来源的证据表,抽取论文,读图并构建知识图谱(第 1、4、7、8 关)
理论与科学审计audit-and-rederivereferee-modescience-skill:paper-review-helper独立重建推导,攻击结论,记录结构化审稿问题(第 2、4、8 关)
编程与协作codexawesome-agent:team-leader修改和审查代码,拆分有明确所有权的并行任务(第 3、5 关)
外部界面与数据browser:control-in-app-browsercomputer-use:computer-usespreadsheets:Spreadsheetsspreadsheets:excel-live-control查询网页和本地应用,整理独立表格或操作已连接的 Excel(第 1、5、6 关)
分析与视觉academic-plottingvisualize:visualizeimagegen生成可复现科学图、交互探索和非数据型概念视觉(第 7、9 关)
论文与交付science-skill:hardworking-paper-writerstop-slop:stop-slopdocuments:documentspresentations:Presentationstemplate-creator:template-creator逐句写作、去除模板腔,生成文档、报告和可复用模板(第 9 关)
网站与发布sites:sites-buildingsites:sites-hosting建立并发布伴随网站、参数浏览器和复现入口(第 9 关)

Workflow 的核心是产物交接

要让这些 Skills 形成研究闭环,必须规定它们如何交换可信产物。文献 Skill 的输出要进入问题拆解;问题拆解的判据要进入项目配置;推导要产生代码测试;模拟要留下原始数据和 provenance;分析图要能回到脚本;审稿问题要更新主张账本;成熟的检查流程才适合固化为 Skill。

这条链上有四条不能省的规则:

  1. 每项主张都指向数据、推导或来源。
  2. 每次数据变换都保留输入、脚本、参数和输出。
  3. 每个关口都写明放行条件和停止条件。
  4. AI 生成的解释接受独立推导、替代分析或人工复核。

研究者仍然负责模型是否合理、近似是否受控、数据是否能区分竞争机制,以及论文应该声称什么。Codex 通过 Skills 执行检查、维护记录并生成可审查产物。两者分工清楚以后,AI 才能进入凝聚态科研的核心流程,而不只是停留在写代码和润色文字的外围。