Prerequisites
- Python 3.10-3.13
- An API key from a supported provider (OpenAI, Anthropic, or Google Gemini)
Option A: Test your own agent
If you already have an agent running, usearksim init to scaffold a starter config and scenarios file, then point it at your endpoint.
1
Install and set your API key
pip install "arksim[anthropic]" or pip install "arksim[google]".2
Scaffold a starter config
- config.yaml pointing at
./my_agent.pywith sensible defaults - scenarios.json with four domain-agnostic starter scenarios (happy path, out of scope, ambiguous intent, multi-step)
- my_agent.py with a
BaseAgentsubclass ready to fill in (no server needed)
my_agent.py and replace the execute() body with your agent logic. All files include inline comments explaining each field.3
Run simulation and evaluation
4
View results
Open
results/final_report.html in your browser for an interactive report with scores, failure categories, and full conversation transcripts.Option B: Explore a pre-built example
If you want to see ArkSim in action before connecting your own agent, try one of the included examples.1
Install and set your API key
2
Download examples
examples/ folder with ready-to-run projects (bank-insurance, e-commerce, customer-service, openclaw).3
Run simulation and evaluation
- CLI
- Python
- Web UI
4
View results
Open
results/evaluation/final_report.html in your browser for scores, failure analysis, and full conversation transcripts.Using other LLM providers
ArkSim uses OpenAI by default for both the simulated user and the evaluator. To use Anthropic or Google instead, set the provider in yourconfig.yaml:
- Anthropic
- Google Gemini
Next Steps
Now that you’ve run your first simulation and evaluation, here’s where to go next.- Explore the core concepts: Dive deeper into Scenarios, Simulation, and Evaluation to understand how each piece works and how to configure them for your agent.
- Explore the examples: Run ArkSim against E-commerce, Insurance, Customer Service (tool calling), and Personal AI assistant (OpenClaw) to see different use cases and configs.