deer-flow은(는) 무엇을 하나요?
오픈소스 장기 작업 슈퍼에이전트 하네스로, 연구, 코딩, 창작을 수행합니다. 샌드박스, 메모리, 도구, 스킬, 서브에이전트 및 메시지 게이트웨이를 활용하여 분 단위에서 시간 단위까지 다양한 수준의 작업을 처리합니다.
주요 기능
- 샌드박스: 안전한 코드 실행 및 격리된 환경 제공
- 메모리: 장기 컨텍스트 유지를 위한 메모리 시스템
- 도구: 다양한 외부 도구 통합 (파일 시스템, API, 데이터베이스 등)
- 스킬: 확장 가능한 스킬 시스템을 통한 기능 추가
- 서브에이전트: 작업 분할 및 병렬 처리를 위한 하위 에이전트
- 메시지 게이트웨이: 효율적인 에이전트 간 통신
사용 사례
- 장기 연구 프로젝트: 데이터 수집, 분석, 보고서 작성까지 자동화
- 소프트웨어 개발: 요구사항 분석부터 테스트, 배포까지 전체 개발 주기 지원
- 크리에이티브 작업: 문서 작성, 콘텐츠 생성, 편집 작업
- 복잡한 의사결정: 여러 소스의 정보를 종합하여 최적의 결정 지원
설치 및 시작하기
# 저장소 클론
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# 의존성 설치
pip install -r requirements.txt
# 환경 변수 설정
cp .env.example .env
# .env 파일에 필요한 API 키 설정
# 실행
python main.py
환경 변수
| 변수명 | 설명 | 필수 여부 |
|---|---|---|
OPENAI_API_KEY | OpenAI API 키 | 예 |
DEER_FLOW_LOG_LEVEL | 로그 레벨 설정 (기본값: INFO) | 아니오 |
MAX_WORKERS | 최대 워커 수 (기본값: 5) | 아니오 |
스킬 개발 가이드
새로운 스킬을 추가하려면 skills/ 디렉토리에 Python 모듈을 생성하고 다음과 같이 구현하세요:
from core.skill import BaseSkill
class MyCustomSkill(BaseSkill):
"""나만의 사용자 정의 스킬"""
def __init__(self):
super().__init__()
self.name = "my_custom_skill"
self.description = "내 사용자 정의 스킬 설명"
def execute(self, context, **kwargs):
# 스킬 로직 구현
return {"result": "성공", "data": kwargs}
기여 방법
- 이 저장소를 Fork 합니다.
- 새로운 브랜치를 생성합니다 (
git checkout -b feature/amazing-feature). - 변경사항을 커밋합니다 (
git commit -m 'Add amazing feature'). - 브랜치에 Push 합니다 (
git push origin feature/amazing-feature). - Pull Request를 생성합니다.
라이선스
Apache License 2.0
문의 및 지원
- GitHub Issues: https://github.com/bytedance/deer-flow/issues
- 공식 문서: https://bytedance.github.io/deer-flow/