긴 AI 작업이 중간에 무너지는 이유는 실행 상태가 없어서다. Temporal의 Durable Execution 개념으로 실패·멈춤·재개를 견디는 실행 구조를 배우고, 지금 당장 적용할 수 있는 RunLog + TaskState MVP를 설계한다.
먼저 RunLog와 TaskState를 만들자. 지금 당장 Temporal부터 설치할 필요는 없다.
AI 에이전트가 외부 API를 호출하고, 문서를 요약하고, 결과를 저장하는 긴 작업을 실행할 때 문제가 생긴다. 중간에 실패하면 처음부터 다시 시작해야 한다. 30분 걸리는 작업이 27분에 오류가 나면 다시 30분이 필요하다.
더 큰 문제는 실행 상태가 없다는 것이다. 어디까지 했는지, 어떤 결과가 나왔는지, 다음에 무엇을 해야 하는지가 메모리에만 있다가 프로세스가 죽으면 사라진다.
Temporal의 Durable Execution은 이 문제를 구조로 해결한다. 실행 이력을 이벤트 로그로 저장하고, 재시작 시 그 로그를 재생해 마지막 상태부터 이어간다.
모든 작업에 Temporal이 필요하지는 않다. 다음 조건 중 하나라도 해당되면 도입을 검토한다.
Temporal 설치 없이 시작하는 RunLog + TaskState
Temporal은 강력하지만 설치와 운영에 진입 장벽이 있다. 지금 당장은 개념을 내 작업 방식에 적용하는 것이 먼저다. RunLog와 TaskState 두 가지 구조만 만들어도 실행 지속성의 핵심을 얻을 수 있다.
| RunLog 필드 | 설명 |
|---|---|
task_name | 작업명 |
started_at | 시작 시각 |
input | 입력 값 |
steps_done | 완료된 단계 목록 |
completed_at | 완료 시각 |
failed_at | 실패 시각 및 이유 |
output | 최종 산출물 |
next_action | 다음에 할 일 |
| TaskState 필드 | 설명 |
|---|---|
current_status | 현재 상태 (진행중/완료/실패/보류) |
last_run_id | 마지막 RunLog ID |
next_action | 재개 시 시작할 액션 |
일반 스크립트는 결과를 만들지만 작업 상태를 보존하지 못한다. RunLog는 내가 어디까지 왔는지를 기억하는 가장 단순한 형태의 Durable Execution이다.