MCPcopy Index your code
hub / github.com/ServiceNow/DoomArena

github.com/ServiceNow/DoomArena @v0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.0 ↗ · + Follow
428 symbols 1,852 edges 97 files 151 documented · 35%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DoomArena - Adaptive Security Testing against Evolving Risks

Quick Start

The DoomArena Intro Notebook is a good place for learning hands-on about the core concepts of DoomArena. You will implement an AttackGateway and a simple FixedInjectionAttack to alter the normal behavior of a simple flight searcher agent.

If you only want to use the library just run

pip install doomarena  # core library, minimal dependencies
pip install doomarena-taubench  # optional
pip install doomarena-browsergym  # optional

Export relevant API keys into your environment or .env file.

OPENAI_API_KEY="<your api key>"
OPENROUTER_API_KEY="<your api key>"

Advanced Setup

To actively develop DoomArena, please create a virtual environment and install the package locally in editable mode using

pip install -e doomarena/core
pip install -e doomarena/taubench
pip install -e doomarena/browsergym

Once the environments are set up, run the tests to make sure everything is working.

make ci-tests
make tests  # requires openai key

Then follow the environment-specific instructions for TauBench and BrowserGym

Core symbols most depended-on inside this repo

reset
called by 24
doomarena/browsergym/src/doomarena/browsergym/attack_gateway.py
close
called by 19
doomarena/browsergym/src/doomarena/browsergym/attack_gateway.py
step
called by 12
doomarena/browsergym/src/doomarena/browsergym/attack_gateway.py
get_webarena_subset
called by 10
doomarena/browsergym/src/doomarena/browsergym/webarena_subsets.py
get_attacks
called by 8
doomarena/core/src/doomarena/core/attacks/get_attacks.py
run_bgym_experiment
called by 6
doomarena/browsergym/src/doomarena/browsergym/scripts/run_bgym_experiment.py
get_next_attack
called by 5
doomarena/browsergym/src/doomarena/browsergym/attacks/div_injection.py
setup_logging
called by 5
doomarena/browsergym/src/doomarena/browsergym/scripts/run_bgym_experiment.py

Shape

Method 195
Function 153
Class 78
Route 2

Languages

Python100%

Modules by API surface

doomarena/core/tests/test_attack_gateway.py22 symbols
doomarena/browsergym/tests/test_popup_attack.py21 symbols
doomarena/taubench/tests/test_taubench_attack_gateway.py18 symbols
doomarena/browsergym/tests/test_banner_injection.py18 symbols
doomarena/browsergym/src/doomarena/browsergym/attack_gateway.py16 symbols
doomarena/taubench/src/doomarena/taubench/scripts/attack_script.py15 symbols
doomarena/browsergym/tests/utils.py14 symbols
doomarena/browsergym/tests/test_goal_modification.py14 symbols
doomarena/taubench/src/doomarena/taubench/attack_gateway.py12 symbols
doomarena/browsergym/src/doomarena/browsergym/scripts/run_bgym_experiment.py12 symbols
doomarena/core/src/doomarena/core/agent_defenses/llamaguard_v3.py9 symbols
doomarena/core/src/doomarena/core/agent_defenses/llamaguard_api.py9 symbols

For agents

$ claude mcp add DoomArena \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact