원문: https://blog.langchain.com/open-deep-research/

요약

딥 리서치(Deep Research)가 가장 인기 있는 에이전트 애플리케이션 중 하나로 자리잡았습니다. OpenAI, Anthropic, Perplexity, Google 모두 다양한 출처의 맥락을 활용하여 포괄적인 보고서를 생성하는 딥 리서치 제품을 보유하고 있습니다. 또한 많은 오픈소스 구현이 있습니다.

우리는 사용자가 자신의 모델, 검색 도구, MCP 서버를 가져올 수 있도록 하는 간단하고 구성 가능한 오픈 딥 리서처를 구축했습니다.

  • 오픈 딥 리서치는 LangGraph로 구축되었습니다. 코드는 여기를 참조하세요!
  • Open Agent Platform에서 직접 사용해 볼 수 있습니다

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

과제

리서치는 개방형 작업입니다. 사용자의 요청에 답하기 위한 최선의 전략을 미리 쉽게 알 수 없습니다. 요청에 따라 다양한 리서치 전략과 검색 깊이가 필요할 수 있습니다.

“이 두 제품을 비교해주세요”

비교 요청은 일반적으로 각 제품에 대한 검색 후 비교 종합 단계의 이점을 얻습니다.

“이 직책을 위한 상위 20명의 후보를 찾아주세요”

목록 작성 및 순위 매기기 요청은 일반적으로 개방형 검색 후 종합 및 순위 매기기가 필요합니다.

“X가 정말 사실일까?”

검증 질문은 특정 도메인에 대한 반복적인 깊이 있는 리서치가 필요할 수 있으며, 검색의 폭보다 출처의 질이 훨씬 중요합니다.

이러한 점들을 고려하면, 오픈 딥 리서치의 핵심 설계 원칙은 요청에 따라 다양한 리서치 전략을 탐색할 수 있는 유연성입니다.

아키텍처 개요

에이전트는 중간 결과를 사용하여 탐색을 안내하면서 유연하게 다양한 전략을 적용할 수 있기 때문에 리서치에 매우 적합합니다. 오픈 딥 리서치는 3단계 프로세스의 일부로 리서치를 수행하기 위해 에이전트를 사용합니다:

  • 범위 지정(Scope)리서치 범위 명확히 하기
  • 리서치(Research)리서치 수행
  • 작성(Write)최종 보고서 생성

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

1단계: 범위 지정

범위 지정의 목적은 리서치에 필요한 모든 사용자 맥락을 수집하는 것입니다. 이는 사용자 명확화브리프 생성을 수행하는 2단계 파이프라인입니다.

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

사용자 명확화

OpenAI가 지적한 바와 같이, 사용자들은 리서치 요청에서 충분한 맥락을 제공하기 드뭅니다. 우리는 필요한 경우 추가 맥락을 요청하기 위해 채팅 모델을 사용합니다.

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

브리프 생성

채팅 상호작용에는 명확화 질문, 후속 질문 또는 사용자가 제공한 예시(예: 이전 딥 리서치 보고서)가 포함될 수 있습니다. 상호작용이 매우 길고 토큰 집약적일 수 있기 때문에, 우리는 이를 포괄적이면서도 집중된 리서치 브리프로 변환합니다. 리서치 브리프는 성공을 위한 우리의 핵심 기준 역할을 하며, 리서치 및 작성 단계 전반에 걸쳐 이를 다시 참조합니다.

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

우리는 연구자-사용자 채팅 상호작용을 리서치 감독자가 비교할 수 있는 집중된 브리프로 변환합니다.

2단계: 리서치

리서치의 목표는 리서치 브리프가 요청한 맥락을 수집하는 것입니다. 우리는 감독자 에이전트를 사용하여 리서치를 수행합니다.

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

리서치 감독자

감독자의 역할은 간단합니다: 적절한 수의 서브에이전트에게 리서치 작업을 위임하는 것입니다. 감독자는 리서치 브리프를 독립적인 세부 주제로 분해할 수 있는지 판단하고 격리된 컨텍스트 윈도우를 가진 서브에이전트에게 위임합니다. 이것은 시스템이 리서치 작업을 병렬화하고 더 빠르게 더 많은 정보를 찾을 수 있기 때문에 유용합니다.

리서치 서브에이전트

각 리서치 서브에이전트는 감독자로부터 세부 주제를 제시받습니다. 서브에이전트는 특정 주제에만 집중하도록 지시받으며 리서치 브리프의 전체 범위에 대해 걱정할 필요가 없습니다 – 그것은 감독자의 역할입니다. 각 서브에이전트는 도구 호출 루프로 리서치를 수행하며, 사용자가 구성한 검색 도구 및/또는 MCP 도구를 활용합니다.

각 서브에이전트가 완료되면, 모든 리서치를 고려하여 제시된 부분 질문에 대한 자세한 답변을 작성하고 유용한 출처를 인용하는 최종 LLM 호출을 합니다. 도구 호출 피드백에서 수집된 많은 원본 정보(예: 스크래핑된 웹 페이지)와 관련 없는 정보(예: 실패한 도구 호출 또는 관련 없는 웹사이트)가 있을 수 있으므로 이는 중요합니다.

우리는 서브에이전트의 리서치 결과를 정리하기 위해 추가 LLM 호출을 하므로 감독자에게 깔끔하고 처리된 정보를 제공합니다.

원본 정보를 감독자에게 반환하면 토큰 사용량이 크게 증가할 수 있으며 감독자는 가장 유용한 정보를 격리하기 위해 더 많은 토큰을 처리해야 합니다. 따라서 우리의 서브에이전트는 결과를 정리하고 감독자에게 반환합니다.

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

리서치 감독자 반복

감독자는 서브에이전트로부터의 결과물이 브리프의 작업 범위를 충분히 충족하는지 추론합니다. 감독자가 더 큰 깊이를 원하면 추가 리서치를 수행하기 위해 추가 서브에이전트를 생성할 수 있습니다. 감독자가 리서치를 위임하고 결과를 반영함에 따라 부족한 것이 무엇인지 유연하게 파악하고 후속 리서치로 이러한 격차를 해결할 수 있습니다.

3단계: 보고서 작성

보고서 작성의 목표는 서브에이전트로부터 수집한 맥락을 사용하여 리서치 브리프의 요청을 이행하는 것입니다. 감독자가 수집된 결과물이 리서치 브리프의 요청을 충분히 해결한다고 판단하면 보고서 작성을 진행합니다.

보고서를 작성하기 위해 우리는 LLM에 리서치 브리프와 서브에이전트가 반환한 모든 리서치 결과물을 제공합니다. 이 최종 LLM 호출은 브리프에 의해 유도되고 리서치 결과물로 답변되는 원샷 출력을 생성합니다.

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

학습 사항

쉽게 병렬화할 수 있는 작업에만 멀티에이전트를 사용하세요

멀티에이전트 vs. 단일 에이전트는 중요한 설계 고려사항입니다. Cognition은 병렬로 작동하는 서브에이전트가 조정하기 어려울 수 있다는 이유로 멀티에이전트에 반대했습니다. 작업(예: 애플리케이션 구축)이 멀티에이전트 출력이 함께 작동해야 하는 경우 조정은 위험입니다.

우리도 이 교훈을 배웠습니다. 우리의 리서치 에이전트의 초기 버전은 서브에이전트와 함께 최종 보고서의 섹션을 병렬로 작성했습니다. 빠르긴 했지만 Cognition이 제기한 문제에 직면했습니다: 섹션 작성 에이전트가 잘 조정되지 않았기 때문에 보고서가 단절되었습니다. 우리는 리서치 작업 자체에만 멀티에이전트를 사용하고 모든 리서치가 완료된 후 작성을 수행하는 방식으로 이를 해결했습니다.

멀티에이전트는 조정하기 어렵고 보고서의 섹션을 병렬로 작성하면 성능이 저하될 수 있습니다. 우리는 멀티에이전트를 리서치로만 제한하고 한 번의 원샷으로 보고서를 작성합니다.

멀티에이전트는 세부 리서치 주제에 걸쳐 맥락을 격리하는 데 유용합니다

우리의 실험은 단일 에이전트의 응답 품질이 요청에 여러 세부 주제가 있으면(예: A와 B와 C를 비교) 저하됨을 보여줍니다. 여기서 직관은 간단합니다: 단일 컨텍스트 윈도우는 모든 세부 주제에 걸쳐 도구 피드백을 저장하고 추론해야 합니다. 이 도구 피드백은 종종 토큰이 많습니다. 여러 실패 모드컨텍스트 충돌과 같이 컨텍스트 윈도우가 여러 다른 세부 주제에 걸쳐 도구 호출을 누적함에 따라 만연해집니다.

OpenAI, Anthropic, Google DeepMind의 AI 안전에 대한 접근 방식을 비교합니다. 그들의 다양한 철학적 프레임워크, 연구 우선순위, 그리고 정렬 문제에 대한 그들의 생각을 이해하고 싶습니다.

우리의 단일 에이전트 구현은 검색 도구를 사용하여 각 프론티어 랩에 대한 별도의 쿼리를 동시에 보냈습니다.

  • ‘OpenAI AI 안전 및 정렬을 위한 철학적 프레임워크’
  • ‘Anthropic AI 안전 및 정렬을 위한 철학적 프레임워크’
  • ‘Google DeepMind AI 안전 및 정렬을 위한 철학적 프레임워크’

검색 도구는 단일 긴 문자열에서 세 랩 모두에 대한 결과를 반환했습니다. 우리의 단일 에이전트는 세 프론티어 랩 모두의 결과에 대해 추론하고 검색 도구를 다시 호출하여 각각에 대한 독립적인 쿼리를 요청했습니다.

  • ‘DeepMind의 사회 선택 및 정치 철학에 관한 진술’
  • ‘Anthropic의 기술적 정렬 과제에 관한 진술’
  • ‘OpenAI의 재귀 보상 모델링에 대한 기술 보고서’

각 도구 호출 반복에서 단일 에이전트는 세 개의 독립적인 스레드의 맥락을 저글링했습니다. 이는 토큰과 지연 시간 관점에서 낭비적이었습니다. DeepMind의 정렬 철학에 대한 다음 쿼리를 생성하는 데 도움이 되도록 OpenAI의 재귀 보상 모델링 접근 방식에 대한 토큰은 필요하지 않습니다. 또 다른 중요한 관찰은 여러 주제를 처리하는 단일 에이전트가 완료하기 전에 자연스럽게 각 주제를 덜 깊게(검색 쿼리 수) 연구한다는 것입니다.

멀티에이전트 접근 방식을 사용하면 여러 서브에이전트가 병렬로 실행될 수 있으며, 각각은 독립적이고 집중된 작업 전담합니다. 리서치에 멀티에이전트 접근 방식을 적용하면 Anthropic이 보고한 이점을 포착할 수 있으며, 우리의 평가에서도 강조됩니다: 각 서브에이전트에서 세부 주제 맥락을 격리할 수 있습니다.

리서치 중 세부 주제의 맥락 격리는 다양한 긴 맥락 실패 모드를 피할 수 있습니다.

멀티에이전트 감독자는 시스템이 필요한 리서치 깊이에 맞게 튜닝할 수 있게 합니다

사용자는 간단한 요청이 10분 이상 소요되는 것을 원하지 않습니다. 하지만 Anthropic이 잘 보여준 것처럼 더 높은 토큰 활용과 지연 시간이 필요한 리서치가 필요한 요청도 있습니다.

감독자는 요청에 필요한 리서치 깊이의 수준을 튜닝하기 위해 선택적으로 서브에이전트를 생성하여 두 경우를 모두 처리할 수 있습니다. 감독자는 리서치를 병렬화해야 할 때와 단일 리서치 스레드가 충분할 때를 추론하기 위한 휴리스틱으로 프롬프트됩니다. 우리의 딥 리서치 에이전트는 리서치를 병렬화할지 여부를 선택할 수 있는 유연성이 있습니다.

멀티에이전트 감독자는 검색 전략의 유연성을 가능하게 합니다.

컨텍스트 엔지니어링은 토큰 팽창을 완화하고 행동을 유도하는 데 중요합니다

리서치는 토큰 집약적인 작업입니다. Anthropic은 그들의 멀티에이전트 시스템이 일반적인 채팅 애플리케이션보다 15배 더 많은 토큰을 사용했다고 보고했습니다! 우리는 이를 완화하기 위해 컨텍스트 엔지니어링을 사용했습니다.

우리는 채팅 기록을 리서치 브리프로 압축하여 이전 메시지로 인한 토큰 팽창을 방지합니다. 서브에이전트는 감독자에게 반환하기 전에 관련 없는 토큰과 정보를 제거하기 위해 리서치 결과물을 정리합니다.

충분한 컨텍스트 엔지니어링이 없으면 우리의 에이전트는 길고 원본 도구 호출 결과로 인한 컨텍스트 윈도우 한계에 도달하기 쉬웠습니다. 실질적으로 토큰 비용을 절약하고 TPM 모델 속도 제한을 피하는 데 도움이 됩니다.

컨텍스트 엔지니어링은 많은 실질적 이점을 가집니다. 토큰을 절약하고, 컨텍스트 윈도우 한계를 피하고, 모델 속도 제한을 유지하는 데 도움이 됩니다.

오픈 딥 리서치는 진행 중인 프로젝트이며 우리가 시도하고 싶은 몇 가지 아이디어가 있습니다. 우리가 생각하고 있는 몇 가지 개방형 질문이 있습니다.

  • 토큰 집약적인 도구 응답을 처리하는 가장 좋은 방법은 무엇이며, 불필요한 토큰 지출을 줄이기 위해 관련 없는 맥락을 필터링하는 가장 좋은 방법은 무엇입니까?
  • 고품질 응답을 보장하기 위해 에이전트의 핫 경로에서 실행할 가치가 있는 평가가 있습니까?
  • 딥 리서치 보고서는 가치 있으며 생성하는 데 상대적으로 비용이 많이 드는데, 우리가 이 작업을 저장하고 미래에 장기 메모리로 활용할 수 있습니까?

오픈 딥 리서치 사용

LangGraph Studio

우리의 LangGraph 코드를 클론하고 LangGraph Studio로 오픈 딥 리서치를 로컬로 실행할 수 있습니다. Studio를 사용하여 프롬프트와 아키텍처를 테스트하고 특정 사용 사례에 더 맞게 조정할 수 있습니다!

Open Agent Platform

우리는 오픈 딥 리서치를 Open Agent Platform(OAP)의 데모 인스턴스에 호스팅했습니다. OAP는 시민 개발자 플랫폼으로, 사용자가 에이전트를 구축, 프로토타입 작성 및 사용할 수 있게 해주며 – API 키만 전달하면 됩니다. 또한 딥 리서치를 다른 LangGraph 에이전트와 함께 호스팅하기 위해 OAP의 자신의 인스턴스를 배포할 수도 있습니다!