피드로 돌아가기
Dev.toBackend
원문 읽기
AWS Lambda와 Durable Functions을 조합해 다중 에이전트 시스템을 단일 프로세스에서 분산 아키텍처로 전환하여 장애 격리, 독립 스케일링, 체크포인팅 기반 재개 기능 확보
Multi-Agent Systems on AWS Lambda with Durable Functions
AI 요약
Context
기존 다중 에이전트 구매 조정 시스템은 단일 프로세스에서 실행되어 프로세스 충돌 시 전체 작업을 재시작해야 했고, 장애 격리가 불가능했으며, 각 전문가 에이전트를 독립적으로 스케일할 수 없었다. 인프라 레벨의 내구성과 병렬 처리 지원이 필요했다.
Technical Solution
- Strands Agents SDK와 Durable Execution SDK를 역할별로 분리: Strands는 AI 추론(계획 에이전트, 합성 에이전트) 담당, Durable SDK는 인프라(체크포인팅, 병렬 디스패치, 중단/재개) 담당
- 전문가 에이전트를 tool() 콜백(in-process)에서 context.invoke()를 통한 개별 Lambda 함수로 변환하여 각 전문가가 독립적으로 스케일 가능하도록 구조화
- 조정자 함수(Coordinator)의 실행 흐름을 context.step('plan') → context.parallel('specialists') → context.step('synthesize') → context.waitForCallback() 구조로 설계하여 각 단계마다 자동 체크포인팅 적용
- 병렬 실행으로 전환: 순차 실행(이전 방식)에서 context.parallel()로 5개 전문가를 동시 호출하되, 개별 전문가 실패는 다른 결과를 보존
- RISEN 프롬프트 구조(Role, Instructions, Steps, Expectation, Narrowing) 유지하되, 조정자 프롬프트만 2단계(계획/합성)로 분리하여 체크포인트 전에 라우팅 로직 확정
- 사람 승인 워크플로우에 waitForCallback() 적용: 승인 대기 중 컴퓨트 비용 발생 안 함
Key Takeaway
다중 에이전트 시스템을 분산 환경으로 배포할 때는 AI 추론 로직과 내구성 인프라를 명확히 분리하고, 라우팅 로직을 코드 대신 프롬프트에 인코딩하되, Durable Functions의 체크포인트-재개 패턴을 활용하면 부분 실패 후 정확한 지점에서 재개할 수 있다.
실천 포인트
AWS Lambda 환경에서 다중 에이전트 워크플로우를 구축할 때, 조정자를 Durable Function으로 정의하고 context.invoke()와 context.parallel()을 조합하면 각 전문가 에이전트의 독립적 스케일링, 부분 장애 격리, 그리고 중단점 이후 정확한 재개가 가능하다. 또한 context.step()으로 외부 API 호출을 감싸면 함수 재실행 시에도 중복 실행 없이 정확히 한 번만 실행되도록 보장할 수 있다.