목록으로
GitHub - dzhng/deep-research: An AI-powered research assistant that performs iterative, deep research on any topic by combining search engines, web scraping, and large language models.  The goal of this repo is to provide the simplest implementation of a deep research agent - e.g. an agent that can refine its research direction overtime and deep dive into a topic.
Service2025.02.16

GitHub - dzhng/deep-research: An AI-powered research assistant that performs iterative, deep research on any topic by combining search engines, web scraping, and large language models. The goal of this repo is to provide the simplest implementation of a deep research agent - e.g. an agent that can refine its research direction overtime and deep dive into a topic.

요약

이 프로젝트는 검색 엔진, 웹 스크래핑, 대규모 언어 모델(LLM)을 결합하여 반복적이고 심층적인 조사를 수행하는 AI 기반 연구 보조 도구로, 500줄 미만의 코드로 단순한 구현을 목표로 합니다.
사용자의 쿼리, breadth, depth 매개변수를 기반으로 지능적으로 검색 쿼리를 생성하고 결과를 처리하며, 발견된 내용을 바탕으로 다음 연구 방향을 도출하여 재귀적으로 심층 탐색을 진행합니다.
Firecrawl API와 OpenAI API(또는 로컬 LLM)를 사용하여 구동되며, 최종 연구 결과를 모든 소스와 함께 포괄적인 Markdown 보고서로 생성하여 제공합니다.

상세 내용

deep-research는 검색 엔진, 웹 스크래핑 및 대규모 언어 모델(Large Language Models, LLMs)을 결합하여 주어진 주제에 대해 반복적이고 심층적인 연구를 수행하는 AI 기반 연구 어시스턴트입니다. 이 프로젝트의 목표는 연구 방향을 시간이 지남에 따라 정교화하고 특정 주제를 심층적으로 탐구할 수 있는 'deep research agent'의 가장 간단한 구현을 제공하는 것입니다. 코드를 이해하고 기반 위에 구축하기 쉽게 500줄 미만의 코드(LoC)로 유지하는 것을 지향합니다.

핵심 방법론 (Core Methodology)

이 시스템은 사용자 쿼리(User Query, Q)와 연구의 폭(Breadth Parameter, B), 깊이(Depth Parameter, D)를 초기 입력으로 받아 작동합니다.

  • 초기 설정 (Initial Setup):
  • * 사용자의 초기 쿼리와 설정된 breadthdepth 파라미터를 수신합니다.
    * LLM을 사용하여 사용자의 연구 요구 사항을 더 잘 이해하고 구체화하기 위한 후속 질문(follow-up questions)을 생성합니다.

  • 심층 연구 프로세스 (Deep Research Process) - 반복 루프:
  • * SERP 쿼리 생성 (SERP Queries, SQ): 현재의 연구 목표와 이전 반복에서 얻은 지식(learnings)을 기반으로 LLM이 타겟 검색 엔진 결과 페이지(SERP) 쿼리를 지능적으로 생성합니다. 이 과정에서 OpenAI API (기본 o3 mini 또는 R1 모델)가 사용됩니다.
    * 결과 처리 (Process Results, PR): 생성된 쿼리를 통해 검색된 결과를 Firecrawl API를 이용하여 웹 스크래핑하고, LLM이 이 결과들로부터 핵심적인 학습 내용(Learnings, NL)과 새로운 연구 방향(Directions, ND)을 추출합니다. Firecrawl은 웹 검색과 콘텐츠 추출을 담당하며, 병렬 처리(Concurrent Processing)를 통해 효율성을 높일 수 있습니다.
    * 재귀적 탐색 (Recursive Exploration): 추출된 LearningsDirections는 다음 단계의 의사 결정에 사용됩니다. depth 파라미터가 0보다 큰 경우, 시스템은 새로운 연구 방향(Next Direction, RD)을 도출합니다. 이 Next Direction은 이전 목표(Prior Goals), 새로운 질문(New Questions), 그리고 현재까지의 학습 내용(Learnings)을 통합하여 구성됩니다.
    * 이렇게 도출된 새로운 맥락(New Context)은 다시 심층 연구(Deep Research, DR) 단계로 피드백되어 새로운 반복을 시작합니다. 이 순환적인 흐름은 depth 파라미터가 소진될 때까지 계속됩니다.

  • 보고서 생성 (Report Generation):
  • * depth 파라미터가 0이 되어 더 이상 심층 탐색이 필요 없을 경우, 모든 발견 사항과 수집된 정보를 종합하여 마크다운(Markdown) 형식의 포괄적인 보고서(Markdown Report, MR)를 생성합니다. 이 보고서에는 모든 출처(sources)와 참고 자료가 포함되며, 명확하고 읽기 쉬운 형식으로 정보가 정리됩니다.

    기술적 구성 요소:

    * LLM Integration: 연구 목표에 기반한 타겟 검색 쿼리 생성, 검색 결과 처리 및 분석, 후속 연구 방향 설정에 OpenAI API (o3 mini), Fireworks API (DeepSeek R1), 또는 사용자가 지정 가능한 OPENAI_ENDPOINTCUSTOM_MODEL을 활용합니다.
    * Web Scraping & Search: Firecrawl API를 사용하여 웹 검색을 수행하고 웹 페이지 콘텐츠를 추출합니다. CONCURRENCY_LIMIT 환경 변수를 통해 동시 처리량을 조절할 수 있습니다.
    * 프로그래밍 환경: Node.js 환경에서 작동하며, Docker를 통한 배포도 지원합니다.

    원본 보기
    GitHub
    Shared by Anonymous