Repolode
apple-aiml-research

apple-aiml-research/ToolSandbox

LLM 에이전트의 도구 사용을 평가하는 상태 기반 대화형 벤치마크로, 사용자 시뮬레이터와 마일스톤 기반 채점 기능을 제공합니다.

스타
288
포크
33
열린 이슈
3
마지막 커밋
지난달

어떤 프로젝트인가요?

ToolSandbox는 Apple의 연구 논문과 함께 공개된 대규모 언어 모델의 도구 사용 평가 벤치마크입니다. 단일 프롬프트로 상태가 유지되지 않는 REST API를 테스트하는 벤치마크와 달리, 설정, 연락처, 메시지, 미리 알림 같은 상태가 유지되는 환경에서 도구를 실행하므로 한 번의 도구 호출이 이후 호출의 결과를 바꿀 수 있습니다.

이 프레임워크에는 에이전트와 여러 차례 대화를 주고받는 사용자 시뮬레이터와 도구 간에 암묵적인 의존성이 있는 Python 도구 모음이 포함되어 있습니다. 예를 들어 메시지를 보내려면 먼저 셀룰러 서비스를 활성화해야 합니다. 시나리오는 기본 기기 상태를 확장하는 Python 코드로 정의하며, 견고성을 테스트하기 위해 도구에 방해 도구를 추가하거나 이름을 바꾸거나 설명을 제거할 수 있습니다.

평가는 마일스톤 기반으로 이루어집니다. 각 시나리오는 필요한 중간 상태와 최종 상태를 DAG로 정의하며, 정해진 호출 순서와 일치하는지가 아니라 유효한 순서로 해당 상태에 도달했는지를 채점합니다. 프로젝트는 `tool_sandbox` CLI를 제공하며 OpenAI, Anthropic, Google Gemini, Cohere 모델과 vLLM을 통해 제공되는 오픈소스 모델을 지원합니다.

핵심 기능

  • 01설정, 연락처, 메시지, 미리 알림 상태가 유지되는 환경에서 도구를 실행합니다.
  • 02온폴리시 방식의 다중 턴 대화 평가를 위한 사용자 시뮬레이터를 내장합니다.
  • 03중간 단계가 유효한 순서라면 어떤 순서든 인정하는 마일스톤 DAG 채점 기능을 제공합니다.
  • 04방해 도구 추가, 도구 이름 변경, 타입 힌트 제거 등의 시나리오 변형을 지원합니다.
  • 05OpenAI, Anthropic, Gemini, Cohere 및 vLLM으로 호스팅되는 오픈소스 모델을 지원합니다.

활용 사례

  • 상태 의존성이 있는 다단계 도구 사용을 여러 LLM이 어떻게 처리하는지 비교합니다.
  • 에이전트가 작업을 완료하는 데 필요한 도구나 정보가 부족한 상황을 알아차리는지 테스트합니다.
  • 대화형 환경에서 에이전트의 도구 호출 동작을 위한 회귀 테스트를 구축합니다.

빠른 시작

  1. 1

    Python 3.9 conda 환경을 만듭니다

    conda create -n ToolSandbox python=3.9
  2. 2

    환경을 활성화합니다

    conda activate ToolSandbox
  3. 3

    저장소 루트에서 프로젝트와 개발 종속성을 설치합니다

    pip install '.[dev]'
  4. 4

    사용자 시뮬레이터와 에이전트 모두에 GPT-4o를 사용해 단일 시나리오를 실행합니다(API 키 자리표시자를 교체하세요)

    env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> RAPID_API_KEY=<YOUR_RAPID_API_KEY> tool_sandbox --user GPT_4_o_2024_05_13 --agent GPT_4_o_2024_05_13

사용 전 알아둘 점

  • 메타데이터에 라이선스가 명확히 명시되어 있지 않아 재사용 조건을 알 수 없습니다.
  • 호스팅 모델로 시나리오를 실행하려면 유료 API 키가 필요하며, 검색 시나리오에는 RapidAPI 키도 필요합니다.
  • 도구 호출은 샌드박스 없이 호스트 머신에서 직접 실행됩니다.

토픽

자주 묻는 질문

ToolSandbox은(는) 무엇인가요?
LLM 에이전트의 도구 사용을 평가하는 상태 기반 대화형 벤치마크로, 사용자 시뮬레이터와 마일스톤 기반 채점 기능을 제공합니다. ToolSandbox는 Apple의 연구 논문과 함께 공개된 대규모 언어 모델의 도구 사용 평가 벤치마크입니다. 단일 프롬프트로 상태가 유지되지 않는 REST API를 테스트하는 벤치마크와 달리, 설정, 연락처, 메시지, 미리 알림 같은 상태가 유지되는 환경에서 도구를 실행하므로 한 번의 도구 호출이 이후 호출의 결과를 바꿀 수 있습니다.
ToolSandbox은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
ToolSandbox은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
ToolSandbox은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. ToolSandbox의 마지막 커밋은 2026년 9월 11일입니다.
ToolSandbox은(는) 어디에 사용할 수 있나요?
상태 의존성이 있는 다단계 도구 사용을 여러 LLM이 어떻게 처리하는지 비교합니다. 에이전트가 작업을 완료하는 데 필요한 도구나 정보가 부족한 상황을 알아차리는지 테스트합니다. 대화형 환경에서 에이전트의 도구 호출 동작을 위한 회귀 테스트를 구축합니다.
ToolSandbox는 어떻게 설치하나요?
Python 3.9 conda 환경을 만듭니다: conda create -n ToolSandbox python=3.9 환경을 활성화합니다: conda activate ToolSandbox 저장소 루트에서 프로젝트와 개발 종속성을 설치합니다: pip install '.[dev]' 사용자 시뮬레이터와 에이전트 모두에 GPT-4o를 사용해 단일 시나리오를 실행합니다(API 키 자리표시자를 교체하세요): env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> RAPID_API_KEY=<YOUR_RAPID_API_KEY> tool_sandbox --user GPT_4_o_2024_05_13 --agent GPT_4_o_2024_05_13
ToolSandbox은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/apple-aiml-research/ToolSandbox

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트