Every current frontier model reasons before it answers, and how much it reasons is a request parameter. That is a red-team dimension, not a tuning knob: the same attack can land differently at low effort than at max. ai-blackteam normalizes effort across vendors and captures the reasoning trace where the provider returns one.

Setting the effort

Each vendor uses a different shape under the hood (Anthropic output_config.effort, the OpenAI-compatible family reasoning_effort, Gemini a thinking config). ai-blackteam maps the normalized level onto the right shape and validates it up front. Sending an effort level to a model that has no thinking stage is a clear error, not a silent no-op.

Capturing the reasoning trace

Attacks scored on the reasoning channel request the trace automatically. To force it on or off for any attack:
The trace is stored separately from the answer, so a reasoning-layer attack can score the two channels independently.

Provider reasoning support

16 of the 17 providers carry the reasoning trace and, where the vendor reports one, the reasoning token count. The count is recorded only when the provider actually reports it; absent stays NULL, never a fabricated zero. Ollama and Bedrock fold reasoning tokens into their total output count, so reasoning_tokens stays NULL for them rather than reporting a made-up number.