brunch

Deep Research Agent 동작원리

OpenAI가 밝힌 복잡한 Task를 Deep research 하는 방법

by Andy

2025년 2월, OpenAI는 ChatGPT Pro 사용자를 위한 혁신적인 기능인 Deep Research를 출시했습니다. 이는 단순한 검색을 넘어서 복잡한 주제에 대해 심층적인 연구를 수행하고 종합적인 보고서를 생성하는 AI 에이전트입니다. 이 글에서는 Deep Research Agent가 어떻게 동작하는지, 그리고 개발자들이 이를 어떻게 구현할 수 있는지 상세히 살펴보겠습니다.


Deep Research Agent란?

Deep Research는 사용자의 복잡한 질문에 대해 자동으로 여러 단계의 웹 검색을 수행하고, 정보를 수집·분석하여 구조화된 보고서를 생성하는 AI 시스템입니다. 기존의 단순한 질의-응답 모델을 넘어서, 마치 전문 연구원처럼 정보를 탐색하고 종합하는 능력을 갖추고 있죠.


주요 특징

자율적 계획 수립: 주어진 주제를 분석하여 하위 질문들을 자동으로 생성

반복적 탐색: 초기 결과를 바탕으로 추가 검색을 수행하여 정보의 깊이를 더함

다중 소스 통합: 여러 출처의 정보를 비교·검증하여 신뢰성 있는 결과 도출

구조화된 출력: 인용과 함께 체계적으로 정리된 보고서 생성


Deep Research Agent의 동작 원리


openai_research_agent_workflow.png 분류 - 설명 - 명령 - 연구의 순서로 동작하는 에이전트 구조 (출처 : OpenAI)


1. 다중 에이전트 아키텍처

Deep Research는 여러 전문화된 에이전트들이 협업하는 구조로 설계되었습니다:


사용자 입력

[Triage Agent] - 요청 분류

[Clarification Agent] - 필요시 추가 정보 요청

[Instruction Agent] - 상세 연구 지침 생성

[Research Agent] - 실제 연구 수행

최종 보고서



2. 각 에이전트의 역할


Triage Agent (분류 에이전트)

사용자 요청의 성격과 복잡도를 파악하고, 사용자의 쿼리를 검사합니다.

적절한 처리 방법을 결정하는데, 필요한 Context가 부족한 경우에는 Clarifier Agent로 경로를 분기하고, 그렇지 않은 경우에는 Instruction Agent로 보냅니다.

간단한 질문과 심층 연구가 필요한 질문을 구분하는 역할도 한다고 보면 되겠죠.


Clarification Agent (명확화 에이전트)

모호한 요청에 대해 추가 정보 요청하고, 사용자에게 추가 질문을 하기도 합니다.

2-3개의 핵심 질문으로 연구 범위 구체화하고 사용자의 답변을 기다립니다.

분류 Agent에서 사용자에게 어떤 부분이 모호한지를 친절하게 물어보기도 해요.


Instruction Agent (지침 생성 에이전트)

사용자 요청을 상세한 Research Instruction으로 정리하는 요약/변환을 수행합니다.

모든 세부사항과 제약조건 포함해서, 결과를 표시합니다.

출력 형식, 언어, 우선 소스, 근거를 포함해서 완성도 높은 입력지시문을 만든다고 봐야죠.


Research Agent (연구 수행 에이전트)

실제 웹 검색과 정보 수집 수행하는 WebSearchTool 등을 이용해 실증적인 연구를 수행합니다.

계획 수립 → 검색 → 분석 → 종합의 반복 프로세스를 진행하는데, MCP를 사용하여 내부 지식 저장소와 외부 검색결과를 통합합니다. 필요한 경우 스니펫 등을 참조 자료에 통합해요.

Claude와 마찬가지로 투명성을 위해 중간 이벤트 결과를 스트리밍 하면서, 최종 보고서 작성을 완료합니다.


3. 도구 통합

Deep Research는 다양한 도구들을 활용합니다:

Web Search: 실시간 웹 정보 검색

Web Fetch: 특정 URL의 전체 콘텐츠 추출

Code Interpreter: 데이터 분석 및 시각화

MCP (Model Context Protocol): 내부 문서나 데이터베이스 접근


추가적으로 Agent SDK를 추적할 수 있기 때문에, 도구 호출과 함께 사람이 이해할 수 있도록 에이전트의 상호작용 흐름을 추적하고 표시하고 싶어할 수도 있습니다. 이럴 경우에는 아래의 print_agent_interaction을 실행하면 에이전트 이름, 이벤트 유형, Tool 호출 정보를 포함한 에이전트의 실행 시퀀스를 볼 수 있어요.


carbon (1).png 브런치에서 소스코드 쓸 수 있게 좀 해주세요! (출처 : OpenAI )


4. Deep Research를 활용할 경우 알아야 할 것들


Deep Research를 사용할 때는 다음 사항들을 고려하면서 활용해야 합니다.


비용 최적화: Deep Research 모델은 계산 비용이 상당하므로, 구체적인 Workflow와 참조자료를 포함해서 쿼리를 작성하는 것이 좋습니다. 또한 간단한 질문에는 경량 모델인 o3-mini 등을 사용하고, 병렬처리로 workflow와 실행 시간을 단축하는 것이 좋습니다.


품질 관리: Deep Research의 결과를 다시 한 번 재추적해야 하는 경우가 많이 발생해요. 출처의 신뢰성과 정보의 최신성을 반드시 연구 단계에서 확인 후 추론을 진행하도록 해야 합니다. 특히, 상충되는 정보를 마주쳤을 때, Agent가 어떤 판단을 해야할지를 확실히 하는 것이 좋습니다.


확장성 고려: 모듈화 된 에이전트와 Tool, 도메인 별로 검증/정리된 데이터와 에이전트, 특수한 연산이나 기능을 하는 Cutom Tool 등을 통해서 신속한 확장성을 갖추는 것이 Deep Research를 이용한 서비스 기획자에게는 반드시 필요합니다.


오늘은 Deep Research API를 활용할 때, 알아야 할 동작 순서와 원리 등에 대해서 알아봤는데요. 이미 Deep Research는 Langchain에서도 Graph와 Multi-Agent를 이용해서 구현한다거나, 다른 모델에서는 MoA(Mixture-of-Agent)로 구현하는 경우도 많이 있습니다. 최근 MCP를 통해서 Deep Research를 대신 할 수 있을 것이 고민되고 있지만, 결국은 얼마나 빠른 시간에 적은 토큰으로 정확한 결과를 내놓느냐는 기본 원칙은 바뀌지 않는다는 면에서 이 동작원리는 머릿속에 각인해 두는 것이 좋습니다.



* 출처 : https://cookbook.openai.com/examples/deep_research_api/introduction_to_deep_research_api_agents

https://openai.github.io/openai-agents-python/

https://cookbook.openai.com/examples/deep_research_api/how_to_build_a_deep_research_mcp_server/readme


keyword
매거진의 이전글OpenAI의 Responses API