PyRIT vs DeepTeam: which LLM red teaming framework to choose
Choose PyRIT when your own team will write and maintain the attacks. It suits in-house red teams that script custom multi-turn attacks such as Crescendo, TAP and Skeleton Key, extend prompt converters and scorers, and keep every conversation and score in SQLite or Azure SQL memory so results can be queried later. Its targets cover OpenAI, Azure, Anthropic, Google and Hugging Face models, custom HTTP or WebSocket endpoints, and web apps driven through Playwright. The trade-off is effort: you build the attack library, choose the scorers and decide what counts as a failure. Check the Python version first. The PyRIT documentation recommends Python 3.13, and the PyPI package supports Python 3.10 up to but not including 3.15.
Choose DeepTeam when you need broad coverage quickly and a one-off assessment with a report at the end. It ships more than 50 ready-to-use vulnerabilities across data privacy, responsible AI, security, safety, business, agentic and custom categories, each scored pass or fail by an LLM-as-a-judge metric, along with more than 20 attack methods covering single-turn and multi-turn testing. Its tests map out of the box to the OWASP Top 10 for LLMs 2025, the OWASP Top 10 for Agents 2026, the NIST AI RMF and MITRE ATLAS, which gives an assessor shared control language without building a mapping yourself. DeepTeam is built on DeepEval and needs a model API key, such as OPENAI_API_KEY, to generate attacks and judge responses, so plan for judge-model usage in every run. Confident AI's commercial platform is optional for tracking and sharing reports.
The decision turns on three questions. First, who writes and maintains the attacks: if a security engineering team will own a growing library of scenario-specific attacks, PyRIT's scripting model fits, while a team that needs to start from a published catalog will move faster with DeepTeam. Second, whether results must be retained and queried: PyRIT's memory layer records conversations, scores and results, while a single assessment may only need a report at the end. Third, which framework names the controls your auditor or customer asks about. Ask them which taxonomy they expect, then confirm that the mapping you need exists in the version you install before you commit.
Which red teaming framework fits which scenario
This table maps common team situations to the framework that fits them better, PyRIT or DeepTeam. Read each row as a condition: the Why column states when the fit holds, so check that condition against your own team, timeline and cloud footprint before deciding.
| Scenario | Better fit | Why |
|---|---|---|
| In-house red team running repeated campaigns | PyRIT | Its memory layer records conversations, scores and results in SQLite or Azure SQL, which suits teams that keep history across many runs and want to script their own attack logic. This holds when the team has Python engineers to maintain the scripts. |
| One-off pre-launch assessment with a fixed deadline | DeepTeam | Its ready-made catalog of more than 50 vulnerabilities and more than 20 attack methods can produce a first pass quickly without building attack logic. This holds when the goal is breadth of coverage in a short window rather than custom campaign design. |
| Coverage evidence against OWASP Top 10 for LLMs 2025 or NIST AI RMF | DeepTeam | It maps tests to these frameworks out of the box, so the mapping work is already done. Confirm with your assessor that the built-in mapping matches the scope they expect, since a mapping is not a certification. |
| Multi-turn social engineering style attacks the team can tune | PyRIT | It ships multi-turn strategies such as Crescendo, TAP and Skeleton Key, and its converters and scorers can be adjusted. This holds when the team wants to change attack behavior itself rather than accept a fixed catalog. |
| No Azure footprint | DeepTeam | DeepTeam runs locally and needs a model API key for attack generation and judging, with no Azure dependency. PyRIT also runs without Azure, but its Azure SQL memory and Azure AI Content Safety scorer are optional extras that only apply when Azure is present. |
| Testing AI agents | DeepTeam | Its catalog includes an agentic vulnerability category. Confirm the agent coverage you need against the README, since PyRIT's agent-specific coverage depends on how the team builds its own targets and scorers. |
How PyRIT and DeepTeam are built and run
PyRIT and DeepTeam both run attacks against an LLM application, but they differ in how much they assemble for you and where their results live. The cards below cover the building blocks, the model keys each one needs, the Python versions each supports, and what each means for CI runners and shared servers.
PyRIT as a composable framework
PyRIT is built from targets, converters, attacks, scorers, memory and datasets, which you assemble into your own test logic. It offers three entry points: the pyrit_scan command, CoPyRIT for human-led testing through a web GUI, and the Python API for custom attacks. Choose it when your red team wants to script attack sequences rather than run a fixed suite. Check which entry point your team will actually use before you commit.
DeepTeam as a ready-made catalog
DeepTeam runs locally and is built on DeepEval, so its vulnerability definitions, attack methods and pass or fail judgments come packaged together. Each vulnerability is scored by an LLM-as-a-judge metric. This suits a team that wants a standard scan quickly, though you should review the judge prompts and metric behavior before relying on a score in an audit file.
Model API keys for both tools
PyRIT's targets, scorers and attacks call model endpoints, including OpenAI, Azure, Anthropic, Google and Hugging Face, so the keys and quotas for those services sit in your environment. DeepTeam needs a model key such as OPENAI_API_KEY or a custom model that DeepEval supports to generate attacks and judge responses. Ask who holds these keys, where they are stored in CI, and which model judges the results, because that judge choice changes your findings.
Where results are stored
PyRIT's memory layer records conversations, scores and results in SQLite or Azure SQL, so you can query and replay past runs. DeepTeam relies on its report output as the record of a run. For a shared red team, the PyRIT database needs backup, access control and retention rules of its own. For DeepTeam, confirm the report format and where reports are archived before you rely on them as evidence.
Python version support
The PyRIT package supports Python 3.10 up to but not including 3.15, and its documentation recommends Python 3.13. DeepTeam 1.0.10 supports Python 3.9 up to but not including 3.14. Pin a single interpreter version across both tools in a shared environment, and confirm it against your CI runner image before installing either package. Mismatched versions are a common reason a red team job fails on first run.
Operational fit for runners and servers
Both tools run from Python and call remote model APIs, so a CI runner needs network access to those endpoints, stored secrets and enough time for multi-turn attacks. A shared server suits a team that wants persistent PyRIT memory and a single place to review results. Confirm whether either project offers a documented CI pipeline template in its current docs, since this page does not assume one exists for either tool.
PyRIT vs DeepTeam capability differences from the supplied facts
This table compares PyRIT and DeepTeam on license, release status, attack approach, vulnerability coverage, scoring, framework mappings, guardrails, results handling and commercial layers. Read each row as a fact about the tool, and confirm any cell marked for confirmation before you rely on it in an assessment.
| Capability | PyRIT | DeepTeam |
|---|---|---|
| License | MIT license, developed at microsoft/PyRIT | Apache-2.0 license, from Confident AI |
| Latest version and date | v1.1.0, released September 4, 2026 | 1.0.10, published on PyPI October 16, 2026 |
| Python support | Python 3.10 up to but not including 3.15; documentation recommends 3.13 | Python 3.9 up to but not including 3.14 |
| Attack approach | Scripted multi-turn attacks such as Crescendo, TAP and Skeleton Key, built from converters and targets | More than 20 research-backed attack methods covering single-turn and multi-turn red teaming |
| Vulnerability coverage | Datasets covering content harms, psychosocial risks and data leakage | More than 50 ready-to-use vulnerabilities in data privacy, responsible AI, security, safety, business, agentic and custom categories |
| Scoring | LLM-based scorers, Azure AI Content Safety, or custom logic | LLM-as-a-judge metric per vulnerability, returning pass or fail |
| Framework mappings | Confirm with Microsoft which framework mappings ship with PyRIT and how current they are | OWASP Top 10 for LLMs 2025, OWASP Top 10 for Agents 2026, NIST AI RMF, MITRE ATLAS, BeaverTails and Aegis out of the box |
| Runtime guardrails | Testing framework; not a production guardrail product | Includes 7 guardrails for binary input and output checks, such as PromptInjectionGuard, PrivacyGuard, ToxicityGuard and CybersecurityGuard |
| Memory and results | Conversations, scores and results stored in SQLite or Azure SQL | Local run with report output; confirm the exact report formats and storage options in the current docs |
| Commercial layer | Azure-hosted services are separate from the open-source framework; confirm scope with Microsoft | Confident AI platform for risk assessment tracking, production vulnerability monitoring and report sharing |
What is open source and what is paid in each platform
PyRIT is released under the MIT license, so the framework itself carries no license fee and you can run, modify and redistribute it inside your own environment. The original Azure/PyRIT repository was archived on 27 March 2026 and is now read-only, so development continues at microsoft/PyRIT. Version 1.0.0 was published on July 24, 2026 and version 1.1.0 on September 4, 2026. Memory is the main infrastructure decision: the framework records conversations, scores and results in SQLite or Azure SQL.
- MIT license: The framework code is free to use, but your team carries the cost of hosting, running and maintaining it.
- Archived source: Pin dependencies to a release from the microsoft/PyRIT repository, not the archived Azure/PyRIT copy.
- Local SQLite memory: Suits a single team or workstation with no external database to operate.
- Azure SQL memory: An option if you already run Azure SQL, which means a separate Azure bill and a database you must secure and back up.
- Model and endpoint costs: Attack generation and scoring call model APIs or hosted services, and those providers bill you separately.
Confirm the exact release you will deploy and how your attack and scoring traffic will be billed before you commit to a memory backend.
DeepTeam is an Apache-2.0 open-source framework from Confident AI for red teaming LLM systems and AI agents. Version 1.0.10 was published on PyPI on October 16, 2026. It runs locally and is built on DeepEval, so it needs a model API key such as OPENAI_API_KEY, or another model DeepEval supports, to generate attacks and judge responses. Those model calls are billed by the provider you choose, not by DeepTeam.
- Apache-2.0 license: The framework is free to use and modify, and its license includes an explicit patent grant that some legal teams prefer.
- Model API usage: Attack generation and LLM-as-a-judge scoring consume tokens on the model you configure.
- Confident AI commercial platform: A separate paid offering that integrates with DeepTeam for risk assessment tracking, production vulnerability monitoring and report sharing.
- Local operation: Running the framework itself needs no vendor hosting, so the open-source path does not require the commercial platform.
- Commercial features as a choice: Teams that only need local scans and their own reports can skip the platform entirely.
Confirm with Confident AI which features sit in the open-source package and which require a commercial agreement, and ask for current terms in writing.
Some PyRIT deployments use Azure services alongside the open-source framework. Azure SQL can hold PyRIT memory, and Azure AI Content Safety can serve as a scorer. Both are Azure services with their own billing, separate from the MIT license on the framework. Using them makes your PyRIT setup dependent on an Azure subscription, its region choices and its service terms.
- Azure SQL: Billed as an Azure database service, with costs tied to the tier and storage you provision.
- Azure AI Content Safety: Billed as an Azure AI service, with costs tied to the calls your scorers make.
- Subscription dependency: Moving these services off Azure later means migrating memory and rewriting scorer logic.
- Self-hosted alternative: SQLite memory and LLM-based or custom scorers avoid these Azure bills, but you take on backups and operations.
- Data residency: Confirm where memory and scoring data are stored and processed before loading sensitive test content.
Confirm current Azure SQL and Azure AI Content Safety terms with Microsoft, and confirm any commercial terms for Confident AI's platform with Confident AI.
Multi-turn attacks and scoring: where the approaches differ
A multi-turn attack needs four working parts: an attacker model that writes each next message, a target that answers, a memory that keeps the transcript so later turns build on earlier ones, and a scorer that decides whether the attack succeeded. The scorer is where the two frameworks differ most in practice. PyRIT treats each of these as code your team writes and tunes. Its documentation describes targets, prompt converters, scorers and multi-turn strategies such as Crescendo, TAP and Skeleton Key, and it stores conversations and results in SQLite or Azure SQL. A team with an existing attack library and a Python engineer can swap converters, replace scorers with custom logic and keep every turn in its own memory store. That control has a cost: someone must design the attack chain, maintain it when the target changes and decide what counts as a failure.
DeepTeam takes the opposite trade. Its README lists more than 50 ready-to-use vulnerabilities across data privacy, responsible AI, security, safety, business, agentic and custom categories, each scored pass or fail by an LLM-as-a-judge metric, and more than 20 research-backed attack methods covering single-turn and multi-turn red teaming. The team gets a named test per category without building the chain. This fits a team that must report coverage against named categories or framework mappings, such as the OWASP Top 10 for LLMs 2025 or the NIST AI RMF, which DeepTeam maps to out of the box. The trade-off is that the catalog's pass or fail verdicts are only as good as the judge behind them, and changing the attack logic means working within the framework's own design.
Whichever framework you choose, the judge model decides much of the result, so test it before you trust it. Take a sample of target responses, have two or three people label them pass or fail by hand, then run the same sample through the judge you plan to use and measure agreement. Repeat with a second judge model if the results matter for a report. DeepTeam requires a model API key such as OPENAI_API_KEY or another model that DeepEval supports, so the judge choice also affects cost and data handling. Confirm with each vendor which judge models are supported in your environment, and record the judge version alongside every result so that a later rerun can be compared fairly.
What drives PyRIT vs DeepTeam running cost
Running either framework costs more than its license, which is free in both cases. The main cost lines are model API calls, engineering time, data storage, upgrade effort, commercial add-ons and the skills your staff must already have. Use these cards to build the questions you put to a vendor, a consultant or your own finance team before you commit.
Model API spend for attacks and judging
DeepTeam needs a model API key, such as OPENAI_API_KEY or another model DeepEval supports, to generate attacks and to judge every response with an LLM-as-a-judge metric. Your model provider bills those calls, so spend recurs with each scan and grows with the number of vulnerabilities and attack methods you run. PyRIT carries the same cost only where its LLM scorers or attacker models are used. Ask the consultant to quote the number of calls per full run, the judge model, and the cost of a repeat run after a model change.
Engineering time for attacks and converters
Writing, tuning and maintaining PyRIT attack flows, converters and custom scorers is mostly one-time build work followed by ongoing upkeep as targets change. DeepTeam ships its vulnerability catalog and attack methods ready to run, so its recurring effort is mainly configuration and triage. Expect PyRIT to cost more engineering hours up front in a team that builds its own attack library. Ask for a quote that separates initial build, per-target adaptation and review of findings.
Memory storage and database operations
PyRIT stores conversations, scores and results in SQLite or Azure SQL, so you must size, back up and retain that database as an operated system. DeepTeam's results are a local output you manage as files. A PyRIT memory store grows with every run, and retention rules then apply to prompts that may contain sensitive test data. Ask who owns database backups, the retention period your policy requires, and what changes if you move from SQLite to Azure SQL.
Upgrades and Python version pinning
PyRIT's PyPI package supports Python 3.10 up to but not including 3.15, and its documentation recommends Python 3.13. DeepTeam 1.0.10 supports Python 3.9 up to but not including 3.14. Each framework is a moving dependency, so upgrades recur, and a shared Python environment can force one tool to wait on another. Ask the consultant to quote the pinned Python version, the test suite that gates upgrades, and who reviews breaking changes between releases.
Commercial platform and Azure fees
DeepTeam is Apache-2.0 licensed, but Confident AI's commercial platform adds risk assessment tracking, production monitoring and report sharing. Those fees are paid to Confident AI and are separate from the framework. PyRIT is MIT licensed, yet an Azure-hosted deployment, Azure SQL or Azure AI Content Safety scoring brings Azure billing. None of those prices are published here, so get written quotes for every paid service you plan to use, including the tier, the term and the usage basis.
Staff skills and red team capacity
PyRIT asks for Python engineers who can build targets, converters and scorers, and who can debug multi-turn attack logic. DeepTeam asks for someone who can select vulnerability categories, interpret pass or fail judgments and map results to frameworks such as the OWASP Top 10 for LLMs 2025. The skill you already have decides which cost you carry. Ask a vendor or consultant to quote the roles on the engagement and whether knowledge transfer to your team is included.
Moving a red team suite from one framework to the other
This sequence moves a working red team suite from PyRIT to DeepTeam, or the reverse, without losing the test history that auditors and risk owners rely on. It ends with a side-by-side run that shows where the two frameworks agree and where they do not, so the switch is based on evidence.
Inventory targets, objectives and scoring rules
The engineer who owns the current suite lists every target connection, every attack objective and every scoring rule in use. For each target, record the endpoint type, authentication method and model version under test. For each objective, record the risk category it maps to and the pass or fail threshold the team applies. Done means a written inventory that a second engineer has reviewed and can use without asking the original author. Target definitions, objectives and the list of risks being tested carry over as concepts. The attack code, converters, scorers, judge prompts and report mappings do not, and the inventory should mark which of those must be rebuilt.
Map concepts to the new framework's components
The engineer maps each item in the inventory to its counterpart in the target framework. A PyRIT target definition becomes a DeepTeam model callback or model configuration, and a PyRIT scorer becomes a DeepTeam vulnerability and metric choice, or a custom metric where no built-in equivalent exists. Note every gap, such as a PyRIT converter with no direct DeepTeam analogue or a DeepTeam category with no PyRIT dataset. Confirm the attack methods and multi-turn strategies you depend on in the target framework's current documentation rather than assuming equivalence. Done means a mapping table with each gap flagged and an owner assigned to each one.
Rebuild attacks, scorers and judge prompts
The red team engineer rebuilds the attack logic in the new framework, including converters or their equivalents, scorers, judge prompts and the mapping from results to your report categories. Judge prompts need particular care because an LLM judge in one framework will not score identically to the judge in the other, even with the same wording. Record the model used for each judge and the prompt version, so later results can be explained. Done means the rebuilt suite runs end to end against a non-production target and produces output in the new framework's format, with each judge prompt version recorded in the repository.
Run both suites on the same target and sample
The team runs the original and rebuilt suites against the same target, the same model version and the same sample of prompts or objectives, within the same time window. Use a fixed sample so that differences reflect the frameworks rather than changes in the target. Compare findings by objective: which failures appear in both, which appear in only one, and whether the disagreements trace to attack differences, scoring differences or judge differences. Review a sample of disagreements by hand. Done means a written comparison that states the agreement rate the team observed for each category, the disagreements that were reviewed, and a decision to switch, to keep both running, or to stop. Treat this as a finding about your own suite, not a general claim about either tool.
Export and validate historical memory
Before relying on exported PyRIT memory, the engineer confirms the export format is readable by the new tool. PyRIT stores conversations, scores and results in SQLite or Azure SQL, so the export path depends on which store you use. Load a small export into the new framework or a separate parser, then check that conversation order, timestamps, score values and target identifiers are intact. Where fields do not map, write a conversion script and keep it under version control. Done means a validation report showing that a sample of historical records reads correctly, with any lost fields listed. Do not treat an export as valid until this check passes.
Keep the original store as the audit record
The team keeps the original PyRIT database, or the exported copy, as a read-only archive and does not overwrite it with results from the new framework. New results go to a separate store, and each report links to the framework version, judge model and prompt version that produced it. Confirm with your assessor or compliance lead which evidence they will accept, since the format and retention they require are set by your own program, not by either tool. Done means a documented retention location, an access rule for the archive and a dated record showing when the switch took effect. The audit trail then covers both periods without depending on either framework to remain installed.
Where PyRIT and DeepTeam projects usually run long
PyRIT projects run long when the target contract is vague. Before any attack runs, someone has to write the target: a custom HTTP or WebSocket adapter, or a web app driven through Playwright. Each one needs an agreed request and response shape, session handling, and a way to tell a refusal from an error. Converters and scorers are the next tuning work, because a converter that rewrites prompts or a scorer that uses an LLM, Azure AI Content Safety or custom logic will only be as useful as the thresholds your reviewers accept. The memory backend is a decision to make early: PyRIT stores conversations and results in SQLite or Azure SQL, and changing it after weeks of runs means migrating evidence. If human reviewers will work in CoPyRIT, plan their workflow, roles and sign-off steps as deliverables in their own right.
DeepTeam projects run long when the judge is never checked. DeepTeam needs a model API key, such as OPENAI_API_KEY or a custom model that DeepEval supports, both to generate attacks and to judge responses. Choosing that model is a security decision, not a configuration detail, because each of the more than 50 vulnerabilities is scored pass or fail by an LLM-as-a-judge metric. Teams often skip the step that matters most: sampling outputs and confirming that the judge's verdicts match what a reviewer would decide. The second common delay is mapping results to the frameworks an auditor will use, such as the OWASP Top 10 for LLMs 2025, the NIST AI RMF or MITRE ATLAS, which DeepTeam supports out of the box. Confirm which mapping your auditor expects before the first run, so the output is usable without rework.
Both projects stall without an agreed definition of a pass. Whichever tool you choose, write down what counts as a failed test, who approves that rule, and how disputed results are handled. Without it, engineers rerun attacks until the numbers look acceptable, and auditors cannot reproduce the result. DeployOpen fixes scope, deliverables and timelines in writing before work starts, so target contracts, judge validation and framework mapping are named as deliverables with owners. Any timeline depends on that written scope, so ask for a quote that lists each target, each judge model and each reviewer role before committing.
How much effort does an LLM red teaming setup take?
Is PyRIT or DeepTeam cheaper to run?
Neither tool carries a license fee, so the cost comes from people, model calls and infrastructure. PyRIT is an MIT-licensed Python framework and DeepTeam is Apache-2.0, so software spend is zero for both. The recurring costs are model API usage for attack generation and judging, the compute and storage for runs, and the engineering time to maintain test suites. DeepTeam runs every vulnerability check through an LLM-as-a-judge metric, so judge calls can add up across a large catalog. PyRIT's cost depends on which scorers and attack strategies you choose, and multi-turn attacks use more calls per objective. Ask any consultant to separate one-time build work from recurring run work and to state which model calls are estimated and who pays for them.
How long does it take to set up an LLM red teaming tool?
Setup time depends mostly on target complexity, not on the framework alone. A single chat endpoint with a stable API is far quicker to connect than a web application that needs browser automation, authentication flows, retrieval pipelines and agent tool calls. PyRIT adds work when you configure targets, converters, scorers and memory, while DeepTeam adds work when you select vulnerabilities, attack methods and the mappings your auditors expect. Ask for a written scope that lists each target, each test category, the environments involved, the handover format and dated milestones. Fixed-scope engagements usually agree these items before work starts, so a dated plan is the right thing to request.
Can an in-house team run PyRIT or DeepTeam without outside help?
Yes, if the team has Python skills and a clear test plan. Both frameworks are installed with pip and run locally, so a security engineer who can write and read Python can start with a small target. PyRIT documentation recommends Python 3.13, and the PyPI package supports Python 3.10 up to but not including 3.15. DeepTeam 1.0.10 supports Python 3.9 up to but not including 3.14. The team also needs an owner for model keys, data handling rules for stored prompts and responses, a process for reviewing failed attempts, and a schedule for rerunning tests after model or prompt changes. Outside help is most useful for the first integration and for evidence packaging.
Does DeepTeam need an external model API key?
Yes. The DeepTeam README states that it needs a model API key, such as OPENAI_API_KEY, or a custom model that DeepEval supports, to generate attacks and judge responses. This means every scan sends prompts and target responses to whichever model provider you configure, unless you point it at a model you host yourself. Confirm which model will act as the judge, where its inputs are processed, and whether your data policy allows that transfer before you start. Your security team should also decide who owns the key, how it is rotated, and how usage is capped, since judge calls are recurring spend.
Does PyRIT memory work with Azure SQL?
Yes. The PyRIT documentation states that its memory layer stores conversations, scores and results in SQLite or Azure SQL. SQLite suits a single-machine setup and local review, while Azure SQL suits teams that want shared storage and central retention. Confirm the exact connection settings, driver versions, network rules and permissions against the PyRIT documentation for the version you deploy, since memory configuration changes between releases. Also confirm who can read stored prompts and responses, because red team logs often contain sensitive test content and must be handled under the same controls as other sensitive data.
Which red teaming framework maps to OWASP and NIST?
DeepTeam maps its tests to the OWASP Top 10 for LLMs 2025, the OWASP Top 10 for Agents 2026, the NIST AI RMF, MITRE ATLAS, BeaverTails and Aegis out of the box, according to its README. That makes it the faster route when an assessor asks which framework each test supports. PyRIT provides attack strategies, scorers and datasets, but this page does not confirm an official mapping to OWASP or NIST categories. Before you rely on either tool for evidence, ask the vendor or maintainers for the current mapping, then document how each test result maps to the control or risk category your assessor uses.
Does an LLM red teaming tool replace a security audit?
No. A red teaming framework produces test results, but it does not produce an audit report, attestation or certification. Independent auditors and certification bodies issue those documents. DeployOpen prepares systems, controls and evidence for compliance assessments, and it runs security testing, but it does not issue audit reports or certifications. Use the framework output as one input to your evidence file, and agree with your assessor in advance which records, scope statements and test logs they will accept. Keep in mind that a passing run only shows that the tested prompts did not trigger a failure, not that the system is free of risk.
What should I ask a consultant to include in a quote?
Ask for a fixed-scope written proposal that names each target, test category, framework mapping and environment in scope. Request a list of deliverables, such as configuration files, test reports, a run book and a handover session, with the timeline for each. Ask which costs are one-time, such as integration and configuration, and which recur, such as retainers, reruns and model usage. Confirm who pays for model API calls, who holds the keys, what happens if scope changes, and what support is included after delivery. DeployOpen does not publish a price list, so a quote follows from the written scope.
How DeployOpen helps choose, implement or migrate red teaming tools
DeployOpen plans, implements, customizes, hardens, documents and supports self-hosted open-source platforms inside the client's own infrastructure. For PyRIT vs DeepTeam, that means helping a team decide which framework fits its testing program, then running the chosen tool in its own environment with its own model endpoints and evidence records.
How we scope
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- The written scope names the target applications, model endpoints, attack categories and frameworks to be covered.
- Scoping records whether a team needs scripted multi-turn attacks, a ready-made vulnerability catalog, or both.
- Scope also states where API keys for judge and attack models will come from and which systems may receive test traffic.
How we build
- Set up the chosen framework in the client's cloud account, data center or air-gapped network.
- Configure targets, converters or attack methods, and judge models against the agreed test plan.
- Connect the test runs to the team's storage, whether SQLite, Azure SQL or the client's own reporting location.
- Confirm the tool runs against the client's real endpoints and records results the team can reproduce.
How we hand over
- Documentation covers how to run each test suite, read its results and rerun it after a model or prompt change.
- Deliverables include configuration files, run procedures and a record of which framework mappings were used.
- Handover sessions walk the internal team through reviewing failed attempts and triaging findings.
- The team receives a written summary of open items, such as judge model choice and retention of attack logs.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- Retainers can cover version upgrades when PyRIT or DeepTeam releases change behavior or dependencies.
- A retainer can add test coverage as new attack methods or vulnerability categories become relevant to the client.
- Ask in the quote which upgrade and retesting work the retainer includes and how it is priced.

