본문으로 건너뛰기

© 2026 Molayo

HN요약2026. 05. 26. 14:40

Show HN: Durable Swarm – 신뢰할 수 있는 AI 에이전트 구축을 위한 프레임워크

요약

Durable Swarm은 OpenAI Swarm에 내구 실행(durable execution) 기능을 추가하여 신뢰할 수 있는 멀티 에이전트 시스템을 구축하도록 돕는 프레임워크입니다. DBOS를 활용해 에이전트의 실행 상태를 Postgres에 저장함으로써, 시스템 중단 시에도 마지막 단계부터 자동으로 재개할 수 있는 회복 탄력성을 제공합니다.

핵심 포인트

  • OpenAI Swarm의 즉시 교체 가능한(drop-in) 확장 도구
  • DBOS를 통한 에이전트 워크플로 상태의 영구 저장
  • 서버 재시작 등 일시적 실패 시 마지막 단계부터 자동 재개
  • 복잡한 아키텍처 재설계 없이 신뢰할 수 있는 에이전트 구축 가능

Durable Swarm Logo

DurableSwarm: 신뢰할 수 있는 멀티 에이전트 오케스트레이션 (Multi-Agent Orchestration)

[!IMPORTANT]
DurableSwarm은 이제 DurableSwarm의 프로덕션 준비 단계(production-ready) 진화 버전인 DBOS Durable OpenAI Agents SDK 통합으로 대체되었습니다. 모든 프로덕션 사용 사례에 대해 Agents SDK로 마이그레이션하는 것을 권장합니다.

이 저장소는 OpenAI의 Swarm내구 실행 (durable execution) 기능을 추가하여 신뢰할 수 있는 (reliable) 멀티 에이전트 시스템을 구축할 수 있도록 돕습니다.

Durable Swarm은 Swarm을 즉시 대체할 수 있는 도구로, 에이전트 워크플로(agentic workflows)를 **어떠한 실패에도 회복 탄력성(resilient)**을 갖도록 만듭니다. 따라서 워크플로가 중단되거나 재시작되더라도 마지막으로 완료된 단계부터 자동으로 재개됩니다.
내부적으로는 DBOS를 사용하여 에이전트 워크플로의 실행 상태(어떤 워크플로가 현재 실행 중인지, 어떤 단계를 완료했는지)를 Postgres 데이터베이스에 영구적으로 저장(persist)합니다.

왜 내구 실행 (Durable Execution)인가?

멀티 에이전트 워크플로가 더 흔해지고, 더 오래 지속되며, 더 상호작용적이 됨에 따라 이를 신뢰할 수 있게 (reliable) 만드는 것이 중요해졌습니다.
만약 에이전트가 사용자의 입력을 기다리거나 복잡한 워크플로를 처리하는 데 몇 시간을 소비한다면, 서버 재시작과 같은 일시적인 실패(transient failures)에 대해 회복 탄력성을 가져야 합니다.
하지만 신뢰할 수 있는 멀티 에이전트 오케스트레이션은 쉽지 않습니다. SQS나 Kafka를 통해 에이전트 통신을 라우팅하는 것과 같은 복잡한 아키텍처 재설계가 필요하기 때문입니다.

내구 실행은 Swarm과 같은 프레임워크의 **사용 편의성 (ease of use)**을 유지하면서도 신뢰할 수 있는 에이전트를 작성할 수 있도록 도와줍니다.
핵심 아이디어는 Swarm 워크플로의 실행 상태를 Postgres 데이터베이스에 자동으로 영구 저장하는 것입니다.
그렇게 하면 프로그램이 중단되더라도 에이전트 워크플로를 마지막으로 완료된 단계부터 자동으로 재개할 수 있습니다.

Swarm을 내구성 있게 만들기 (Making Swarm Durable)

프로젝트에 Durable Swarm을 추가하려면, 다음 코드가 포함된 durable_swarm.py 파일을 생성하기만 하면 됩니다:

from swarm import Swarm
from dbos import DBOS, DBOSConfiguredInstance

...

그 다음 애플리케이션에서 Swarm 대신 DurableSwarm을 사용하세요. 이는 즉시 교체 가능한 (drop-in replacement) 방식입니다.

내부적으로 이는 Swarm의 메인 루프(main loop)를 내구성이 있는 워크플로 (durable workflow)로 선언하고, 각 채팅 완료 (chat completion) 또는 도구 호출 (tool call)을 해당 워크플로의 단계 (step)로 선언함으로써 작동합니다. DBOS는 워크플로의 입력값과 각 단계의 출력값을 Postgres 데이터베이스에 영구적으로 저장합니다. 따라서 워크플로가 중단되더라도, DBOS는 마지막으로 완료된 단계부터 자동으로 재개할 수 있습니다!

시작하기

시작하려면 SwarmDBOS를 설치하고 DBOS를 초기화하세요. Swarm은 Python >=3.10 버전이 필요합니다.

pip install dbos git+https://github.com/openai/swarm.git
dbos init --config

또한 OpenAI API 키가 필요합니다. 여기에서 키를 얻을 수 있습니다. 이를 환경 변수로 설정하세요:

export OPENAI_API_KEY=<your-key>

Durable Swarm을 테스트하려면 위와 같이 durable_swarm.py를 생성한 다음, 동일한 디렉토리에 다음의 간단한 프로그램을 포함하는 main.py 파일을 생성하세요:

from swarm import Agent
from durable_swarm import DurableSwarm

...

DBOS는 Postgres를 필요로 합니다.
이미 Postgres 서버를 보유하고 있다면, dbos-config.yaml을 수정하여 연결 정보를 설정하세요.
그렇지 않다면, Docker를 사용하여 Postgres를 시작하는 스크립트를 제공합니다:

export PGPASSWORD=swarm
python3 start_postgres_docker.py

마지막으로, 에이전트를 실행하세요:

> python3 main.py

Agent B is here,
...

기존 앱을 DurableSwarm으로 전환하기

다음 세 가지 간단한 단계로 기존의 모든 Swarm 앱을 DurableSwarm으로 전환할 수 있습니다:

  1. dbos를 설치하고 dbos init --config로 초기화합니다.
  2. 프로젝트에 durable_swarm.py를 추가합니다.
  3. 애플리케이션에서 Swarm 대신 DurableSwarm을 사용합니다.

[!NOTE]
DurableSwarm은 현재 스트리밍 (streaming)을 지원하지 않습니다.

예제

저희는 환불 처리 중 중단이 발생하더라도 자동으로 복구되는 내구성 있는 환불 에이전트 (refund agent)를 구축하기 위해 Durable Swarm을 사용하여 예제 앱을 만들었습니다.
여기에서 확인하거나 앱이 작동하는 이 GIF를 시청하세요:

Durable Swarm Demo

또한 기존 Swarm의 각 예제를 DurableSwarm으로 변환했습니다. examples/에서 확인하실 수 있으며, 각 예제의 README를 통해 더 자세한 내용을 학습할 수 있습니다.

  • basic: 설정 (setup), 함수 호출 (function calling), 핸드오프 (handoffs), 컨텍스트 변수 (context variables)와 같은 기본 사항에 대한 간단한 예제
  • triage_agent: 적절한 에이전트에게 전달하기 위한 기본적인 분류 (triage) 단계를 설정하는 간단한 예제
  • weather_agent: 함수 호출 (function calling)의 간단한 예제
  • airline: 항공사 컨텍스트에서 다양한 고객 서비스 요청을 처리하기 위한 멀티 에이전트 (multi-agent) 설정
  • support_bot: 사용자 인터페이스 에이전트 (user interface agent)와 여러 도구를 갖춘 헬프 센터 에이전트 (help center agent)를 포함하는 고객 서비스 봇

[!NOTE]
personal_shopper와 같이 아직 완성되지 않은 데모는 변환하지 않았습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0