DeerFlow (Deep Exploration and Efficient Research Flow)는 바이트댄스에서 오픈 소스로 공개한 커뮤니티 기반 심층 연구 프레임워크입니다. 이 프로젝트는 오픈 소스 커뮤니티의 뛰어난 작업을 기반으로 구축되었으며, 대규모 언어 모델과 웹 검색, 크롤링, Python 코드 실행 등의 전문 도구를 결합하는 것을 목표로 하며, 동시에 오픈 소스 커뮤니티에 기여합니다.
프로젝트 주소: https://github.com/bytedance/deer-flow
DeerFlow는 자동화된 연구 및 코드 분석을 위해 설계된 모듈식 다중 에이전트 시스템 아키텍처를 구현합니다. 시스템은 LangGraph를 기반으로 구축되었으며, 명확하게 정의된 메시지 전달 시스템을 통해 유연한 상태 기반 워크플로우를 구현하여 컴포넌트 간 통신을 수행합니다.
시스템은 다음과 같은 컴포넌트를 포함하는 간소화된 워크플로우를 채택합니다.
실행 계획을 수행하는 전문 에이전트 집합:
각 에이전트는 역할에 최적화된 특정 도구에 액세스할 수 있으며 LangGraph 프레임워크 내에서 실행됩니다.
uv
, nvm
및 pnpm
사용 권장# 저장소 복제
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# 종속성 설치, uv는 Python 인터프리터 및 가상 환경 생성을 처리하고 필요한 패키지를 설치합니다.
uv sync
# 환경 변수 구성
cp .env.example .env
# API 키 구성:
# - Tavily: https://app.tavily.com/home
# - Brave Search: https://brave.com/search/api/
# - volcengine TTS: 있는 경우 TTS 자격 증명 추가
# LLM 모델 및 API 키 구성
cp conf.yaml.example conf.yaml
# PPT 생성을 위해 marp 설치
brew install marp-cli
uv run main.py
# 먼저 Web UI 종속성 설치
cd deer-flow/web
pnpm install
# 백엔드 및 프런트엔드 서버 실행 (개발 모드)
# macOS/Linux
./bootstrap.sh -d
# Windows
bootstrap.bat -d
그런 다음 http://localhost:3000 에 접속하여 Web UI를 경험하십시오.
DeerFlow는 다양한 검색 엔진을 지원하며 .env
파일에서 SEARCH_API
변수를 사용하여 구성할 수 있습니다.
구성 예시:
# 다음 중 하나 선택: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
DeerFlow에는 텍스트 음성 변환 (TTS) 기능이 포함되어 있어 연구 보고서를 음성으로 변환할 수 있습니다. 이 기능은 volcengine TTS API를 사용하여 고품질 오디오를 생성하며, 사용자 정의 속도, 볼륨 및 음조를 지원합니다.
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
"text": "이것은 텍스트 음성 변환 기능의 테스트입니다.",
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0
}' \
--output speech.mp3
# 모든 테스트 실행
make test
# 특정 테스트 파일 실행
pytest tests/integration/test_workflow.py
# 커버리지 테스트 실행
make coverage
# 코드 검사 실행
make lint
# 코드 포맷
make format
DeerFlow는 워크플로우 아키텍처로 LangGraph를 사용합니다. LangGraph Studio를 사용하여 워크플로우를 실시간으로 디버깅하고 시각화할 수 있습니다.
# uv 패키지 관리자 설치 (없는 경우)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 종속성 설치 및 LangGraph 서버 시작
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
서버가 시작되면 다음 주소에 액세스할 수 있습니다.
# 특정 쿼리 실행
uv run main.py "의료 서비스 AI 도입에 영향을 미치는 요인은 무엇입니까?"
# 사용자 정의 계획 매개변수를 사용하여 실행
uv run main.py --max_plan_iterations 3 "양자 컴퓨팅은 암호화에 어떤 영향을 미칩니까?"
# 대화형 모드 실행
uv run main.py --interactive
# 사용 가능한 모든 옵션 보기
uv run main.py --help
DeerFlow에는 실행 전에 연구 계획을 검토, 편집 및 승인할 수 있는 인간-기계 상호 작용 메커니즘이 포함되어 있습니다.
[ACCEPTED]
를 회신하여 계획 수락[EDIT PLAN] 기술 구현에 대한 단계를 더 추가하십시오
)프로젝트에는 DeerFlow의 기능을 보여주는 여러 예시 보고서가 포함되어 있습니다.
DeerFlow는 오픈 소스 커뮤니티의 뛰어난 작업을 기반으로 구축되었으며, 특히 다음 사항에 감사드립니다.
이러한 프로젝트는 오픈 소스 협업의 혁신적인 힘을 보여주며, 우리는 그들의 기반 위에 DeerFlow를 구축하게 된 것을 영광으로 생각합니다.