당신의 AI Agent가 47단계에서 충돌했습니다. 이제 무엇을 해야 할까요?
I’m happy to translate the article for you, but I’ll need the text you’d like translated. Could you please paste the content (or the portion you want translated) here? I’ll keep the source line exactly as you provided and preserve all formatting, markdown, and code blocks.
2026년 크래시 복구 현황
LangGraph: "Did you configure PostgresSaver?" No? Start over.
CrewAI: "Limited state management, failures typically require restart."
Swarm: "No persistence, state exists only in memory."
Raw Python: Hope you wrote checkpoint logic yourself.
모든 프레임워크마다 자체적인 답변이 있습니다—대부분은 단순히 “미리 생각했어야 했어요.”라고 말합니다.
체크포인트 비용
LangGraph에서 충돌 복구를 원한다면, 명시적인 체크포인트 코드를 추가해야 합니다:
from langgraph.checkpoint.postgres import PostgresSaver
DB_URI = "postgresql://user:pass@localhost/checkpoints"
checkpointer = PostgresSaver.from_conn_string(DB_URI)
graph = builder.compile(checkpointer=checkpointer)
config = {"configurable": {"thread_id": job_id}}
state = graph.get_state(config)
if state and state.values:
result = graph.invoke(None, config) # resume
else:
result = graph.invoke(initial_state, config) # start fresh
- DB 연결을 관리합니다.
- LangGraph가 업데이트될 때 스키마 마이그레이션을 처리합니다.
- 오래된 체크포인트를 정리합니다.
- 상태 객체의 형태가 바뀔 때 발생하는 직렬화 오류를 처리합니다.
이 체크포인트 비용은 에이전트의 핵심 작업에는 아무런 영향을 주지 않는 코드이며, 단지 충돌 후 에이전트를 살아 있게 유지합니다. 다른 프레임워크(예: CrewAI)로 전환하려면 이 로직을 다시 작성하거나 복제해야 합니다.
내구성이 기본이라면?
Agent starts ETL pipeline via durable intent:
[1/4] Extract - done (state in platform)
[2/4] Validate - done (state in platform)
[3/4] Transform - done (state in platform)
[4/4] Load - CRASH
Restart agent:
Platform redelivers the intent (state: IN_PROGRESS)
Agent resumes. No data lost. No code changes.
에이전트 자체는 무상태로 남으며, 플랫폼은 프로세스 메모리 대신 PostgreSQL(또는 다른 내구성 저장소)에 상태를 저장합니다.
코드 내
from axme import AxmeClient, AxmeClientConfig
import os
client = AxmeClient(AxmeClientConfig(api_key=os.environ["AXME_API_KEY"]))
intent_id = client.send_intent({
"intent_type": "intent.pipeline.process.v1",
"to_agent": "agent://myorg/production/pipeline-agent",
"payload": {
"pipeline": "etl-customers",
"steps": ["extract", "validate", "transform", "load"],
"total_rows": 500_000,
},
})
result = client.wait_for(intent_id)
PostgresSaver도 없고, 체크포인트 DB도 없으며, 스키마 마이그레이션도 없고, 커스텀 직렬화도 없습니다. 에이전트가 충돌하면 인텐트는 현재 단계에 머무릅니다; 에이전트를 재시작하면 플랫폼이 이를 다시 전달합니다(기본적으로 최대 세 번 시도).
비교 결과
| 기능 | LangGraph | CrewAI | Swarm | AXME |
|---|---|---|---|---|
| 지속성 | PostgresSaver (opt‑in) | None | None | Default |
| 체크포인트 코드 | 20+ lines | N/A | N/A | 0 lines |
| DB 설정 | You manage | N/A | N/A | Managed |
| 충돌 후 재개 | From last checkpoint | Start over | Start over | Automatic |
| 크로스‑머신 지원 | No (local state) | No | No | Yes |
| 프레임워크 락‑인 | LangGraph only | CrewAI only | Swarm only | Any |
핵심 통찰
내구성은 선택적인 부가 기능이 아니라 기본값이어야 합니다. Stripe의 API를 호출할 때, 가능한 프로세스 충돌에 대비한 체크포인트 코드를 작성하지 않아도 됩니다—Stripe가 재시도, 멱등성, 그리고 내구성 있는 상태를 처리합니다. 에이전트 작업도 동일하게 작동해야 합니다: 작업을 제출하면, 플랫폼이 충돌, 재시작, 혹은 네트워크 장애에도 불구하고 작업이 완료되도록 보장합니다.
시도해 보기
4단계 파이프라인을 제출하고, 중간에 에이전트를 종료한 뒤 다시 시작하여 자동으로 재개되는 과정을 보여주는 작동 예제:
github.com/AxmeAI/ai-agent-checkpoint-and-resume
AXME 로 구축 – 에이전트 작업을 위한 내구성 있는 실행. 알파 릴리스; 피드백 환영합니다.