장시간 실행 가능한 클로드를 통한 과학 계산

애너티픽은 다일간의 에이전트 기반 코딩 워크플로우가 복잡한 과학 계산 작업을 자동화할 수 있음을 입증했으며, 이는 수개월에 걸친 연구자 노력을 며칠로 압축할 수 있음을 보여줍니다. 지속 가능한 메모리, 테스트 오라클, 특정 오케스트레이션 패턴을 활용한 클로드 오퍼스 4.6를 사용해, 도메인 전문가가 아닌 사용자가 참조 구현체와 비교해 1퍼센트 미만의 정확도로 차별 가능한 우주론적 볼츠만 해법기를 처음부터 구현하는 데 성공했습니다.

과학을 위한 자율 에이전트 워크플로우

수치 해법기 재구현, 구형 포트란 코드를 현대 언어로 변환, 또는 대규모 코드베이스 디버깅과 같은 과학 계산 작업은 일반적으로 명확한 목표와 성공 기준을 갖추고 있어 자율 에이전트에 적합합니다. 병렬화 가능한 작업과 달리, 과학적 파이프라인은 종종 깊이 결합되어 있어, 한 단계에서 작은 수치 오류가 하류로 전파될 수 있습니다. 이는 인과 관계를 추적하고 도메인 지식을 활용하며 참조 구현체를 사용해 차이를 이분법적으로 분석할 수 있는 순차적 에이전트 접근이 필요합니다.

장시간 실행 에이전트를 위한 기술적 프레임워크

며칠에 걸쳐 자율적인 작업을 가능하게 하기 위해, 애너티픽은 몇 가지 핵심 아키텍처 구성 요소를 식별했습니다.

프로젝트 지침 (CLAUDE.md)

지침은 루트 디렉터리에 있는 CLAUDE.md 파일에 코드화됩니다. 클로드는 이 파일을 지속 가능한 컨텍스트로 간주하며, 전체 계획을 참조하고 프로젝트가 진화함에 따라 이를 업데이트합니다. 우주론적 해법기 예제에서는 참조 구현체인 CLASS와의 기능 완전성 일치 및 정확도 목표 0.1% 달성이 목표로 설정되었습니다.

지속 가능한 메모리 (CHANGELOG.md)

에이전트가 실패한 시도를 반복하지 않도록 하기 위해, CHANGELOG.md 파일이 이동 가능한 장기 메모리 역할을 합니다. 이 파일은 다음을 추적합니다:

  • 현재 상태와 완료된 작업.
  • 실패한 접근 방식과 실패 이유 (예: 강한 페르터베이션 ODE에서 Tsit5에서 Kvaerno5로 전환).
  • 주요 체크포인트에서의 정확도 표.
  • 알려진 제약 사항.

테스트 오라클

자율적인 진전은 "테스트 오라클"에 의존합니다. 이는 에이전트가 자신의 작업을 검증할 수 있는 방법을 의미합니다. 과학적 코드의 경우, 이는 일반적으로 참조 구현체, 측정 가능한 목표, 또는 기존 테스트 세트입니다. 이 프로젝트에서는 클로드가 CLASS C 소스를 참조로 사용하여 지속적으로 단위 테스트를 구축하고 실행했습니다.

Git을 통한 조율

Git은 진전을 모니터링하고 복구 가능성을 보장하는 데 사용됩니다. 에이전트는 의미 있는 작업 단위를 완료한 후 pytest가 통과하면 커밋하고 푸시하도록 지시되며, 이는 파괴적인 변경 사항이 커밋되지 않도록 보장합니다.

실행 및 오케스트레이션

HPC 통합

계산 집약적인 작업의 경우, 클로드 코드는 SLURM 작업 스케줄러를 사용하는 HPC 클러스터에서 tmux와 같은 터미널 멀티플렉서 내에서 실행될 수 있습니다. 이는 인간 사용자가 자주 연결을 끊고 다시 연결해 프로세스를 조정하거나 GitHub를 통해 진행 상황을 확인할 수 있도록 합니다.

랄프 루프 (Ralph Loop)

"에이전트 게으름"—복잡한 작업이 완전히 완료되기 전에 모델이 멈추는 현상—을 극복하기 위해, 애너티픽은 "랄프 루프"를 활용합니다. 이는 에이전트가 완료를 주장할 때마다 재프롬프트를 유도하는 for 루프 오케스트레이션 패턴입니다. 에이전트가 정말로 완료되었는지 확인합니다.

제공된 예제에서는 플러그인을 통해 특정 성공 기준으로 랄프 루프가 호출되었습니다:

/ralph-loop:ralph-loop "전체 매개변수 범위에서 0.1% 정확도 성공 기준을 달성할 때까지 계속 작업하세요." --max-iterations 20 --completion-promise "DONE"

결과 및 함의

이 프레임워크를 사용해, 클로드 오퍼스 4.6는 여러 일에 걸쳐 clax 프로젝트를 처음부터 구현했으며, 결국 참조 구현체인 CLASS와 1퍼센트 미만의 일치를 달성했습니다. 에이전트의 경로는 "거친" 것으로 나타났습니다—테스트 커버리지의 공백과 게이지 표기법에 대한 초보적인 실수 등이 있었지만, 목표에 지속적으로 진전을 보였습니다.

이 실험은 에이전트 기반 개발이 과학 소프트웨어 개발의 시간 흐름을 크게 단축시킬 수 있음을 시사합니다. 저자는 잘 정의된 프로젝트에 에이전트를 실행하지 않는 것이 이제는 잠재적 진전의 실질적인 손실로 이어진다고 지적합니다.

Sources

관련

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch