Anthropic Research 中文翻译

create: 2026-03-23
update: 2026-08-10
author: thinkycx
title: 【译】长时间运行的 Claude:面向科学计算的多日智能体工作流
description: 作者: Siddharth Mishra-Sharma(Discovery 团队研究员)
category: translation
tags: anthropic, research, translation, scientific-computing, agentic-coding

长时间运行的 Claude:面向科学计算的多日智能体工作流

hero

作者: Siddharth Mishra-Sharma(Discovery 团队研究员)

发布日期: 2026-03-23


核心前提

随着模型在长时间跨度任务上的能力显著提升,研究者现在可以指定高层目标,让智能体团队自主工作,将原本需要数天、数周甚至数月的项目压缩到数小时完成。

过去一年中,模型在长时间跨度任务上的表现有了质的飞跃。这意味着我们可以将多日智能体编码工作流应用于科学计算任务。

适合这种模式的科学任务类型包括:

任务类型 特征
重新实现数值求解器 范围明确,成功标准清晰
将遗留科学软件(如旧版 Fortran)转换为现代语言 人工监督可以是间歇性的
根据参考实现调试大型代码库 可持续自主推进

Anthropic 的 C 编译器项目证明了这一模式的可行性——Claude 跨越约 2,000 个会话构建了一个能编译 Linux 内核的 C 编译器。

具体案例

本文的核心示例是使用 Claude Opus 4.6 实现一个可微分的宇宙学 Boltzmann 求解器 这段数值代码通过演化光子、重子、中微子和暗物质在早期宇宙中的耦合方程,预测宇宙微波背景辐射(CMB)的统计属性。

现有的 Boltzmann 求解器包括 CLASSCAMB。可微分版本(基于 JAX)能够启用基于梯度的推断方法,大幅加速参数估计。JAX 提供自动微分和加速器兼容性(GPU),几乎无需额外开发成本。

作者指出这个任务"并不在我的核心科学领域"——他有高层面的了解但不具备在合理时间内完成的专业能力。拥有该专业知识的团队已经在 JAX 中构建了可微分求解器,通常需要数月到数年的研究者投入时间。

这个任务与 C 编译器项目在结构上不同。Boltzmann 求解器是"一个深度耦合的流水线——早期宇宙复合建模中一个微小的数值误差或不佳的近似,都可能微妙地影响下游的所有结果。"这需要"贯穿整个链条进行因果追踪,并借助领域知识"来调试。

计算环境使用运行 SLURM 任务调度器的 HPC 集群。


起草计划并在本地迭代

研究者应将大部分时间投入到编写根目录下的 CLAUDE.md 文件中——Claude 会特殊对待这个文件,始终保持在上下文中。

Claude 可以在工作过程中编辑这些指令。项目的早期 CLAUDE.md 展示了整体计划和设计决策。精度目标设定为与 CLASS 对比达到 0.1% 一致性——"这是两个经典 Boltzmann 代码 CLASS 和 CAMB 之间的典型一致性水平。"


跨会话的记忆

进度文件(按惯例为 CHANGELOG.md)是"智能体的便携式长期记忆,充当一种实验室笔记。"

一个好的进度文件应跟踪:

  • 当前状态
  • 已完成的任务
  • 失败的方法及其失败原因
  • 关键检查点的精度表
  • 已知局限性

失败的方法尤为重要——"没有这些记录,后续会话会重新尝试相同的死胡同。"示例条目:"尝试对扰动 ODE 使用 Tsit5,系统太刚性。改用 Kvaerno5。"

项目的 Changelog


测试预言机

长时间运行的自主科学工作"关键依赖于智能体有办法知道自己是否在取得进展。"

可选方案包括:
- 参考实现
- 明确的可量化目标
- 现有测试套件

在本示例中,Claude 被指示使用 CLASS C 源代码作为参考实现,构建并持续运行单元测试。


Git 作为协调机制

智能体应在每个有意义的工作单元完成后进行 commit 和 push。 这提供了:

  • 可恢复的历史记录
  • 本地可见的进度
  • 防止工作丢失的保护(例如计算配额用完时)

示例 CLAUDE.md 指令:"在每个有意义的工作单元后进行 commit 和 push。每次 commit 前运行 pytest tests/ -x -q。永远不要 commit 破坏现有通过测试的代码。"

对于引导,你可以 SSH 到集群重新提示或更新指令,或者让本地的 Claude Code 实例 SSH 进去运行命令。


执行循环

在计算节点上的终端复用器(tmux)中启动 Claude Code 会话。 因为运行在 tmux 中,你可以分离、合上笔记本电脑,然后偶尔检查进度。

示例 SLURM 作业脚本:

#!/bin/bash
#SBATCH --job-name=claude-agent
#SBATCH --partition=GPU-shared
#SBATCH --gres=gpu:h100-32:1
#SBATCH --time=48:00:00
#SBATCH --output=agent_%j.log
cd $PROJECT/my-solver
source .venv/bin/activate
export TERM=xterm-256color
tmux new-session -d -s claude "claude; exec bash"
tmux wait-for claude

作业启动后,附加到 tmux 会话,给出方向(例如"读取 CHANGELOG.md 并接手下一个任务"),然后分离。重新附加:

srun --jobid=JOBID --overlap --pty tmux attach -t claude

Ralph 循环

当前模型可能出现"智能体惰性"——被要求完成复杂的多部分任务时,它们有时会找借口在完成前停下来。

Ralph 循环是一个 for 循环,当智能体声称完成时将其踢回上下文,询问是否真的完成了。类似模式还有 GSD领域特定变体,以及 Claude Code 原生的 /loop 命令。

Ralph 可以通过 /plugin 安装。示例调用:

/ralph-loop:ralph-loop "Please keep working on the task until the success criterion of 0.1% accuracy across the entire parameter range is achieved." --max-iterations 20 --completion-promise "DONE"

Claude 最多迭代 20 次,直到以"DONE"咒语保证任务完成。


结果

Claude 从零开始在这个项目上工作了数天,达到了与参考 CLASS 实现的亚百分比一致性。

精度随时间的变化

随着智能体在代码库上工作,精度随时间达到亚百分比水平的路径。

开发过程的观察:

  • 轨迹"笨拙",测试覆盖有缺口(最初只在单个基准参数点测试)
  • 犯了基础性错误,如"被规范约定绊倒,或花数小时追踪一个宇宙学家一眼就能发现的 bug"
  • 持续朝着既定目标推进

学习副效应: 作者"通过观看 git commit 历史,出乎意料地学到了很多关于 Boltzmann 求解器的知识。"commit 日志"读起来像一个快速、超级字面化的博士后的实验室笔记。"

局限性: 生成的求解器"不是生产级别的","在每个参数区间都未能达到与参考 CLASS 实现的可接受精度。"


核心要点

指标 数值
使用模型 Claude Opus 4.6
精度目标 与 CLASS 0.1% 一致性
C 编译器项目会话数 ~2,000
SLURM 请求配额 48 小时,1x H100-32 GPU
Ralph 循环最大迭代 20 次
完成时间 数天
时间压缩比 数月/年 → 数天

核心结论: "智能体驱动的开发可以将数月甚至数年的研究者工作压缩到几天。"

文章以这一关于机会成本的观察作结:"你每一个没有让智能体为你工作的夜晚,都是白白浪费的潜在进展。"


致谢

Eric Kauderer-Abrams(同行评审),Xander Balwit、Ethan Dyer 和 Rebecca Hiscott(有益反馈)。


参考链接

资源 链接
METR 时间跨度 https://metr.org/time-horizons/
C 编译器项目 https://www.anthropic.com/engineering/building-c-compiler
Clax 代码库 https://github.com/smsharma/clax
CLASS 代码 http://class-code.net/
CAMB https://camb.info/
早期 CLAUDE.md https://github.com/smsharma/clax/blob/6a6b2330cf25edded1bb31ec57a0091aa794a5d3/CLAUDE.md
CHANGELOG.md https://github.com/smsharma/clax/blob/main/CHANGELOG.md
CLASS 源代码(GitHub) https://github.com/lesgourg/class_public
可微分求解器论文 1 https://arxiv.org/abs/2311.03291
可微分求解器论文 2 https://arxiv.org/abs/2602.15104
Ralph 循环 https://ghuntley.com/loop/
GSD https://github.com/gsd-build/get-shit-done
领域特定变体(论文) https://arxiv.org/abs/2603.20179
Get Physics Done https://github.com/psi-oss/get-physics-done
Commit 日志 https://github.com/smsharma/clax/commits/main/