본문 바로가기

인공지능

Dynamic Subagents란 무엇인가: Deep Agents에서 대규모 작업을 안정적으로 오케스트레이션하는 방법

728x90
반응형
728x170

 

Dynamic Subagents가 등장한 배경

에이전트가 더 복잡하고 큰 작업을 맡기 시작하면서 두 가지 문제가 반복적으로 드러났습니다.

첫째는 규모 확장에 대한 신뢰성 문제입니다.
에이전트는 판단을 기반으로 움직이기 때문에, 수백 개의 항목을 처리해야 할 때 스스로 범위를 줄이거나 일부만 처리하고 “충분하다”고 판단해버리는 경우가 발생합니다.

둘째는 컨텍스트 관리의 한계입니다.
작업이 길어질수록 중간 결과가 쌓이고, 이는 컨텍스트 윈도우를 압박해 전체 판단 품질을 떨어뜨립니다.

Dynamic Subagents는 이 두 문제를 해결하기 위해 등장한 개념입니다. 핵심은 “에이전트가 직접 모든 판단과 실행을 담당하지 않아도 되도록 구조를 바꾸는 것”입니다.

반응형

기존 서브에이전트 방식의 한계

Deep Agents는 이미 서브에이전트를 지원합니다.
서브에이전트는 다음과 같은 장점이 있습니다.

  • 메인 에이전트의 컨텍스트를 분리해 관리할 수 있음
  • 작업을 독립적인 단위로 위임 가능
  • 중간 결과를 메인 컨텍스트에서 분리 가능

하지만 기존 방식은 메인 에이전트가 서브에이전트를 하나씩 직접 호출하는 구조입니다. 이 방식은 소규모 작업에서는 충분히 동작하지만, 다음과 같은 상황에서 한계가 드러납니다.

  • 수백 개 이상의 서브에이전트를 동시에 생성해야 할 때
  • 작업 흐름이 조건 분기, 반복, 다단계 파이프라인으로 구성될 때
  • 병렬 처리 후 결과를 종합해야 할 때

즉, 서브에이전트 자체의 문제가 아니라 오케스트레이션 방식이 확장성의 병목이 됩니다.


Dynamic Subagents의 핵심 개념

Dynamic Subagents는 서브에이전트를 “툴 호출”이 아니라 코드로 오케스트레이션합니다.

기존 방식이

에이전트 → 서브에이전트 호출 → 응답 → 다음 호출

이라면, Dynamic Subagents는

에이전트 → 짧은 스크립트 작성 → 스크립트가 서브에이전트들을 제어

라는 구조를 가집니다.

에이전트는 자바스크립트 기반의 짧은 코드를 작성하고, 이 코드는 경량 인터프리터 안에서 실행됩니다. 이 과정에서 반복문, 조건문, 병렬 처리 같은 코드가 잘하는 구조적 제어를 그대로 활용할 수 있습니다.

대표적인 예가 대규모 문서 처리입니다.
300페이지 문서를 요약해야 할 때, 에이전트가 300번의 서브에이전트 호출을 판단으로 수행하는 대신, 단순한 반복문으로 모든 페이지를 빠짐없이 처리하도록 구조를 고정할 수 있습니다.

이로 인해 다음 두 가지가 가능해집니다.

  • 처리 범위의 결정성이 구조로 보장됨
  • 복잡한 작업 흐름을 안정적으로 재현 가능

코드 기반 오케스트레이션이 주는 이점

Dynamic Subagents가 제공하는 가장 큰 차별점은 신뢰성의 위치를 프롬프트에서 코드로 옮긴 것입니다.

1. 대규모 작업에서도 빠짐없는 처리

프롬프트 기반 지시는 “얼마나 처리했는지”를 에이전트의 판단에 맡깁니다.
반면, 반복문 기반 디스패치는 처리 범위가 구조적으로 고정됩니다.

이로 인해 “대충 충분히 처리했다”는 판단 자체가 개입할 여지가 줄어듭니다.

2. 복잡한 오케스트레이션의 안정성

병렬 실행, 다단계 파이프라인, 조건 분기 같은 흐름은
툴 호출을 순차적으로 재현하는 것보다 코드로 표현하는 편이 훨씬 안정적입니다.

Dynamic Subagents는 이 구조를 그대로 활용합니다.


Quickstart: Dynamic Subagents 사용 흐름

Dynamic Subagents를 사용하려면 두 가지가 필요합니다.

  • 작업을 위임할 서브에이전트
  • 에이전트가 코드를 실행할 수 있는 코드 인터프리터

Deep Agents는 QuickJS 기반의 경량 코드 인터프리터를 옵션으로 제공합니다.
해당 미들웨어를 활성화하면 에이전트는 자바스크립트 코드를 작성하고 실행할 수 있습니다.

서브에이전트는 기본 제공되는 범용 서브에이전트를 사용할 수도 있고,
특정 역할(리뷰어, 요약기, 분석가 등)에 맞게 커스텀 서브에이전트를 정의할 수도 있습니다.

Dynamic Subagents를 트리거하는 방법은 단순합니다.
프롬프트에 **“workflow”**라는 단어를 포함시키는 것입니다.

그러면 에이전트는 작업을 직접 수행하지 않고,
서브에이전트들을 어떻게 조합할지에 대한 오케스트레이션 코드를 먼저 작성합니다.


task()를 통한 서브에이전트 호출 방식

코드 인터프리터 환경에서는 task()라는 전역 함수가 제공됩니다.
이 함수는 코드 내부에서 서브에이전트를 디스패치하는 역할을 합니다.

task()는 다음 정보를 받습니다.

  • 수행할 작업 설명
  • 사용할 서브에이전트 유형
  • 선택적으로 결과 스키마

결과 스키마를 지정하면, 서브에이전트의 응답은 구조화된 객체로 반환됩니다.
이 객체는 다음 단계의 조건 분기, 필터링, 종합 로직에 그대로 활용할 수 있습니다.

이 방식 덕분에 에이전트는
“결과를 읽고 판단하는 역할”에 집중하고,
“어떻게 반복하고 분기할지”는 코드에 맡길 수 있습니다.


대표적인 오케스트레이션 패턴 6가지

Dynamic Subagents는 고정된 기능이 아니라, 작업 형태에 따라 자연스럽게 나타나는 패턴을 중심으로 이해하는 것이 좋습니다.

1. Classify and Act

먼저 항목을 분류한 뒤, 분류 결과에 따라 서로 다른 서브에이전트로 전달하는 방식입니다.

  • 활용 사례: 고객 문의 분류, 로그 트리아지
  • 특징: 혼합된 입력을 효율적으로 처리 가능

2. Fanout and Synthesize

동일한 작업을 여러 항목에 병렬로 수행한 뒤, 결과를 하나로 합칩니다.

  • 활용 사례: 디렉토리 전체 코드 리뷰, 문서 일괄 분석
  • 특징: 병렬 처리와 결과 종합에 적합

3. Adversarial Verification

1차 결과를 생성한 뒤, 독립적인 서브에이전트로 재검증하는 2단계 구조입니다.

  • 활용 사례: 보안 감사, 컴플라이언스 점검
  • 특징: 거짓 양성(False Positive) 최소화

4. Generate and Filter

여러 대안을 생성한 뒤, 평가 기준에 따라 최적의 결과만 남깁니다.

  • 활용 사례: 아키텍처 설계, 리팩터링 전략 비교
  • 특징: 탐색적 문제 해결에 유리

5. Tournament

결과를 쌍대 비교 방식으로 평가하며, 승자를 단계적으로 선별합니다.

  • 활용 사례: 스타일 선택, 주관적 기준 비교
  • 특징: 상대 평가에 강점

6. Loop Until Done

새로운 결과가 더 이상 나오지 않을 때까지 반복 수행합니다.

  • 활용 사례: 전체 탐색, 의존성 분석
  • 특징: 작업 범위가 불확실할 때 완전성 확보

728x90

Dynamic Subagents는 에이전트를 더 똑똑하게 만드는 기능이라기보다,
에이전트를 더 믿을 수 있게 만드는 구조적 변화에 가깝습니다.

  • 코드가 처리 범위를 보장하고
  • 서브에이전트가 컨텍스트를 분산하고
  • 메인 에이전트는 판단과 종합에 집중합니다

이는 에이전트가 스스로를 호출하고, 작업을 분해하고, 다시 조립하는
재귀적 구조를 자연스럽게 가능하게 합니다.

Dynamic Subagents는 이러한 구조를 Deep Agents 환경에서 실질적으로 사용할 수 있게 만든 구현입니다.

300x250

https://www.langchain.com/blog/introducing-dynamic-subagents-in-deep-agents

 

Introducing Dynamic Subagents in Deep Agents

Dynamic subagents let AI agents orchestrate work at scale using code instead of tool calls. Learn how programmatic orchestration in Deep Agents guarantees coverage, handles fan-out, and unlocks reliable multi-step, complex agent pipelines with common orche

www.langchain.com

728x90
반응형
그리드형