Strikes is a platform for building, experimenting with, and evaluating AI security agent code.
- Experiment + Tasking + Observability in a single place that's lightweight and scales.
- Track your data with parameters, inputs, and outputs all connected to your tasks.
- Log your artifacts — data, models, files, and folders — to track data of your Dreadnode runs, enabling easy reuse and reproducibility.
- Measure everything with metrics throughout your code and anywhere you need them.
- Scale your code from a single run to thousands.
import dreadnode as dn
import rigging as rg
from .tools import reversing_tools
dn.configure()
@dataclass
class Finding:
name: str
severity: str
description: str
exploit_code: str
@dn.scorer(name="Score Finding")
async def score_finding(finding: Finding) -> float:
if finding.severity == "critical":
return 1.0
elif finding.severity == "high":
return 0.8
else:
return 0.2
@dn.task(scorers=[score_finding])
@rg.prompt(tools=[reversing_tools])
async def analyze_binary(binary: str) -> list[Finding]:
"""
Analyze the binary for vulnerabilities.
"""
...
with dn.run(tags=["reverse-engineering"]):
binary = "c2/downloads/service.exe"
dn.log_params(
model="gpt-4",
temperature=0.5,
binary=binary
)
findings = await analyze_binary(binary)
dn.log_metric("findings", len(findings))
We publish every version to PyPi:
pip install -U dreadnode
If you want to build from source:
poetry install
See our installation guide for more options.
Read through our introduction guide in the docs.
Check out dreadnode/example-agents to find your favorite use case.