- 2026-09-01: Published nika-bench 0.2.0.
nika leaderboard submitnow packs agent trajectories and opens a Hugging Face dataset PR; see leaderboard submission. - 2026-08-15: Operational settings moved fully to
config/nika.yaml. New installations can copyconfig/nika.example.yaml; existing installations with operational.envkeys can runnika config migrate. - 2026-08-13: Updated benchmark labels and evaluation. Users with older custom benchmark YAML can migrate their case matrices.
Think about SWE-Bench, but for network troubleshooting. NIKA, Network Incident Benchmark for AI Agents, is an open benchmark for agentic evals on network troubleshooting tasks. NIKA reproduces hundreds of realistic faults covering data center networks, campus networks, ISP backbones, SDN fabrics, overlay networks, and Kubernetes CNIs. It connects any agent directly to a live network stack while the incident is ongoing, evaluating the ability of the AI agent to troubleshoot the network using network diagnostic tools, switch CLIs, and network telemetry data. You don't need physical hardware to run the benchmark, NIKA is powered by state-of-the-art network emulation backends like Kathará and Containerlab, so you can run it on your laptop or in the cloud.
NIKA lets you plug in any LLM or agent framework and measure its operational capability under identical, reproducible conditions.
It helps different users answer questions like:
- 💬 Network Manager "A vendor is pitching me an AI solution for network operations. It passes all the standard telecom benchmarks (TeleQnA, TeleLogs, TeleMath, 3GPP-TSG), but I need objective evidence it can handle real incidents before I sign off."
- 💬 Network SRE "I respond to network incidents every day. I want an AI agent to help, but I'm not sure it will understand my topology or make things worse."
- 💬 AI Researcher "I'm designing a new harness for long-horizon network tasks. I need a benchmark to ablate components, measure reproducibly, and compare against published baselines."
- 💬 Applied ML Engineer "I want to fine-tune an open-source model on network troubleshooting and need a structured dataset paired with a rigorous evaluation framework."
- 💬 Contributor "I want to contribute a new network scenario or fault type to the community and have it evaluated systematically."
NIKA combines two components:
- NIKA Benchmark — a suite of reproducible incidents defined by a network scenario and an injectable root cause.
- NIKA Orchestrator — a modular platform that deploys live labs, injects faults, connects agents to interactive MCP tools, and evaluates their submissions.
NIKA constructs benchmark incidents from recurring failure mechanisms. The failure taxonomy uses a network-subsystem domain plus orthogonal cause, symptom, scope, temporal, and impact metadata. Failure IDs and injection behavior remain stable across taxonomy changes.
| Failure domain | Registered failure types | Working-matrix cases |
|---|---|---|
| Link & Interface | 6 | 267 |
| Routing & Control Plane | 8 | 196 |
| Forwarding, Encapsulation & Policy | 26 | 324 |
| Service Networking | 6 | 17 |
| Management & Orchestration Plane | 4 | 11 |
| Addressing, Neighbor & Naming | 13 | 132 |
| Endpoint & Application | 2 | 38 |
| Traffic, Queueing & Resource | 3 | 25 |
| Security | 7 | 88 |
| Total | 75 | 1,098 |
Run uv run nika failure describe <failure_id> to inspect the taxonomy metadata and injection parameter schema. The failure reference lists all 75 IDs with their injection and verification contracts.
- Network emulators: NIKA attaches to state-of-the-art network emulators as backends. Are you a Kathará or Containerlab user? You can use NIKA with both.
- Pre-built incident scenarios: Running your evals is quite simple: start any of the pre-built network scenarios in the NIKA benchmark, with automatic incident replay and evaluation mechanisms.
- Bring any AI agent: You can use our default agents (Claude Code, Codex, LangGraph), or plug your custom AI agent harness, see Agent integration workflow.
- Agent sandboxing: Agents run in isolated environments, with controlled access to the network, filesystem and telemetry tools, see Agent sandboxing.
- YAML-based fault injection: Failures can be customized via a declarative interface:
nika failure describe, and later--set key=value. - MCP network telemetry: Pingmesh server, InfluxDB network telemetry and CLI access to routers and switches.
- Multi-session: Run isolated sessions in parallel to speed up your evaluations.
- Remote execution mode: Run the emulated network and telemetry MCP gateways on any remote server, see NIKA Remote.
- Reproducibility and leaderboard: Refer to the frozen
nika-benchreleases, and submit your results to our up-to-date leaderboard. - NIKA SDK: For users who wish to extend with new failure cases using NIKA's APIs for traffic generation and fault injection, see Creating benchmark tasks.
Requirements: Python 3.12+, and uv for dependency management. Additionally, NIKA needs Docker and at least one network emulation backend. Currently supported backends are:
- Kathará — install with
--extra katharaoption below. - Containerlab — install with
--extra containerlaboption below. - Both — install with
--extra labsoption below.
switch_internal_packet_corruption also needs controller-host eBPF build
tooling. On Debian or Ubuntu, install it with:
sudo apt-get update
sudo apt-get install -y clang iproute2This is a controller-host prerequisite. It is not installed in lab nodes or Agent sandboxes.
git clone https://github.com/sands-lab/nika
cd nika
uv sync --extra labs # or --extra kathara / --extra containerlab / (no extra)
source .venv/bin/activate
cp .env.example .envKeys live in .env; agent/benchmark settings live in config/nika.yaml (CLI flags override YAML). Copy the templates, then edit:
cp .env.example .env
cp config/nika.example.yaml config/nika.yaml
nika config showIf an existing .env contains operational settings, run nika config migrate instead. See the run configuration reference for precedence, defaults, and validation rules.
Provider — use a built-in provider (openai / anthropic / deepseek). Put the matching API key in .env, and set agent.provider in YAML:
# .env
OPENAI_API_KEY=... # or ANTHROPIC_API_KEY / DEEPSEEK_API_KEY
# config/nika.yaml
agent:
provider: openai # or anthropic / deepseekCustom — use any OpenAI-compatible endpoint (OpenRouter / Ollama / vLLM / …). Put the key in .env (omit if unauthenticated), and set base_url (and optional model) under agent.custom in YAML:
# .env
NIKA_CUSTOM_API_KEY=... # optional if the endpoint needs no auth
# config/nika.yaml
agent:
provider: custom
custom:
base_url: https://openrouter.ai/api/v1
model: null- Agent Sandboxing: See the agent sandbox guide for sandboxed execution requirements.
- Remote Mode: Use remote lab execution to run the emulated network and telemetry MCP gateways on a separate server while the agent runs locally.
Run one incident end-to-end with a task label ({scenario}_{problem}, or {scenario}_{s|m|l}_{problem} when the scenario is sized):
nika agent list
nika agent run -a byo.langgraph -p openai -m gpt-5-mini \
--problem dc_clos_s_link_downThat deploys the lab, injects the fault, runs the agent, closes the session, and writes evaluation results.
To run a frozen benchmark release:
nika benchmark run --release 0.2.0 --split test --result_dir results/my-run --batch-size 4
nika eval summary --result_dir results/my-runFor lab control (env / failure / session), inject parameter overrides, and the full command tree, see the CLI reference.
Pick the path that matches what you're trying to do:
🏁 I want to run the benchmark, any agent
- Quick start — end-to-end task run or frozen release.
- Run configuration: YAML settings, credentials, defaults, and migration.
- CLI reference:
nikacommands, sessions, and result paths. - Leaderboard submission (GitHub scores + Hugging Face trajectories)
🔌 I want to connect my own agent
- Built-in agents: built-in agents and configuration.
- Agent integration workflow: agent contract and integration workflow.
- Agent skills: reusable troubleshooting knowledge you can attach to an agent.
- Agent sandboxing: isolated microVM execution.
🌐 I want to create a new network scenario
NIKA is part of a growing ecosystem. The table below compares NIKA with other benchmarks in terms of their focus, agent interactivity, variety, scale, and realism. While the best benchmark depends on your use case, NIKA currently outstands for realistic agentic evaluations in online environments**.
| Benchmark | Description | Variety | Scale | Environment Realism | Type | Best for |
|---|---|---|---|---|---|---|
| NIKA | Live network troubleshooting | ⭐️⭐️⭐️ 75 registered fault types 40 scenario IDs |
⭐️⭐️ 1,098 incident variants |
⭐️⭐️⭐️ ✔ Kathará/Containerlab emulation ✔ Vendor CLIs & telemetry tools |
🟢 Online | Agentic evals |
| NetOpsBench | Live network troubleshooting | ⭐️ 13 fault types 1 network type |
⭐️⭐️ ~600 incident variants |
⭐️⭐️⭐️ ✔ Containerlab emulation ✔ Vendor CLIs & telemetry tools |
🟢 Online | Agentic evals |
| NetArena | Network operations | ⭐️ 3 setups, 5 fault types |
⭐️⭐️⭐️ ~9,000 variants |
⭐️⭐️ Mininet Basic netutils (e.g., ping) |
🟢 Online | Large-scale synthetic variants for ML |
| NetConfEval | Basic network configuration | ⭐️ Reachability, waypoint, load balancing on 8x topologies |
⭐️⭐️⭐️ ~3,000 variants |
⭐️ Simple offline validator |
🔴 Offline / Static | Basic LLM config-generation capability |
| Cornetto | Config-repair with formal verification | ⭐️⭐️ 50 fault types, misconfigurations only |
⭐️⭐️ 231 scenarios, 20-754x topology size |
⭐️⭐️ Batfish |
🔴 Offline / Static | Basic LLM config-fix capability |
| GSMA Open Telco | Q&A telecom knowledge | ⭐️⭐️ Multiple telecom datasets |
⭐️⭐️⭐️ 20,588 samples |
⭐️ Simple offline validator |
🔴 Offline / Static | Basic LLM telecom knowledge |
Notes: Type=Online indicates that agents can observe, modify and interact with a live network environment while running. Offline benchmarks evaluate pre-collected (or generated) samples.
If you use NIKA in your research, please cite:
@misc{nika25long,
title = {A Network Arena for Benchmarking AI Agents on Network Troubleshooting},
author = {Zhihao Wang and Alessandro Cornacchia and Alessio Sacco and Franco Galante and Marco Canini and Dingde Jiang},
year = {2025},
eprint = {2512.16381},
archivePrefix = {arXiv},
primaryClass = {cs.NI},
url = {https://arxiv.org/abs/2512.16381}
}Please also cite our NGNO '25 paper:
@inproceedings{nika25ngno,
title = {Towards a Playground to Democratize Experimentation and Benchmarking of AI Agents for Network Troubleshooting},
author = {Wang, Zhihao and Cornacchia, Alessandro and Galante, Franco and Centofanti, Carlo and Sacco, Alessio and Jiang, Dingde},
year = {2025},
publisher = {Association for Computing Machinery},
url = {https://doi.org/10.1145/3748496.3748990},
booktitle = {Proceedings of the 1st Workshop on Next-Generation Network Observability},
location = {Coimbra, Portugal},
series = {NGNO '25}
}We thank the authors of AIOpsLab for their useful feedbacks.
NIKA is released under the MIT License.
