CRAB Cross-Environment Benchmark

A Python-centric framework for building and evaluating multimodal language-model agent environments.

Source repo
camel-ai/crab
Stars
★ 432
Last updated
4d ago
Primary language
Python

At a glance

How it runs
CLIFramework
Works with
Portable with changesOpenAI API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Python 3.10 or newerShell / CLINetwork access
Typical use
A research team creating repeatable tasks and evaluators for multimodal language-model agents.
Not a fit if
  • Integrators whose target systems are not reachable via Python functions
  • Teams that need a known license before adopting it

What does this agent do, and when should you use it?

CRAB is a Python-centric framework for building benchmark environments for LLM agents. It brings in-memory environments, Docker-hosted environments, virtual machines, and distributed physical machines behind a unified interface when they are accessible through Python functions. Developers add actions by applying the @action decorator to Python functions and define environments by combining actions. Tasks and their evaluators are also defined in Python, while a graph evaluator produces fine-grained metrics. The repository includes the CRAB-Benchmark-v0 datasets and experiment code, plus template examples that run with an OpenAI agent.

CRAB uses Python functions as the environment-access boundary: applying @action to a function adds an action, and combining actions defines an environment. An agent accesses multiple environments at the same time through a unified interface; the documented deployment options include in-memory, Docker-hosted, virtual-machine, and distributed physical-machine environments. Users define tasks and corresponding evaluators in Python, and the graph evaluator returns fine-grained metrics. The supplied example workflow sets OPENAI_API_KEY and runs python examples/single_env.py or python examples/multi_env.py.

  1. A research team creating repeatable tasks and evaluators for multimodal language-model agents.
  2. An engineering group evaluating an agent that must coordinate several environments accessible through Python functions.
  3. A benchmark author bringing Docker-hosted services, virtual machines, and in-memory environments into one evaluation setup.
  4. An agent evaluator who needs fine-grained task metrics from a graph evaluator.
  5. A developer validating an OpenAI-agent integration with the provided single-environment or multi-environment templates.

How do you install or deploy this agent?

Python 3.10 or newer is required. Install with: pip install crab-framework[client]. To run the provided OpenAI template examples, set credentials with export OPENAI_API_KEY=<your api key>, then run python examples/single_env.py or python examples/multi_env.py.

How do you use this agent?

Add @action to Python functions to create actions, then combine those actions to define an environment. Define tasks and their evaluators in Python, and expose multiple accessible environments through the unified interface. For a first run, set OPENAI_API_KEY and execute python examples/single_env.py; use python examples/multi_env.py for the multi-environment template. CRAB-Benchmark-v0 datasets and experiment code are in crab-benchmark-v0/.

What are this agent's strengths and limitations?

Pros
  • Its @action decorator makes Python functions the direct mechanism for defining environment actions.
  • A unified interface spans in-memory, Docker-hosted, virtual-machine, and distributed physical-machine deployment options.
  • The graph evaluator is explicitly intended to provide fine-grained metrics.
  • The repository includes runnable OpenAI-agent templates for both single- and multi-environment setups.
Limitations
  • The documented runnable templates require an OPENAI_API_KEY, so that path depends on OpenAI credentials.
  • Target environments must be accessible through Python functions; systems outside that boundary need integration work.
  • Docker, virtual machines, and physical machines are named as deployment options, but the supplied material does not give configuration details for each.
  • License information is unknown in the supplied repository metadata.

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
CRAB Cross-Environment Benchmark This agent 28 · Major gaps CLIFree + model costs ★ 432 4d ago Python OpenAI API
OSWorld 2.1 Computer-Use Agent Benchmark 53 · Major gaps CLIFree + model costs ★ 411 22d ago Python OpenAI API · Claude API
Cheshire Cat AI 47 · Major gaps CLIFree ★ 3.1k 3mo ago Python —
Multi-SWE-bench 46 · Major gaps CLIFree ★ 364 10mo ago Python —

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
28/ 100 5-point scale 1.4 / 5
Trust 0/29
Reliability 3/14
Adaptability 9/18
Convention 8/18
Effectiveness 6/13
Verifiability 2/8
Why each dimension lost points
Trust0 / 29 · 0.0/5

Evidence shows no mechanisms for permission management, user confirmation, data flow transparency, sensitive data handling, dependency security, external effects, rollback, or source attribution. README and pyproject.toml do not mention security features. Therefore all trust criteria score 0.

Reliability3 / 14 · 1.1/5

Self-consistency: README and pyproject.toml descriptions are consistent, but test files show many tests skipped and no failure messages provided. Dependency availability: pyproject.toml lists dependencies but no lock file or verification mechanism. Failure messages: No error handling or user-actionable failure messages provided.

Adaptability9 / 18 · 2.5/5

Audience and scenarios: README clearly targets researchers and developers, provides benchmark scenarios. Capability boundaries: Documentation describes framework features but no explicit limitations. Trigger precision: Actions defined via decorators but no precise trigger conditions. Environment fit: Supports multiple environments but no detailed configuration guide.

Convention8 / 18 · 2.2/5

Information architecture: README and docs structure clear. Install notes: pip install command provided. Naming stability: Version number exists but no changelog. Examples and FAQ: Examples provided but no FAQ. Known limitations: Not mentioned. License: pyproject.toml declares Apache 2.0 but no license file. Versioning and changelog: Version number exists but no changelog. Maintenance responsibility: Author and maintainer info present but no explicit maintenance policy.

Effectiveness6 / 13 · 2.3/5

Output usability: Example outputs provided but not detailed. Marginal value: As a benchmark framework, provides novel evaluation method. Cost-benefit: No performance or cost analysis.

Verifiability2 / 8 · 1.3/5

Claim traceability: README cites paper but no detailed verification. Cross-source corroboration: arXiv link present but no other sources. Fact-inference separation: No distinction between facts and inferences.

Risks and how to mitigate them
  • Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
  • Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
  • Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
  • Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
  • The repository lacks security mechanisms such as permission control, user confirmation, or data flow transparency; use with caution.
  • Test files show many tests skipped and no failure messages provided, so reliability evidence is insufficient.
  • No license file provided despite pyproject.toml declaring Apache 2.0; needs confirmation.
  • No changelog provided, version update history is opaque.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision c0790b0d55e3 New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.1.2
  2. v0.1.1
  3. v0.1.0

FAQ

What credentials do the supplied examples need?
The OpenAI template examples require OPENAI_API_KEY.
Which environment types does CRAB document?
It documents in-memory, Docker-hosted, virtual-machine, and distributed physical-machine environments that are accessible through Python functions.
Is CRAB limited to one environment per agent run?
No. The README states that an agent can access multiple environments at the same time through a unified interface, and it includes multi_env.py.
How do I add an environment action?
Apply the @action decorator to a Python function, then combine actions to define the environment.
Where are the benchmark datasets and experiment code?
They are in the crab-benchmark-v0/ directory.
View on GitHub ↗ Install ↓

Related agents