ChatArena 아키텍처 탐색
ChatArena는 대규모 언어 모델(LLMs)을 위한 다중 에이전트 기반 게임 환경으로, 인공지능 간의 소통과 협업 능력을 향상시키는 것을 목표로 합니다. 프로젝트는 명확한 모듈화 설계를 통해 환경, 에이전트, 통신 메커니즘 세 가지 핵심 요소로 구성되어 있습니다.
기본 구조는 다음과 같습니다:
chatarena/backends/: OpenAI, Anthropic, Cohere 등 다양한 언어 모델 백엔드를 관리하는 디렉터리chatarena/environments/: 다양한 시나리오 기반 환경 정의 (예: 토론, 콘텐츠 검열, 체스 게임 등)chatarena/agent.py: 모든 에이전트의 기본 클래스를 정의chatarena/arena.py: 게임의 전체 제어 로직 및 상태 관리
개발 환경 설정
- 코드 저장소 복제:
git clone https://gitcode.com/gh_mirrors/ch/chatarena cd chatarena - 개발 의존성 설치:
pip install -e .[all] - 코드 품질 유지 도구 설정:
pip install pre-commit pre-commit install
코드 기여 절차
기여자는 다음 단계를 따라야 합니다:
- 저장소를 포크하고 새로운 브랜치 생성
- 변경 사항을 작성하고 테스트 통과 확인
- PR(풀 리퀘스트) 제출
기여 기준:
- 기존 테스트가 모두 통과해야 함:
pytest -v - 새로운 기능은 반드시 테스트 케이스 포함
- 문서 수정은 관련 환경 업데이트와 동일하게 수행
- 버전 변경이 필요한 경우, 버전 번호도 함께 업데이트
기능 확장 방법
1. 새로운 언어 모델 백엔드 추가
BaseModelBackend 추상 클래스를 상속하여 새 백엔드를 구현할 수 있습니다. 기존 예시인 openai.py 또는 anthropic.py 파일을 참조하면 됩니다.
2. 새로운 게임 환경 개발
새로운 환경을 추가하려면 다음 절차를 따릅니다:
chatarena/environments/폴더에 새 파일 생성Environment클래스를 확장하여 게임 규칙 및 상태 관리 구현- 환경 설정 및 조건을 정의
- 테스트 스크립트 작성
기존 예시 환경:
- 토론 시나리오:
chatarena/environments/umshini/debate.py - 콘텐츠 감시:
chatarena/environments/umshini/content_moderation.py - 체스 게임:
chatarena/environments/pettingzoo_chess.py
3. 웹 기반 테스트 실행
개발 완료 후, 실시간 테스트를 위해 웹 인터페이스를 사용할 수 있습니다:
python app.py
커뮤니티 활동 참여
프로젝트 발전을 위해 아래 활동에 적극적으로 참여하세요:
- 이슈 제안: 버그 발견 시 문제 상황, 재현 방법, 예상 결과와 실제 결과를 포함해 기재
- 의논 참여: 이슈 및 PR 논의에 의견을 제시하거나 피드백 제공
- 문서 개선:
docs/폴더 내 문서를 업데이트하여 신규 사용자 입문 경로를 최적화
기여자 필수 사항
- 코드 제출 전
pre-commit run --all-files실행으로 포맷 일관성 확보 - 대규모 변경은 사전에 이슈로 논의 권장
- 프로젝트의 코딩 스타일 및 변수명 규칙 준수
- PR 제출 시 명확한 변경 설명 포함