Managed Deep Agents 공개 베타 시작

TMT

https://www.langchain.com/blog/managed-deep-agents-is-now-in-public-beta

오늘부터 Managed Deep Agents를 공개 베타로 사용할 수 있습니다. 기반 인프라를 직접 관리하지 않고도 프로토타입에서 프로덕션 규모까지 나아갈 수 있습니다. Python이나 TypeScript로 Deep Agent를 작성하고, 로컬에서 테스트한 뒤, 명령어 하나로 관리형 런타임에 배포하면 됩니다.

모델, 지침, 도구, 미들웨어, 서브에이전트 등은 직접 제어합니다. LangSmith는 영속성, 메모리 마운트, 스킬 로딩, 샌드박스 생명주기, 배포를 포함한 런타임을 책임집니다.

아래 명령어로 시작할 수 있습니다.

# Install from the ecosystem you use to author the agent
uv tool install managed-deepagents      # Python
# or: npm install -g managed-deepagents # TypeScript

mda init research-assistant
cd research-assistant
uv sync                                 # Python
# or: npm install                       # TypeScript

mda dev        # run locally in LangSmith Studio
mda deploy     # deploy to LangSmith

https://www.youtube.com/watch?v=yi-XZnAVFJg

Deep Agents는 직접 소유할 수 있는 오픈 소스 에이전트 하네스입니다

Deep Agents는 쓸모 있는 에이전트들에서 반복해서 관찰한 패턴을 중심으로 만들었습니다. 에이전트에는 대개 다음이 필요합니다.

  • 도구 호출
  • 작업 파일을 보관할 공간
  • 장시간 실행 동안 불어나는 컨텍스트 관리
  • 서브에이전트에 작업 위임
  • 도메인 특화 스킬 로딩
  • 민감한 동작을 하기 전에 멈추고 사람의 승인을 기다리기

이 모든 것을 저수준 프레임워크 위에 직접 만들 수도 있지만, 이 패턴은 충분히 흔해서 기업이 소유하고 통제할 수 있는 재사용 가능한 하네스로 제공되는 편이 맞습니다. Deep Agents가 바로 그 하네스입니다. 오픈 소스이고 특정 모델에 묶여 있지 않아서, 자신의 모델, 지침, 도구, 비즈니스 로직을 그대로 가져올 수 있습니다.

Managed Deep Agents는 이 하네스를 프로덕션까지 가져가도록 돕습니다

Deep Agents가 유능한 에이전트를 만들기 쉽게 해 준다면, Managed Deep Agents는 그 에이전트를 프로덕션에서 운영하기 쉽게 해 줍니다.

만들고 유지하는 데 비용이 많이 드는 프로덕션 인프라는 대신 처리해 주고, 에이전트를 고유하게 만드는 부분은 계속 사용자의 통제 아래 둡니다. 덕분에 모든 에이전트에 공통으로 필요한 인프라를 또 만드는 대신, 프롬프트, 도구, 미들웨어, 아이덴티티 규칙, 평가, 도메인 로직 같은 에이전트의 동작에 시간을 쓸 수 있습니다.

  • 내구성 있는 실행(durable execution): 장시간 실행되는 에이전트가 작업을 잃지 않고 멈췄다가 재시도하고 재개할 수 있습니다
  • 스트리밍: 에이전트가 일하는 동안 사용자가 진행 상황을 볼 수 있습니다
  • 영속성: 스레드 상태가 턴, 재시작, 장애를 넘어 유지됩니다
  • 샌드박스: 에이전트가 격리된 환경에서 파일을 다루고, 코드를 실행하고, CLI를 쓸 수 있습니다
  • 평가(evals): 배포 전후로 동작, 도구 사용, 상태 변화를 테스트할 수 있습니다
  • 채널: 에이전트가 Slack 같은 도구 안에서 사용자를 만날 수 있습니다
  • 메모리: 에이전트가 대화를 넘나들며 지속되는 컨텍스트와 선호를 지니고 다닐 수 있습니다
  • 아이덴티티: 에이전트가 올바른 사용자 컨텍스트와 접근 경계 안에서 동작할 수 있습니다

Managed Deep Agent는 저장소 안에 두는 코드 우선(code-first) 프로젝트입니다. 에이전트를 이루는 모든 기본 요소를 단순한 디렉터리 하나로 깔끔하게 정리할 수 있습니다.

my-agent/
  agent.py | agent.ts | agent.tsx
  pyproject.toml | package.json    # project dependencies
  instructions.md                  # prompt synced to Context Hub
  identity.py | identity.ts        # auth, thread scoping, memory scoping
  memory.py | memory.ts            # define your agent's memory
  tools/                           # custom tools
  channels/                        # entry points like Slack and GitHub
  middleware/                      # custom middleware
  schedules/                       # managed cron schedules
  connectors/                      # managed cron schedules
  skills/                          # skills synced to Context Hub
  sandbox/                         # sandbox configuration
  evals/                           # agent evals

프로젝트를 작성하고 mda deploy를 실행하면, Managed Deep Agents가 프로젝트를 컴파일하고, 배포가 관리하는 컨텍스트를 LangSmith Context Hub에 동기화하고, 빌드를 업로드한 뒤, 호스팅되는 LangSmith 배포를 만들어 줍니다.

MDA의 모습은 다음과 같습니다.

Image

LangSmith Deployment 위에 만들어졌습니다

대부분의 프로덕션 인프라는 요청이 짧게 끝나고 상태가 없다고 가정합니다. 에이전트는 이 두 가정을 자주 깨뜨립니다. 에이전트는 몇 분, 몇 시간, 심지어 며칠씩 실행되곤 합니다. 승인을 기다리며 멈췄다가 사용자가 답하면 재개해야 할 수도 있고, 일하는 동안 진행 상황을 스트리밍하고, 인프라가 재시작되어도 상태를 잃지 않고 복구해야 할 수도 있습니다. 내구성 있는 스레드, 영속 메모리, 취소, 재시도 동작이 필요할 수 있고, 모델 호출, 도구 호출, 파일, 오류, 런타임 상태 전반에 걸친 추적 가능성이 필요할 수도 있습니다.

이런 인프라를 처음부터 만들려면 몇 달, 길게는 몇 분기가 걸릴 수 있고, 만든 뒤에도 계속 유지 보수해야 합니다. 내구성 있는 실행, 스트리밍, 사람의 승인, 인증, 스케줄링, 대화 상태는 모두 영속성, 재시도, 타임아웃, 신뢰성에 얽힌 예외 상황을 낳고, 이는 사용자 경험과 에이전트의 쓸모에 곧바로 영향을 줍니다.

Managed Deep Agents는 여러 팀이 이미 프로덕션 에이전트 운영에 쓰고 있는 것과 동일한 LangSmith Deployment Agent Server 위에 만들어졌습니다. 제품용 에이전트에 필요한 운영 패턴들을 Deep Agents에 맞게 방향이 정해진 런타임으로 묶어 낸 것입니다.

그래서 프로덕션 기본 요소들이 처음부터 갖춰진 채로 제공됩니다.

Image

코드 실행과 파일 시스템 작업을 위한 샌드박스

쓸모 있는 에이전트 상당수는 파일을 살펴보고, 결과물을 쓰고, 테스트를 돌리고, 의존성을 설치하고, CLI를 호출하고, 코드를 안전하게 실행할 격리된 작업 환경이 필요합니다.

Deep Agents는 이런 작업을 위한 샌드박스 백엔드를 지원합니다. Managed Deep Agents에서는 LangSmith Sandboxes를 온전한 기본 기능으로 지원하도록 만들었습니다.

샌드박스는 코드 몇 줄로 설정할 수 있습니다.

from managed_deepagents import define_sandbox

sandbox = define_sandbox(
    provider="langsmith",
    scope="thread",
)

기본값으로는 내구성 있는 스레드마다 각자의 샌드박스가 생깁니다. 코딩 에이전트처럼 사용자 대화나 작업 단위로 격리된 작업 공간이 필요한 에이전트에 잘 맞습니다. 에이전트 프로세스가 여러 스레드에서 샌드박스 하나를 공유해야 한다면 범위를 agent로 설정할 수도 있습니다.

Managed Deep Agents를 쓰면 샌드박스의 프로비저닝, 생명주기, 정리를 직접 관리하지 않아도 에이전트에게 통제된 작업 공간이 마련됩니다. 샌드박스 활동은 LangSmith에 추적으로 남기 때문에, 실행이 성공했든 실패했든 무슨 일이 있었는지 들여다볼 수 있습니다.

준비 작업 없이 쓰는 Harbor 평가

에이전트의 동작을 검증하려면 프롬프트와 기대 답변만 평가해서는 부족합니다. 최종 답에 이르기까지 에이전트가 어떤 행동을 했는지도 확인해야 합니다. 평가(evals)가 필요한 이유가 여기에 있습니다. 예를 들면 이런 질문들입니다.

올바른 도구를 호출했는가? 올바른 파일을 수정했는가? 기대한 산출물을 만들었는가? 최종 작업 공간의 상태가 과제와 맞아떨어지는가? 코드나 파일을 다루는 에이전트라면, 이런 상태 기반 검사가 최종 메시지에만 점수를 매기는 것보다 유용할 때가 많습니다.

Managed Deep Agents는 이 워크플로에 Harbor를 사용합니다. Harbor 태스크는 에이전트에 지시를 주고, 격리된 환경에서 실행한 뒤, 결과로 남은 파일이나 상태를 검증기로 채점합니다.

보통 어려운 부분은 Harbor가 실행할 수 있는 형태로 에이전트를 패키징하는 일입니다. Managed Deep Agents는 이 패키징을 짧은 터미널 명령 몇 개로 대신 처리해 줍니다.

mda evals init
mda evals compile

mda evals init은 저장소에 커밋해 두는 Harbor 태스크를 evals/ 아래에 만듭니다. mda evals compile.mda/evals/ 아래에 Harbor로 넘길 산출물을 빌드하는데, 여기에는 컴파일된 에이전트 아티팩트, Harbor가 에이전트를 실행할 때 쓰는 어댑터, Harbor 잡 설정 예시가 들어 있습니다.

Harbor 자체는 여전히 직접 실행합니다. 로컬 Docker에서 돌리거나, 직접 구성한 다른 Harbor 환경에서 돌리면 됩니다. 그래서 평가는 이식 가능하게 유지됩니다. Managed Deep Agents는 프로덕션 준비가 된 에이전트를 Harbor에서 바로 쓸 수 있는 아티팩트로 잇는 다리를 놓아 줍니다.

에이전트를 배포한 뒤에는 LangSmith에서 평가를 관리하고 프로덕션 동작을 모니터링할 수 있습니다. 모든 실행이 LangSmith에 추적으로 남으므로, 프로덕션에서의 실패가 미래의 테스트 케이스가 되어 피드백 루프가 닫힙니다.

채널은 일이 벌어지는 도구 안으로 에이전트를 데려갑니다

채널은 에이전트를 사용자에게 드러내는 통로입니다. Managed Deep Agents는 채널을 기본 기능으로 지원해서, 에이전트를 Slack 같은 여러 채널에 어떻게 연결할지 쉽게 정의할 수 있습니다. channels/ 아래에 파일 하나만 추가하면, 런타임이 제공자의 이벤트 엔드포인트를 마운트하고, 제공자 서명을 검증하고, 아이덴티티 정보를 붙여 에이전트를 호출하고, 대화가 시작된 그 자리에서 답장까지 할 수 있습니다.

Slack이라면 채널 파일 하나 정의하는 것으로 충분할 수 있습니다.

from managed_deepagents import channels

channel = channels.slack(
    on=["app_mention", "direct_message"],
    auto_reply=True,
)

채널 덕분에 에이전트는 별도의 연동 서비스 없이 Slack 같은 시스템에서 이벤트를 받고 응답할 수 있습니다. GitHub에 코멘트를 다는 코드 리뷰 에이전트나 Slack에서 응답하는 지원 또는 운영 에이전트처럼, 사용자와 협업하는 에이전트에 특히 유용합니다. 팀이 이미 업무를 논의하고 있는 바로 그곳에서 에이전트를 태그해 부를 수 있습니다.

스레드를 넘어 지속되는 메모리

스레드 상태는 에이전트가 대화 하나를 관리하는 데 도움이 되지만, 에이전트에는 스레드 하나보다 오래가는 컨텍스트가 필요할 때가 많습니다. 메모리는 대화를 넘나들며 지니고 다닐 수 있는 지속적인 선호와 컨텍스트를 에이전트에 제공합니다.

Managed Deep Agents는 모든 배포에 우선 에이전트 범위의 메모리를 제공합니다. 메모리 동작은 memory.pymemory.ts에 정의하고, 런타임은 Context Hub를 저장소 삼아 메모리를 뒷받침합니다. 실행 중에 에이전트는 /memories/ 아래의 메모리 파일을 읽고 씁니다.

배포할 때 프로젝트의 지침과 스킬은 동기화되지만, 런타임에서 만들어진 메모리는 보존됩니다. 즉, 에이전트가 배운 것을 지우지 않고도 하네스 동작을 바꾸기 위해 에이전트를 다시 배포할 수 있습니다.

다중 사용자 에이전트를 위한 아이덴티티와 인증

Managed Deep Agents에는 현재 기본적인 아이덴티티 모델이 들어 있고, 앞으로 더 고급 인증과 자격 증명 흐름을 계속 추가해 나갈 예정입니다.

지금은 에이전트를 고정된 자격 증명으로 실행할 수 있습니다. identity.pyidentity.ts에 OIDC 제공자를 정의하면, Managed Deep Agents가 OIDC 제공자에서 받은 최종 사용자 id 기준으로 스레드 범위를 나눕니다. 그래서 같은 배포 안에서도 사용자별 스레드가 서로 격리됩니다.

이 아이덴티티 시스템은 범위가 지정된 메모리와 앞으로 나올 자격 증명 패턴의 토대이기도 합니다. 덕분에 에이전트는 프롬프트 텍스트나 위조 가능한 요청 필드에 기대지 않고, 누가 실행을 촉발했는지 신뢰할 수 있는 방식으로 알 수 있습니다.

팀들은 Managed Deep Agents를 이렇게 쓰고 있습니다

여러 팀이 이미 인프라, 확장, 런타임 로직 대신 에이전트의 동작에 집중해 더 빠르게 출시하는 데 Managed Deep Agents를 쓰고 있습니다.

Managed Deep Agents는 함께 일하기에 정말 훌륭했습니다. 특정 모델이나 특정 AI 랩에 묶이는 것은 피하면서 더 응집력 있는 패키지를 원하는, 에이전트 인프라를 검토 중인 팀에 강력히 추천합니다.

- Chip Lay, Fullstory 프로덕트 디렉터

Managed Deep Agents 덕분에 에이전트 인력을 규모 있게 늘릴 수 있습니다. 에이전트 하나가 아이디어에서 프로덕션까지 가는 데 몇 주가 아니라 몇 시간이면 됩니다. 우리의 티처 에이전트는 매일 아침 깨어나 운영 중인 에이전트 전체의 실행을 검토하고, 관측 데이터와 실시간 평가를 바탕으로 개선을 이끕니다. 우리는 비즈니스 로직에 집중하고, 영속 메모리와 런타임부터 Slack과 GitHub 연동까지 운영의 복잡함은 Managed Deep Agents가 처리합니다.

- Mathieu Mailhos, 스텔스 모드 스타트업 AI 런타임 및 인프라 스태프 엔지니어

Managed Deep Agents는 언제 쓰면 좋은가

Managed Deep Agents는 코드 우선 방식의 Deep Agent를 만들되, 영속성, 실행, 배포, 그리고 하네스 주변의 공통 프로덕션 기반은 LangSmith에 맡기고 싶을 때 유용합니다.

다음을 원할 때 사용하세요.

  • 오픈 소스 Deep Agents 하네스 위에서 개발
  • 모델, 프롬프트, 도구, 미들웨어, 비즈니스 로직에 대한 통제 유지
  • 에이전트 인프라를 처음부터 다시 만들지 않고 배포
  • 에이전트에 내구성 있는 스레드, 메모리, 샌드박스, 채널, 스케줄, 평가, 추적 제공
  • 로컬 개발에서 호스팅되는 LangSmith 배포로 빠르게 이동

커스텀 라우트, 그래프와 나란히 두는 애플리케이션 코드, 커스텀 인증 로직, 영속성 계층에 대한 직접 제어가 필요하다면 LangSmith Deployment를 직접 사용하세요. 하네스를 직접 운영하고 싶다면, Deep Agents는 오픈 소스이므로 원하는 인프라에서 돌릴 수 있습니다.

현재 공개 베타의 범위는 다음과 같습니다.

  • 미국 리전의 LangSmith Cloud
  • 지원 API를 확정하는 동안에는 CLI 우선
  • 추가 리전과 배포 방식은 추후 제공 예정

아직은 베타 단계의 기본 요소들이며, Managed Deep Agents에서 워크로드를 돌리는 팀들의 피드백을 들으며 발전시켜 나갈 것이 기대됩니다.

시작하기

퀵스타트를 따라 첫 Managed Deep Agent를 배포해 보세요. 튜토리얼에서는 아이덴티티, 메모리, 도구, 평가를 단계별로 추가해 봅니다.

오픈 소스 하네스부터 살펴보고 싶다면 Deep Agents 개요에서 시작하세요. 그 하네스를 프로덕션으로 가져갈 준비가 되면, Managed Deep Agents로 LangSmith에 배포하면 됩니다.

무엇을 만들었는지, 기본값이 어디서 잘 맞았고 어디서 더 세밀한 제어가 필요했는지 들려주시면 정말 반갑겠습니다.

Edit this page