The-Swarm-Corporation/AdvancedResearch
요약
Anthropic의 오케스트레이터-워커 패턴을 기반으로 구축된 멀티 에이전트 연구 프레임워크입니다. 병렬 실행, LLM-as-judge 평가, 전문 보고서 생성 및 다양한 출력 형식을 지원합니다.
핵심 포인트
- Anthropic의 멀티 에이전트 연구 패턴 구현
- 병렬 실행 및 LLM-as-judge 평가 기능 포함
- Exa Search API를 활용한 웹 검색 기능 지원
- JSON 내보내기 및 배치 처리 기능 제공
Anthropic의 논문 "How we built our multi-agent research system"에서 소개된 오케스트레이터-워커 (orchestrator-worker) 패턴을 최첨단 멀티 에이전트 프레임워크인 swarms를 기반으로 구현한 강화된 버전입니다.
우리의 이 고급 연구 시스템 구현체는 병렬 실행 (parallel execution), LLM-as-judge 평가, 그리고 내보내기 (export) 기능이 포함된 전문적인 보고서 생성 기능을 활용합니다.
pip3 install -U advanced-research
# uv pip install -U advanced-research
# Exa Search API Key (웹 검색 기능을 위해 필요함)
EXA_API_KEY="your_exa_api_key_here"
# Anthropic API Key (Claude 모델용)
...
참고: 웹 검색 기능을 위해서는 최소한 EXA_API_KEY가 필요합니다. LLM 기능을 위해서는 ANTHROPIC_API_KEY 또는 OPENAI_API_KEY 중 하나가 필요합니다.
from advanced_research import AdvancedResearch
# 연구 시스템 초기화
research_system = AdvancedResearch(
...
from advanced_research import AdvancedResearch
# 내보내기 기능을 활성화하여 초기화
research_system = AdvancedResearch(
...
from advanced_research import AdvancedResearch
# 사용자 정의 설정으로 초기화
research_system = AdvancedResearch(
...
from advanced_research import AdvancedResearch
# 시스템 초기화
research_system = AdvancedResearch(
...
from advanced_research import AdvancedResearch
# 특정 출력 타입으로 초기화
research_system = AdvancedResearch(
...
| 작업 (Task) | 코드 (Code) | 문서 (Documentation) |
|---|---|---|
| 기본 연구 (Basic Research) | AdvancedResearch().run("query") | 기본 사용법 (Basic Usage) → |
| 결과 내보내기 (Export Results) | AdvancedResearch(export_on=True) | 내보내기 설정 (Export Config) → |
| 배치 처리 (Batch Processing) | system.batched_run([queries]) | 배치 처리 (Batch Processing) → |
| 사용자 정의 모델 (Custom Models) | AdvancedResearch(director_model_name="model") | 고급 설정 (Advanced Config) → |
| 출력 형식 (Output Formats) | AdvancedResearch(output_type="json") | 출력 타입 (Output Types) → |
Advanced Research 시스템의 모든 기능을 보여주는 즉시 실행 가능한 예제들입니다:
| 예제 (Example) | 설명 (Description) | 파일 (File) |
|---|---|---|
| 기본 사용법 (Basic Usage) | 최소한의 설정으로 수행하는 간단한 연구 | examples/basic_usage.py |
| 내보내기 기능 (Export Functionality) | 연구 결과를 JSON 파일로 저장 | examples/export_example.py |
| 고급 설정 (Advanced Configuration) | 커스텀 모델, 토큰, 그리고 다중 루프 (multiple loops) | examples/advanced_config.py |
| 커스텀 모델 (Custom Models) | 다양한 AI 모델 설정 | examples/custom_models.py |
| 출력 형식 (Output Formats) | JSON, 마크다운 (markdown), 그리고 대화 기록 (conversation history) | examples/output_formats.py |
| 배치 처리 (Batch Processing) | 여러 쿼리를 효율적으로 처리 | examples/batch_processing.py |
| 다중 루프 연구 (Multi-Loop Research) | 정교화 과정을 포함한 반복적 연구 | examples/multi_loop_research.py |
| 세션 관리 (Session Management) | 대화 추적 및 지속성 유지 | examples/session_management.py |
| 채팅 인터페이스 (Chat Interface) | 대화형 웹 기반 채팅 데모 | examples/chat_demo.py |
빠른 시작 예제 (Quick Start Examples):
# 기본 연구 (Basic research)
python examples/basic_usage.py
# 내보내기 기능 포함 (With export functionality)
...
| 기능 (Feature) | 설명 (Description) |
|---|---|
| 오케스트레이터-워커 아키텍처 (Orchestrator-Worker Architecture) | Director Agent가 연구 전략을 조정하는 동안, 특화된 워커 에이전트(worker agents)들이 Exa API 통합을 통해 집중적인 검색 작업을 수행합니다. |
| 고급 웹 검색 통합 (Advanced Web Search Integration) | 구조화된 JSON 응답, 콘텐츠 요약, 그리고 지능적인 결과 추출을 위해 exa_search를 활용하여 포괄적인 연구를 수행합니다. |
| 고성능 병렬 실행 (High-Performance Parallel Execution) | ThreadPoolExecutor를 활용하여 여러 특화된 에이전트를 동시에 실행함으로써, 복잡한 쿼리에 대한 시간을 크게 단축합니다. |
| 유연한 설정 (Flexible Configuration) | 커스터마이징 가능한 모델 선택 (Claude, GPT), 토큰 제한, 루프 횟수, 그리고 출력 형식 옵션. |
| 대화 관리 (Conversation Management) | 지속적인 대화 관리를 위해 swarms 프레임워크의 Conversation 클래스를 사용하여 내장된 대화 기록 추적 기능을 제공합니다. |
| 내보내기 기능 (Export Functionality) | 자동 타임스탬프, 고유 세션 ID(unique session IDs), 그리고 포괄적인 대화 기록을 포함한 JSON 내보내기. |
| 다양한 출력 형식 |
JSON, markdown, 그리고 전체 대화 기록 형식을 포함한 다양한 출력 유형을 지원합니다. |
| 세션 관리 |
고유 세션 ID(unique session IDs), 배치 처리(batch processing) 기능, 그리고 단계별 연구 실행 제어를 지원합니다.
시스템은 병렬 실행을 포함한 간소화된 오케스트레이터-워커(orchestrator-worker) 패턴을 따릅니다:
[사용자 쿼리 + 설정]
│
▼
...
세션 초기화 (Session Initialization): AdvancedResearch는 대화 추적을 포함한 고유한 연구 세션을 생성합니다.
디렉터 에이전트 계획 (Director Agent Planning): 디렉터 에이전트가 쿼리를 분석하고 연구 전략을 계획합니다.
병렬 워커 실행 (Parallel Worker Execution): 여러 워커 에이전트가 Exa API를 사용하여 동시 검색을 수행합니다.
결과 집계 (Results Aggregation): 워커의 출력물들이 결합되고 종합적인 결과로 합성됩니다.
출력 처리 (Output Processing): 지정된 출력 유형(JSON, markdown 등)에 따라 결과가 형식을 갖춥니다.
내보내기 및 전달 (Export & Delivery): 타임스탬프가 찍힌 파일과 대화 기록을 포함한 선택적 JSON 내보내기를 지원합니다.
이 구현체는 오픈 소스 swarms 생태계의 일부입니다. 여러분의 기여를 환영합니다!
- 저장소 포크 (Fork)
- 기능 브랜치 생성 (
git checkout -b feature/amazing-research-feature) - 변경 사항 커밋 (
git commit -m 'Add amazing feature') - 브랜치로 푸시 (
git push origin feature/amazing-research-feature) - 풀 리퀘스트 (Pull Request) 오픈
# 개발 환경 클론 및 설정
git clone https://github.com/The-Swarm-Corporation/AdvancedResearch.git
cd AdvancedResearch
...
이 프로젝트는 MIT 라이선스(MIT License) 하에 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
만약 귀하의 연구에 이 작업물을 사용한다면, 원본 논문과 이 구현체 모두를 인용해 주세요:
@misc{anthropic2024researchsystem,
title={How we built our multi-agent research system},
author={Anthropic},
...
포괄적인 API 문서, 예제 및 고급 사용법은 다음과 같습니다:
- 원문 논문 - Anthropic의 "How we built our multi-agent research system"
- Swarms Framework - 기반이 되는 멀티 에이전트 AI 오케스트레이션 (Orchestration) 프레임워크
Issues: GitHub Issues
Discussions: GitHub Discussions
Community: Discord 참여
프로덕션급 에이전트 애플리케이션 (Agentic Applications)을 위해 Swarms 프레임워크로 구축되었습니다
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기