Claude Opus 4.6 用于科学计算的长时间运行智能体工作流

摘要

Anthropic 发布了一个工作流,让 Claude Opus 4.6 能够在 HPC 集群上作为长时间运行的自主编码智能体运行,在几天内完成一个可微分的宇宙学玻尔兹曼求解器,与 CLASS 参考实现相比,精度达到亚百分比级别。这表明,对于范围明确的科学任务,智能体代码生成可以将数月的专家工作压缩到数天。


为什么自主智能体现在适用于科学代码

结论:LLM 在长时程推理方面的最新改进使得智能体能够在极少人工监督下运行,将高层目标转化为可执行的研究程序。

科学家传统上逐步指导 AI 智能体。随着模型在长时程任务上的能力显著提升(参见 Metr 关于时间跨度的研究),一种新范式出现了:指定目标,启动一组智能体,让它们自主迭代。那些范围明确、具有清晰成功标准、并能容忍偶尔人工检查的任务——例如重新实现数值求解器或移植遗留 Fortran 代码——非常适合这种模式。

Anthropic 早期的 C 编译器项目在大规模上展示了这种方法(约 2,000 次 Claude 会话构建了一个能够编译 Linux 内核的编译器)。当前工作将这一模式应用于科学计算,其中单个顺序智能体配合子智能体即可处理紧密耦合的流水线。


项目概述:可微玻尔兹曼求解器

结论:Claude Opus 4.6 的任务是创建基于 JAX 的、可微分的宇宙学玻尔兹曼求解器,与 CLASS 参考实现的偏差小于 1%。

目标代码通过演化耦合的光子、重子、中微子和暗物质方程来预测宇宙微波背景(CMB)功率谱。可微分的实现支持基于梯度的推断,大幅加速 Planck 和 Simons 天文台等巡天的参数估计。

要点:

  • 作者 Siddharth Mishra‑Sharma 并非领域专家;目标是测试智能体能否在极少引导下成功。
  • 现有的 JAX 可微分求解器需要专家数月到数年的努力,且仅覆盖 CLASS 功能的一部分。
  • 成功指标是与 CLASS 在主要科学输出上达到 0.1% 的一致性,与典型的 CLASS–CAMB 一致性相当。

为什么自主智能体现在能用于科学代码

结论:LLM 在长时程推理方面的最新进展使智能体能够在极少人工监督下运行,将高层目标转化为可执行的研究程序。

科学家传统上逐步指导 AI 智能体。随着模型在长时程任务上的能力显著提升(参见 Metr 关于时间跨度的研究),一种新范式出现了:指定目标,启动一组智能体,让它们自主迭代。那些范围明确、具有清晰成功标准、并能容忍偶尔人工检查的任务——例如重新实现数值求解器或移植遗留 Fortran 代码——非常适合这种模式。

Anthropic 早期的 C 编译器项目展示了这种方法的规模化应用(约 2,000 次 Claude 会话构建了一个能够编译 Linux 内核的编译器)。当前工作将该模式应用于科学计算领域,其中单个顺序智能体配合子智能体即可处理紧密耦合的流水线。


项目概述:可微玻尔兹曼求解器

结论:Claude Opus 4.6 的任务是创建基于 JAX 的、可微分的宇宙学玻尔兹曼求解器,与 CLASS 参考实现的偏差小于 1%。

目标代码通过演化耦合的光子、重子、中微子和暗物质方程组来预测宇宙微波背景(CMB)功率谱。可微分的实现支持基于梯度的推断,大幅加速 Planck 和 Simons 天文台等巡天的参数估计。

要点:

  • 作者 Siddharth Mishra‑Sharma 并非领域专家;目标是测试智能体能否在最小引导下成功。
  • 现有的 JAX 可微分求解器需要数月到数年的专家努力,且仅覆盖 CLASS 功能的一部分。
  • 成功指标是与 CLASS 在主要科学输出上达到 0.1% 的一致性,与典型的 CLASS–CAMB 一致性相当。

规划与指令设计(CLAUDE.md)

结论:一份精心编写的 CLAUDE.md 文件,编码了交付物、设计决策和可变规则,是智能体的核心协调工件。

  1. 高层目标 – 实现与 CLASS 完全的功能对齐、完全可微分,并达到 0.1% 的精度目标。
  2. 迭代细化 – 研究者与 Claude 反复迭代,直到计划稳定;Claude 可在执行期间编辑 CLAUDE.md 以记录新见解。
  3. 位置 – CLAUDE.md 位于仓库根目录,Claude Code 会特殊对待它,使其在整个会话期间保持上下文。

项目的公开 CLAUDE.md 可在 GitHub 上获取(见链接文件)。它展示了计划如何从初始草图演变为详细路线图。


持久记忆:CHANGELOG.md 文件

结论:结构化的进度文件(CHANGELOG.md)充当代理的长期记忆,防止重复走入死胡同,并记录精度里程碑。

Claude 被指示记录:

  • 当前状态和已完成任务
  • 失败的方法及原因(例如,“Tsit5 ODE 过刚 → 改用 Kvaerno5”)
  • 关键检查点处的精度表
  • 已知限制

该变更日志是公开可见的,展示了其他研究人员可以审计的实验室笔记式历史。


测试预言机与回归安全

结论:一个可靠的测试预言机——此处为 CLASS C 源码——为智能体提供了客观信号,用以衡量进展并避免回归。

Claude 的任务是:

  • 生成单元测试,将 JAX 实现与 CLASS 输出进行比较。
  • 在每次代码更改后持续运行测试套件。
  • 随时间扩展测试覆盖范围(最初为单个基准参数点,后来为更广泛的网格)。

该预言机确保自主循环具有可量化的成功指标,而不是依赖开放式的科学发现。


基于 Git 的协调

结论:要求智能体在每个有意义的单元工作后提交,可创建可恢复、可审计的历史记录,并迫使智能体保持测试套件通过。

CLAUDE.md 中的典型指令片段:

Commit and push after every meaningful unit of work.
Run `pytest tests/ -x -q` before each commit.
Never commit code that breaks existing passing tests.

因此,Git 历史既充当进度仪表板,又充当计算分配意外终止时的安全网。


在 HPC 上的执行循环(SLURM + tmux)

结论:在 SLURM 分配的节点上的 tmux 会话中运行 Claude Code,可以实现真正的无人值守执行;研究人员可以分离会话并间歇性检查进度。

工作流程步骤:

  1. 在本地起草并定稿 CLAUDE.md。
  2. 提交一个 SLURM 作业,在 tmux 中启动 Claude Code。
  3. 附加到 tmux,给出初始指令(例如“阅读 CHANGELOG.md 并选择下一个任务”),然后分离。
  4. 根据需要重新附加以进行引导或检查日志。

帖子中包含一个示例 SLURM 脚本(此处为简洁起见省略),并展示了研究人员如何在排队时通过手机监控进度。


Ralph 循环:防范智能体惰性

结论:Ralph 循环反复提示智能体确认完成状态,防止长时间运行的任务过早终止。

实现细节:

  • 通过 Claude Code 中的 /plugin 安装 Ralph 插件。
  • 使用最大迭代次数(例如 20)和“DONE”终止标记调用 /loop。
  • 每次迭代后,循环都会询问智能体任务是否真正满足规范;如果不满足,智能体将继续。

这种模式缓解了“智能体惰性”现象,即模型为了避免进一步工作而声称任务已完成。


结果:精度轨迹与实践观察

结论:Claude 在几天内实现了与 CLASS 在 CMB 角功率谱上的亚百分比级一致性,尽管该求解器尚未达到生产就绪状态。

  • 精度:图表显示误差稳步下降,经过数次迭代后达到 < 1%。
  • 测试覆盖缺口:早期阶段仅测试单个基准参数点,限制了 bug 的检测。
  • 低级错误:代理偶尔会错误处理规范约定,并追踪领域专家一眼就能看出的死胡同式 bug。
  • 学习副作用:研究者通过阅读提交日志获得了大量领域知识,这些日志读起来像是一位勤奋博士后撰写的实验笔记。

虽然最终的求解器并未满足所有场景的精度要求,但该实验验证了自主代理可以将数月的专家工作压缩为几天,用于定义明确的科学软件任务。


对科学研究工作流程的启示

结论:当计算资源可用时,让代理通宵运行能带来可衡量的进展,将空闲计算时间转化为高效研究产出。

该实验表明科学家的时间分配方式可能发生转变:

  • 空闲代理的机会成本 – 不启动自主会话类似于不运行训练任务;它代表着错失进展。
  • 可扩展性 – 这种模式可以应用于其他具有明确参考实现和可量化成功指标的领域(例如数值 PDE 求解器、数据管道迁移)。
  • 人的角色 – 研究人员从逐步编码转向高层编排、计划细化和结果解读。

复现该工作流的要点清单

结论:以下清单涵盖了运行一个长期 Claude Code 项目所需的基本要素。

  1. 在 CLAUDE.md 文件中定义高层目标。
  2. 使用 CHANGELOG.md 进度日志设置持久记忆。
  3. 创建测试基准(参考实现或量化指标)。
  4. 配置 Git 钩子以强制提交并测试的纪律。
  5. 准备 HPC 环境(SLURM、tmux、Claude Code 二进制文件)。
  6. 安装 Ralph 插件并配置 /loop 终止条件。
  7. 启动任务,分离会话,并通过 Git 或偶尔的 SSH 进行监控。

按照这些步骤即可复现 Anthropic 展示的自主开发流水线。


完整的代码、变更日志和 CLAUDE.md 文件可在项目的 GitHub 仓库中公开获取。

Sources