몇 시간 동안 실행하고, 외부 도구를 호출하며, 인프라 실패를 견뎌야 하는 AI 에이전트는 지속 가능한 실행이 필요합니다. 즉, 진행 상황을 자동으로 체크포인트로 저장하고 중단된 지점에서 다시 시작할 수 있어야 합니다. 지속성 작업 스케줄러 및 지속성 작업 프로그래밍 모델은 에이전트 코드가 필요하지 않도록 상태 관리, 검사점 및 분산 조정을 처리하는 이 인프라를 제공합니다.
이 프로그래밍 모델을 사용하면 .NET, Python, Java 및 JavaScript/TypeScript에서 표준 프로그래밍 구문(루프, 조건부, 오류 처리)을 사용하여 복원력 있는 상태 저장 에이전트 워크플로를 빌드합니다. 런타임은 상태를 유지하며 실패에서 자동으로 복구됩니다.
Durable Task는 에이전트 프레임워크가 아니며 Microsoft Agent Framework, LangChain, 또는 직접적인 LLM API 호출을 포함한 모든 AI 에이전트 프레임워크와 함께 작동합니다. 에이전트 논리에 집중합니다. 지속성 작업은 대규모로 안정적인 실행을 처리합니다.
이 문서에서는 다음에 대해 알아봅니다.
- AI 에이전트에 대해 지속성 실행이 해결하는 프로덕션 문제
- 지속성 작업 프로그래밍 모델에서 지원하는 에이전트 워크플로 패턴
- 지속성 작업 기술 스택이 Azure 다른 에이전트 워크플로 옵션과 비교하는 방법
Tip
빌드를 시작할 준비가 되셨나요? 코드 샘플을 보려면 Agentic 애플리케이션 패턴으로 이동하거나, 즉시 통합할 수 있는 Microsoft Agent Framework에 대한 Durable Task 확장을 사용해 보세요.
생산상의 문제들을 내구성 실행으로 해결
프로덕션의 AI 에이전트는 지속성 실행이 해결하는 몇 가지 문제에 직면합니다.
- 장기 실행 상태 저장 세션 - 휴먼 인 더 루프 상호 작용, 다단계 추론 및 도구 보강 워크플로는 에이전트를 몇 시간, 일 또는 몇 주 동안 활성 상태로 유지할 수 있습니다. 에이전트는 모든 단계에서 보존해야 하는 상태(대화 기록, 중간 결과, 보류 중인 결정)를 누적합니다.
- 비용이 많이 드는 토큰 사용 - 많은 양의 LLM 토큰을 처리하는 것은 비용이 많이 들고 시간이 많이 걸립니다. 제한 속도는 워크플로 중반에 에이전트를 느리게 할 수 있습니다. 중간에 오류가 발생하면 이미 사용된 토큰과 이미 소요된 시간이 손실됩니다.
- 인프라 중단 - 컴퓨팅 다시 시작, 배포, 규모 확장 이벤트 및 일시적인 오류로 인해 에이전트 세션이 중단될 수 있습니다. 복구가 없으면 에이전트는 처음부터 다시 시작하여 이전에 사용한 모든 토큰을 다시 사용하고 완료된 모든 작업을 반복해야 합니다.
지속성 실행은 다음과 같은 문제를 해결합니다.
- 자동 체크포인트 — 지속성 작업 런타임은 모든 상태 전환(LLM 응답, 도구 호출 결과, 제어 흐름 결정)을 지속성 스토리지에 저장합니다.
- 마지막 검사점에서 다시 시작 - 오류가 발생하면 정상 VM에서 실행이 자동으로 다시 시작됩니다. 완료된 LLM 호출은 반복되지 않으므로 토큰 지출과 벽시계 시간이 모두 유지됩니다.
- 기본 제공 재시도 - 추가 코드 없이 LLM API, 외부 도구 및 다운스트림 서비스의 일시적인 오류를 백오프로 처리하는 구성 가능한 재시도 정책입니다.
에이전트 워크플로 패턴
Durable Task는 다음과 같은 두 가지 광범위한 범주로 분류되는 다양한 에이전트 워크플로 패턴을 지원합니다.
- 결정적 워크플로: 코드는 제어 흐름을 정의합니다. 표준 프로그래밍 구문을 사용하여 분기, 병렬 처리 및 오류 처리를 비롯한 단계 시퀀스를 작성합니다. LLM은 워크플로 내의 단계로 호출되지만 전체 흐름을 제어하지는 않습니다.
- 에이전트 지향 워크플로(에이전트 루프): LLM은 제어 흐름을 구동합니다. 에이전트는 호출할 도구, 순서 및 작업이 완료된 시기를 결정합니다. 도구와 지침을 제공하지만 에이전트는 런타임에 실행 경로를 결정합니다.
두 범주 모두 지속성 실행의 이점을 활용하며 동일한 애플리케이션에서 결합할 수 있습니다. 코드 샘플에서 지원되는 패턴을 자세히 알아보려면 에이전트 애플리케이션 패턴을 참조하세요.
Azure 에이전트 워크플로 옵션 비교
지속성 작업 기술 스택 외에도 Azure 에이전트 워크플로를 빌드하기 위한 몇 가지 옵션이 있습니다. 각 옵션은 제어 흐름, 프로그래밍 언어 지원, AI 프레임워크 통합, 호스팅, 상태 관리 및 대상 그룹에 대한 요구 사항에 따라 서로 다른 강점과 장단분이 있습니다. 다음 표에서는 요구 사항에 맞는 항목을 결정하는 데 도움이 됩니다.
| 역량 | 지속성 작업 | 에이전트 프레임워크 워크플로 | Logic Apps 에이전트 루프 |
|---|---|---|---|
| 제어 흐름 | 명령형(코드로 정의됨) | 그래프 기반(코드 정의) | 선언적(디자이너/JSON) |
| 언어들 | .NET, Python, Java, TypeScript/JS | .NET, Python | 비주얼 디자이너/JSON |
| AI 프레임워크 지원 | Any(의미 체계 커널, LangChain, AutoGen, direct API) | 에이전트 프레임워크에 최적화됨 | 기본 제공 AI 커넥터 |
| 호스팅 | Azure Functions 또는 호스트 | Any; 일류 Foundry 호스트 에이전트 | Logic Apps 관리 서비스 |
| 상태 저장소 | 지속성 작업 스케줄러(관리됨) | 사용자 고유 가져오기(검사점 관리자) | Logic Apps 실행 환경(관리됨) |
| 에이전트 지향 워크플로 | 직접 빌드하거나 Durable Task 확장 기능을 사용하세요. | 기본 제공 | 에이전트 루프 작업 |
| 대상 그룹 | 백 엔드 개발자 | 애플리케이션 개발자 | 통합/하위 코드 사용자 |
| 장기 실행 작업. | 일류(영원까지의 시간) | 개발자가 제어하는 체크포인트를 통해 | 상태가 저장된 워크플로만 (최대 90일) |
| 오류 복구 | 자동 | 설명서 | 자동 |
| 관찰 가능성 | Scheduler 대시보드, OpenTelemetry | OpenTelemetry, 사용자 지정 시각화 | Azure Monitor, Logic Apps 진단 |