XAgent: 복잡한 작업을 하위 작업으로 분해하고 안전한 Docker 샌드박스에서 실행하는 자율적인 범용 에이전트
해결하는 문제
XAgent는 지속적인 인간 개입 없이 복잡하고 범용적인 작업을 해결하도록 설계된 자율 에이전트입니다. 데이터 분석, 코딩, 연구와 같은 다단계 워크플로를 실행하는 문제를 해결하기 위해, 이를 관리 가능한 하위 작업으로 나누고 안전한 샌드박스 환경에서 실행합니다.
작동 방식
XAgent는 작업 실행을 관리하기 위해 세 부분으로 구성된 아키텍처를 사용합니다:
- Dispatcher: 작업을 적절한 에이전트에 동적으로 할당합니다.
- Planner: 고수준 목표를 하위 작업 및 마일스톤으로 나누고 진행하면서 계획을 수정합니다.
- Actor: 도구 모음을 사용해 실제 단계를 실행하며, 장애가 발생하면 인간과 협업할 수 있습니다.
안전을 보장하기 위해 모든 작업은 ToolServer 내에서 수행됩니다. ToolServer는 보안 환경을 제공하는 Docker 기반 컨테이너이며, 에이전트에게 파일 편집기, Python 노트북, 웹 브라우저, bash 쉘에 대한 접근 권한을 부여합니다.
대상 사용자
LLM 기반 어시스턴트를 필요로 하며, 자율적인 소프트웨어 엔지니어링, 데이터 과학, 일반 연구 작업을 수행하고 안전한 실행 환경을 유지하고자 하는 사용자들을 위한 것입니다.
주요 특징
- Sandboxed Execution: 모든 도구 사용은 안전을 위해 Docker 컨테이너 내부에서 이루어집니다.
- Human-in-the-loop: 정보가 부족할 때 에이전트는
AskForHumanHelp도구를 통해 인간의 도움을 적극적으로 요청할 수 있습니다. - Extensible Toolset: Python 노트북, 쉘 접근, Rapid API 통합 등 다양한 도구를 지원합니다.
- Integrated GUI: 명령줄 외에도 에이전트와 상호작용할 수 있는 웹 기반 인터페이스를 제공합니다.
Sources
- RepoOpenBMB/XAgent