최고 성능 AI 모델을 절반 비용으로 최적화·서빙하는 도구
수집된 에이전트 실행 기록(traces)을 바탕으로 작은 오픈소스 모델을 학습시키고, 요청에 따라 대형 모델과 소형 모델 간 라우팅을 수행하는 도구입니다. 라우팅을 통해 최고 수준(frontier)의 품질을 유지하면서도 비용을 획기적으로 절감할 수 있어 AI 인프라 비용 최적화에 매우 유용합니다.
World Model Optimizer(wmo)의 optimize 명령어는 Tinker API를 사용하여 수집된 에이전트 실행 기록을 더 작은 오픈소스 모델로 변환하며, 선택적으로 폐루프(closed-loop) 시뮬레이션 학습을 지원합니다. wmo의 serve 명령어는 최고 수준의 대형 모델과 소형 모델 간에 요청을 분배하는 엔드포인트를 노출합니다. RouterBench 벤치마크에 따르면, 이 방식은 최고 수준의 품질을 유지하면서도 비용을 27% 절감해 줍니다. 새로운 실행 기록이 들어올 때마다 파이프라인을 재실행하여 자체 소유한 모델을 지속적으로 개선할 수 있습니다.
🌐 플랫폼 | 📚 문서 | Discord
시작하기
- 제공자 등록
pip install world-model-optimizer
wmo providers set
이 명령어는 제공자를 인증한 다음, 해당 모델을 .wmo/pool.toml에 라우팅 후보로 등록하도록 제안합니다. 이 파일은 아래의 모든 과정에서 선택하는 모델 목록 역할을 합니다. 제공자의 자체 카탈로그(OpenRouter에 공개된 338개 모델 포함)를 검색하며, 해당 백엔드에 필요한 항목만 요청합니다. 이 명령어를 다시 실행하면 이미 등록된 모델 옆에 다른 제공자의 모델을 추가할 수 있습니다.
- OTel 실행 기록을 기반으로 라우터 튜닝
wmo build --file traces.jsonl --name my-model
# 실행 기록에서 남겨둔(held-out) 작업에 대해 등록된 모든 모델의 점수를 매깁니다.
wmo optimize route sweep my-model --traces traces.otel.jsonl
# 보고용으로 30%를 결정론적으로 남겨두고 나머지 70%에 대해 피팅(fit)합니다.
wmo optimize route fit matrix.json --kind knn \
--out .wmo/models/my-model/policy.json
- 서빙하기
wmo serve --name my-model
이전에 사용하던 모델과 비교하여 어떤 이점을 얻었는지 확인해 보세요. 이 보고서는 정책에 기록된 라우터 피팅 시나리오를 자동으로 제외합니다:
wmo optimize route report matrix.json .wmo/models/my-model/policy.json \
--baseline gpt-5.5
wmo optimize distill을 사용하여 자체 소형 모델을 풀에 증류(distill)하거나, wmo optimize route pin을 통해 라우팅 없이 단일 모델을 서빙하거나, wmo optimize harness를 통해 에이전트를 위한 최적화된 환경(harness)을 구축할 수 있습니다.
호스팅 플랫폼 platform.experientiallabs.ai에서 계정을 생성한 후, CLI를 인증합니다:
wmo login
플랫폼에서 에이전트 ID를 복사하고 현재 챔피언 환경(champion harness)을 실행합니다:
wmo run <agent-id>
E2B 백엔드 호스팅되는 에이전트는 이미 플랫폼이 관리하는 E2B 샌드박스에서 실행됩니다. E2B 내에서 로컬 최적화를 평가하려면, 추가 패키지를 설치하고 E2B 키를 제공하세요:
pip install "world-model-optimizer[e2b]"
export E2B_API_KEY=...
wmo optimize harness my-agent my-environment --tasks tasks.jsonl --backend e2b
API로 세계 모델(World Model) 사용하기 world-model-optimizer에는 에이전트 환경을 시뮬레이션하여 테스트 및 최적화에 사용할 수 있는 세계 모델이 포함되어 있습니다.
from wmo import Action, ActionKind
from wmo.config.store import WorldModelStore
from wmo.engine.loader import load_world_model
model_dir = WorldModelStore(".wmo").resolve("airline")
wm, _provider = load_world_model(model_dir)
session = wm.new_session(task="check out the cart")
obs = wm.step(session.id, Action(kind=ActionKind.TOOL_CALL, name="add_to_cart", arguments={"sku": "A1"}))
print(obs.content)
또는 HTTP를 통해(동일한 코드 경로) 모델 이름을 네임스페이스로 사용하여 호출할 수 있습니다:
GET /world_models, 그 다음 POST /world_models/{name}/sessions 및 POST /world_models/{name}/sessions/{id}/step
플랫폼 로그인 후 실행
wmo login 후, 동일한 wmo run 명령어로 호스팅된 세계 모델을 열거나 E2B에서 에이전트의 현재 챔피언 환경을 실행할 수 있습니다. 플랫폼이 모델 및 샌드박스 자격 증명을 관리하므로, 호스팅 실행 시 로컬 API 키가 필요하지 않습니다.
wmo login
wmo run <world-model-or-agent-id>
wmo run <agent-id> -u . --task "fix the failing tests"
작업 공간 업로드는 -u 옵션을 사용해 선택할 수 있습니다. WMO는 변경 사항을 실시간으로 동기화하고 동시 로컬 편집을 유지합니다. 장기 실행 에이전트는 분리하여 플랫폼에서 계속 실행할 수 있으며, 나중에 메시지를 보내거나 다시 연결할 수 있습니다.
wmo run <agent-id> -u . --detach
wmo run --send "Now run the full test suite"
wmo run --attach
wmo run --end
E2B 샌드박스의 런타임 에이전트 및 최적화 도구 세계 모델이 환경을 제공하는 동안 WMO는 격리된 E2B 샌드박스 내에서 실제 pi 워커를 실행할 수 있습니다. 최적화 및 평가 롤아웃이 병렬로 실행되며, 모델 자격 증명은 샌드박스 외부에 유지됩니다.
wmo optimize harness my-agent my-environment --tasks tasks.jsonl --ba