Observed since 21 Oct, 10:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AI Agent Security Competition SDK - Red teaming framework for tool-using AI agents
JED is a Python SDK and benchmark for evaluating tool-using agents under adversarial pressure.
It supports three package workflows:
Documentation: https://mbhatt1.github.io/competitionscratch/
Use aicomp evaluate when you want the scorer-style public interface and stable machine-readable artifacts.
Use aicomp test when you are iterating locally and want run history, compare, and visualize.
| Workflow | Submission | Primary entrypoint | Default env | Output |
|---|---|---|---|---|
| Kaggle red-team | attack.py | aicomp evaluate redteam | sandbox | normalized attack score |
| Package attack-only | attack.py | aicomp test redteam | sandbox | normalized attack score |
| Package guardrail-only | guardrail.py | aicomp test defense | sandbox | defense score |
| Package dual-track | submission.zip with attack.py and guardrail.py | aicomp test dual | sandbox | attack + defense |
The public Kaggle competition uses the attack-only path. The package itself supports all three workflows.
From PyPI:
pip install aicomp-sdk
From source:
git clone https://github.com/mbhatt1/competitionscratch.git
cd competitionscratch
pip install -e .
Generate a starter submission:
aicomp init attack
aicomp validate redteam attack.py
aicomp test redteam attack.py --budget-s 60 --agent deterministic
Run the standalone public-path scorer locally:
aicomp evaluate \
redteam \
attack.py \
--budget-s 60 \
--agent deterministic \
--env gym
attack.py must define AttackAlgorithm, inherit from AttackAlgorithmBase, and return list[AttackCandidate].
If you want CLI behavior that matches the public Kaggle default more closely, use aicomp evaluate redteam attack.py --env gym.
The standalone evaluator defaults to a short terminal summary. Use --verbosity progress for package-owned progress messages. Add --save-transcript, --save-framework-events, and --save-agent-debug when you want transcript.log, framework.jsonl, and agent-debug.jsonl written under --artifacts-dir.
aicomp test keeps its explicit-path diagnostics flags: --transcript-file, --event-log-file, and --agent-debug-jsonl.
Guardrail-only:
aicomp init guardrail
aicomp validate defense guardrail.py
aicomp test defense guardrail.py --budget-s 60 --agent deterministic
Dual-track:
zip submission.zip attack.py guardrail.py
aicomp test dual submission.zip --budget-s 60 --agent deterministic
aicomp evaluate dual submission.zip --budget-s 60 --agent deterministic --env sandbox
Attack scoring is replay-based. The evaluator replays each returned AttackCandidate and recomputes:
The public Kaggle leaderboard uses normalized attack score only. Package guardrail-only and dual-track workflows also expose defense scoring.
SandboxEnv is the default environment for local evaluator runs.GymAttackEnv is available when you explicitly pass --env gym for Kaggle-style parity.SandboxEnv(...) construction requires an explicit agent= instance.aicomp test defaults to 1800 seconds for redteam, 1800 seconds for defense, and 3600 seconds total for dual (1800/1800 split).docs/GETTING_STARTED.mddocs/KAGGLE_REDTEAM_GUIDE.mddocs/GUARDRAILS_GUIDE.mddocs/SCORING.mddocs/API_REFERENCE.mdaicomp_sdk/ - package codeexamples/ - runnable examplestests/ - unit and integration testsMIT. See LICENSE.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 3.1.2 | 19 Jun 2026 | 12 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 21 Oct, 10:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:c597664104e0b41319d20039bba851ad06f4417bf04bdb76f7a3be859e343a94