본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 20. 16:29

ScienceBoard: 실제 과학적 워크플로우에서의 멀티모달 자율 에이전트 평가

요약

ScienceBoard는 실제 과학적 워크플로우를 수행하는 멀티모달 자율 에이전트를 평가하기 위한 프레임워크이자 벤치마크입니다. OSWorld를 기반으로 VMware 환경에서 작동하며, ICLR 2026에 채택된 연구 성과를 바탕으로 다양한 모델의 에이전트 성능을 측정할 수 있는 환경을 제공합니다.

핵심 포인트

  • 실제 과학적 연구 워크플로우를 모사하는 멀티모달 자율 에이전트 평가 프레임워크
  • ICLR 2026 채택 및 ICML 2025 구두 발표 선정 등 학술적 검증 완료
  • VMware Workstation Pro와 OSWorld를 기반으로 한 가상 머신 환경 지원
  • OpenAI, Google Gemini, Anthropic 및 다양한 오픈 소스 모델(QwenVL, InternVL 등) 지원
  • 멀티 에이전트 협업 시스템을 구축할 수 있는 Community 클래스 구조 제공

"ScienceBoard: 실제 과학적 워크플로우에서의 멀티모달 자율 에이전트 (Multimodal Autonomous Agents) 평가"를 위한 코드, 환경 및 데이터입니다.

2026-01-26: ScienceBoard가 ICLR 2026에 채택되었습니다! 🎉
2025-08-28: ScienceBoard에서 SOTA (State-of-the-Art)를 달성한 듀얼 브레인 에이전트인 CODA를 출시합니다. 🧠
2025-06-30: 새로운 평가 결과 (GUI-Actor, UI-TARS-1.5) 및 에이전트 궤적 (trajectories)을 공개합니다. 🎊
2025-06-08: ScienceBoard가 WCUA@ICML 2025에서 구두 발표 (oral paper)로 선정되었습니다! 🚀
2025-06-04: ScienceBoard의 가상 머신 (virtual machine) 스냅샷을 공개합니다. 🌏
2025-05-27: 논문, 환경, 벤치마크 및 🌐 프로젝트 웹사이트의 초기 버전을 출시합니다. 확인해 보세요! 🚀

프레임워크의 인프라는 Ubuntu 또는 Windows 환경에서 VMware Workstation Pro (2024년 5월부터 개인용은 무료)와 함께 OSWorld를 기반으로 합니다. 귀하의 장치가 이러한 사전 준비 사항의 최소 요구 사항을 충족하는지 확인하십시오.

VMware Workstation Pro 17과 Hugging Face에서 제공하는 사전 제작된 이미지를 다운로드하세요.

이 저장소 (repository)를 클론 (clone)하고 필요한 패키지를 설치하세요:

git clone https://github.com/OS-Copilot/ScienceBoard cd ScienceBoard conda create -n sci python=3.11 conda activate sci pip install -r requirements.txt

특히 community와 관련된 복잡한 설정이 포함된 경우, 민감한 정보는 환경 변수 (environment variables)에 숨기고 main.py의 평가 프로세스를 직접 수정하는 것을 권장합니다.

참고

Community는 하나 이상의 모델이 작업을 완료하는 협력 형태를 지정합니다. Community를 상속받는 새로운 클래스와 __call__() 메서드를 생성하여 자신만의 멀티 에이전트 (multi-agents) 시스템을 맞춤 설정할 수 있습니다.

main.py 템플릿에서 사용되는 항목:
VM_PATH: vmware .vmx 파일 경로. VM.zip 경로로 설정하면 자동으로 (반복적으로) 추출됩니다.
HTTPX_PROXY: 필요한 경우 프록시 (proxy) URL. Linux에서 HTTP_PROXYHTTPS_PROXY와의 충돌을 피하십시오.
OPENAI_API_KEY: OpenAI GPT를 위한 API 키.
GOOGLE_API_KEY: Google Gemini를 위한 API 키.
ANTHROPIC_API_KEY

Anthropic Claude용 API 키;

그리고 오픈 소스 모델을 위한 변수들:

ModelBase URLName
QwenVLQWEN_VL_URLQWEN_VL_NAME
InternVLINTERN_VL_URLINTERN_VL_NAME
QVQQVQ_VL_URLQVQ_VL_NAME
OS-AtlasOS_ACT_URLOS_ACT_NAME
GUI-ActorGUI_ACTOR_URLGUI_ACTOR_NAME
UI-TarsTARS_DPO_URLTARS_DPO_NAME

사용되는 곳:

sci/Presets.py

:LEAN_LIB_PATH
: Lean 4 REPL용 경로;
:QT6_LIB_PATH
: Qt6의 동적 라이브러리 디렉토리;
:FFI_LIB_PATH
: 동적 라이브러리

: 여러 에이전트 간의 협력 방식; AllInOne 사용

OSWorld에서 상속된 표준 설정을 위한 것; ignore

: 로그에서 작업이 완료되었음을 나타낼 때 ( result.out 의 존재 여부를 확인하여) 건너뜀. True로 설정할 경우;

: 실패한 케이스만 재시도하기 위해 동일한 프로그램을 다시 실행할 수 있음; debug

: 모델을 호출하는 대신 수동으로 작업을 완료함; relative

: VM이 상대 좌표를 사용하는 pyautogui 코드를 실행할 수 있도록 허용함; 기본적으로 InternVL-3에서 사용됨.

초기화 중 오류 발생:

Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/init.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

장치의 성능 부족으로 인해 초기화 시도 시 대상 앱이 아직 시작되지 않았습니다; 작업의 JSON 파일 내 'wait' 필드에 더 큰 값을 할당해 보세요.

접근성 트리 (accessibility tree)를 가져오지 못함:

Traceback (most recent call last):
File "os-sci/sci/Tester.py", line 396, in call
counter._pass() if task_info() else counter._fail()
^^^^^^^^^
File "os-sci/sci/Tester.py", line 174, in call
return self.task()
^^^^^^^^^
File "os-sci/sci/base/task.py", line 175, in _avail_wrapper
return method(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "os-sci/sci/base/task.py", line 393, in call
return self.__call()
^^^^^^^^^^^^^File "os-sci/sci/base/task.py", line 381, in __call
stop_type, stop_args = self.predict()
^^^^^^^^^^^^^
File "os-sci/sci/base/task.py", line 175, in _avail_wrapper
return method(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "os-sci/sci/base/log.py", line 462, in record_wrapper
return_value = method(self)
^^^^^^^^^^^
File "os-sci/sci/base/task.py", line 316, in predict
invalid = self._step(step_index)
^^^^^^^^^^^^^^^^^^^^^File "os-sci/sci/base/task.py", line 260, in _step
observation = {

ScienceBoard에 새로운 애플리케이션을 추가하고자 한다면, 대상 애플리케이션과 본 저장소(repository)를 충분히 이해하고 있는지 반드시 확인하십시오.

  • 대상 애플리케이션의 내부 상태(inner states)를 드러내는 플러그인(plugin)을 작성하거나 서버를 이식(implant)하십시오. 아래는 저희가 수정한 애플리케이션들의 저장소 목록입니다:

    • chimerax-states: ChimeraX를 위한 플러그인;
    • kalgebra: KAlgebra를 재컴파일한 복사본;
    • Celestia: Celestia를 재컴파일한 복사본;
    • grass-gis: Grass GIS의 Python GUI 부분.
  • sci/Template을 복사하여 대상 애플리케이션의 이름으로 template.py를 변경하십시오.

    • template.py: Raw / VM 애플리케이션을 위한 직접적인 매니저(managers);
    • task.py: 서버와 RESTful API를 사용하여 태스크(tasks)를 초기화 및 평가;
    • __init__.py: template.py의 이름을 변경.
  • 태스크(tasks)를 위한 JSON 파일과 수정된 VM 이미지(VM images)를 작성하십시오.

이 프로젝트는 최소한 다음과 같은 구성으로 실행하는 것을 권장합니다:

  • CPU: Intel Core i7-11700
  • GPU: 내장 그래픽(Integrated graphics)으로 충분함
  • 메모리(Memory): 32 GB RAM
  • 저장 공간(Storage): 100 GB 이상의 사용 가능한 디스크 공간

저희의 연구에 관심이 있거나 본 저장소 / 저희의 데이터가 도움이 되었다면, 저희 논문을 인용할 때 다음 인용 형식을 사용해 주시기 바랍니다:

@article{sun2025scienceboard,
title={ScienceBoard: Evaluating Multimodal Autonomous Agents in Realistic Scientific Workflows},
author={Sun, Qiushi and Liu, Zhoumianze and Ma, Chang and Ding, Zichen and Xu, Fangzhi and Yin, Zhangyue and Zhao, Haiteng and Wu, Zhenyu and Cheng, Kanzhi and Liu, Zhaoyang and others},
...

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0