threepp
C++20 기반 크로스플랫폼 3D 라이브러리, 파이썬 바인딩 및 three.js 수준 API 제공
Scale AI가 강화학습 환경을 구축하기 위해 사용하는 오픈소스 프레임워크
The open-source framework Scale AI uses to build RL environments: composable environments behind an MCP gateway, any agent in any sandbox, tasks as DAGs.
개발 도구Python · TypeScriptGitHub @scaleapi온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Creating realistic RL environments requires collaboration between researchers, engineers, and domain experts across many dimensions: artifacts, environments tools, dynamism of the environment, reproducibility, and more. There is no open source framework for building these environments effectively. Until now.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗AgentEnv Framework is a Python SDK and CLI for building, deploying and running agentic environments and the tasks that grade agents inside them. Environments are containerized servers that speak the open agentenv-framework-protocol; AgentEnv Framework builds them into versioned images, deploys them behind a gateway, points an agent at them, and scores what the agent did.
Documentation: www.agentenvframework.com/docs covers environments, artifacts, agents, tasks, the registry and plugins.
Both packages are on PyPI. You need Python 3.11.4 or newer and, to run environments locally, a running Docker daemon. With uv, install the agent-env command as a tool:
uv tool install agentenv-framework
agent-env run hello
agent-env run hello runs the built-in hello task, which needs no Docker, model or configuration. To try it without installing anything, run it with uvx:
uvx --from agentenv-framework agent-env run hello
Or install it with pip, into a virtualenv:
pip install agentenv-framework
To use the SDK in your own project, add it as a dependency with uv add agentenv-framework. The explorer, agent-env up, needs an .agentenv/config.toml in the current folder or above it; an empty one keeps every local default. Environments and agents run as containers on the local Docker daemon by default; the sandbox docs cover the other sandbox providers and the extra each needs.
A plain install runs on local stores and needs no cloud SDK. The cloud store backends are extras: aws for S3, Secrets Manager, DynamoDB and ECR (pip install 'agentenv-framework[aws]'), and gcp for Cloud Storage, Secret Manager, Firestore and Artifact Registry (pip install 'agentenv-framework[gcp]'). A config that names a backend without its extra fails, naming the extra to install.
The distribution is named agentenv-framework, the import package is agent_env and the command is agent-env. It depends on agentenv-framework-protocol, whose import package is agentenv_protocol, and installs it too.
To work on agent-env itself, install from a clone with uv:
git clone https://github.com/scaleapi/agentenv-framework && cd agentenv-framework
uv sync --extra dev
source .venv/bin/activate
agent-env run also takes a bundle published in a Hugging Face Hub dataset:
agent-env run hf://<org>/<repo> # the main branch
agent-env run hf://<org>/<repo>@v1.0/bundles/hello # a tag, branch or commit, and the bundle's folder
The revision (a branch, tag or commit, percent-encoded when it holds a /; the main branch by default) resolves to a
commit, and only that commit's bundle and the dataset card are downloaded, into
$XDG_CACHE_HOME/agentenv/hf/<org>/<repo>/<commit> (~/.cache by default), where a later run of the commit finds
them. Without a path, the run takes the only bundle under bundles/, or the one the card's agentenv: default names,
else the repo's root when it has a kind folder (envs/, tasks/, ...). It prints the repo, commit and bundle, then
runs as a folder does, with ids under @hf/<org>/<repo>/<name>, so a rerun of the same commit reuses what the last one
wrote, and records the commit with each run. A bundle's <name> is its folder under bundles/, or its path for a folder
elsewhere; the root's ids are @hf/<org>/<repo>, and its name is the repo's. The card says what each bundle needs:
agentenv:
default: hello # the bundle a run without a path takes, of several under bundles/
bundles:
hello: # the bundle's <name>, or the repo's name for the root
plugins: ["agentenv-example>=1.2"] # what a bundle without a bundle.toml requires
setup: agent-env example setup # shown when a missing plugin, agent, env or artifact stops a run
Each run checks the bundle's bundle.toml, else the card's plugins, the first one before the bundle is downloaded; the
setup command is never run. A gated or private dataset needs hf auth login or HF_TOKEN.
A package of your own can add env types, providers, task steps and stores to agent-env, and agent-env plugin lists, checks, adds and removes installed plugins. The plugin docs show how.
Every task in a bundle is an OpenEnv env, with the openenv extra installed (pip install 'agentenv-framework[openenv]'). agent_env.openenv.build_app(bundle) returns the OpenEnv server for a bundle, a folder or an installed bundle's name, or for a mapping of split names to bundles. Any OpenEnv client resets it to a task, which deploys the task's envs and opens its agent's turn, acts through the envs' tools and an added end_turn tool, and gets the task's verifier score as its reward.
Servers and the env clock work in UTC. To run an agent in a user's time zone, the task sets it on the agent's deploy_agent step as env_vars: {"TZ": "America/New_York"}, which reaches the agent's sandbox, and names the zone in the agent's prompt. While the env clock is armed, the gateway's get_time tool takes that IANA name as time_zone and adds the local_time in that zone, and a trigger executor's working hours can take a time_zone instead of a fixed utc_offset, so they keep their local hours across daylight-saving changes.
CONTRIBUTING.md is the contributor guide: open an issue before anything larger than a bug fix, one logical change per pull request with tests, pull request titles in the form type(scope): summary, an approving review from a code owner (CODEOWNERS) and green CI. AGENTS.md is the repository map and conventions file for contributors and coding agents.
| Document | Covers |
|---|---|
| www.agentenvframework.com/docs | the user guide: environments, artifacts, agents, tasks, the registry and plugins |
packages/agentenv-protocol/README.md | wire contract, environment server SDK, A2A agent framework |
CONTRIBUTING.md | development setup, test tiers, CI jobs, pull request rules |
AGENTS.md | repository map, configuration and extension-point summary, conventions for contributors and coding agents |
SECURITY.md | private vulnerability reporting and supported versions |
CODE_OF_CONDUCT.md | Contributor Covenant |
.agentenv/config.example.toml | the all-local configuration to copy |
.env.example | a commented reference of the AGENT_ENV_* variables; agent-env never loads this file, export what you need yourself. Its AGENT_ENV_ENVIRONMENT line is read only by an installed plugin, never by agent-env |
The agentenv-framework distribution and agentenv-framework-protocol are versioned separately (0.9.x and 0.1.x today), both in their pyproject.toml; agent-env releases carry a vX.Y.Z tag, and agentenv-framework-protocol is bumped in the same commit and has no separate tag today. There is no agent_env.__version__ attribute; agent-env --version prints the installed version. Protocol extensions carry their version in the URI (urn:agentenv:clock/v1, urn:agentenv:agent-config/v1, urn:agentenv:trajectory/v1). One version can take more than one request shape: under v1 the skill, trajectory, snapshot and changelog extensions accept object-transfer requests next to their older shapes, and the request field lists on an agent's card say which ones that agent takes. Renamed CLI commands are removed outright; no deprecated aliases exist at this version. A pull request that breaks the classes and entry points plugins build on fails CI unless its title marks the break with !; beyond that, a written compatibility and deprecation policy does not exist yet.
A release is a version bump in both pyproject.toml files plus a vX.Y.Z tag. Maintainers cut releases: the bump is automated when a labelled pull request merges, so contributors do not edit version or push tags (see the Releases section of CONTRIBUTING.md). Each release publishes both packages to PyPI and gets a GitHub release whose notes list the pull requests merged since the previous one; there is no CHANGELOG.md.
Ask questions in Discussions Q&A, and report bugs with the bug report form. Report vulnerabilities privately through the contact in SECURITY.md, not in public issues; only the latest release is supported, so reproduce against it first. Contributors follow CONTRIBUTING.md and the Code of Conduct; every pull request needs a code-owner review. agent-env and agentenv-framework-protocol are licensed under the Apache License 2.0; see LICENSE and NOTICE. Their third-party dependencies and those dependencies' licenses are listed in THIRD_PARTY_NOTICES.md.
To cite AgentEnv Framework, use the metadata in CITATION.cff. GitHub's Cite this repository button in the repository sidebar exports it as APA or BibTeX:
@software{agentenv_framework,
author = {Arakelyan, Edgar and Polakam, Tejas and Singhal, Pratyush},
title = {AgentEnv Framework},
year = {2026},
url = {https://github.com/scaleapi/agentenv-framework},
license = {Apache-2.0}
}