Recommended Free Tools
To make an AI bug reproducible and defensible, preserve the entire request-and-response chain—not a screenshot or paraphrase. Create a case ID, export the original serialized request and response, record the served model snapshot and every behavior-changing setting, capture tools and retrieval context, hash the raw artifacts, and keep an immutable or append-only record of custody. Then write a readable incident summary that links each observation to those originals.
What an evidence-quality AI bug record contains
An AI failure can be caused by a changed prompt, a different model deployment, sampling variance, altered retrieval results, a tool response, post-processing, or a client-side error. The record must let another investigator separate those possibilities. Treat the package as a chain of custody: every artifact has an owner, a timestamp, an integrity check, and a documented access history.
As an Amazon Associate I earn from qualifying purchases.
Keep two layers. The first is the original capture, restricted to people who need the sensitive content. The second is a redacted analyst view used for ordinary investigation. Never edit the original to make it easier to read; add a new normalized or explanatory file instead.
Minimum evidence bundle
| Area | Capture these fields | Why it matters |
|---|---|---|
| Case identity and custody | Incident ID; reporter; investigator; affected product, feature, or endpoint; environment; UTC creation and event times; export times; access and download history | Establishes which event is being investigated and who handled each copy. |
| Exact input | System and developer messages; user messages; message order; fully rendered template variables; locale; attachments; conversation history; original serialized request bytes | A paraphrase can hide a token, instruction, variable, or ordering difference that changes behavior. |
| Model identity | Provider; requested model name; served model snapshot or deployment ID; endpoint; API and SDK versions; request or correlation ID; rollout date when available | The public model name may remain unchanged while the served deployment changes. |
| Generation settings | Temperature; top-p or equivalent sampling controls; maximum tokens; stop sequences; response format; safety settings; feature flags; tool definitions | These controls can alter output even when the prompt and model are unchanged. |
| Supplied context | Tool calls and returned payloads; retrieved document IDs and scores; memory state; files; relevant external responses; retrieval configuration | Context supplied at run time is part of the model input. |
| Exact result | Raw response bytes; parsed structured output; refusal or safety message; tool-call arguments; error payload; latency; token counts; finish reason | Summaries omit malformed JSON, hidden refusals, partial output, and timing clues. |
| Integrity and handling | Hash for each canonical request and response artifact; algorithm; canonicalization rules; timestamp; signer or storage identity; retention class; redaction status; access and export events | Lets a reviewer detect alteration and understand which copy was examined. |
| Analysis layer | Human-readable summary that labels observed facts, hypotheses, reproduction steps, and unresolved questions | Separates interpretation from the immutable evidence. |
Build the package before you rerun the failure
- Create a case ID. Use it in the directory, ticket, log stream, and every export filename before attempting another request. Record the reporter, investigator, product or endpoint, environment, and UTC time.
- Freeze the original capture. Export the request and response exactly as received by the client or service. Preserve the original byte representation, including field order where it is present, escaping, encoding, headers that identify the request, and any error payload. If the platform can export a wire-level trace, retain it in the restricted original view.
- Create a normalized copy. Parse the originals into searchable JSON or another documented format, but never replace the originals. Store the parser version and the transformation rules with the normalized copy.
- Pin the prompt source. Save the prompt-template identifier and version, then save the fully rendered prompt after variables have been substituted. Prompt-management systems commonly provide version history, rollback, prompt IDs, variables, and links to evaluations; preserve those references alongside the rendered text.
- Preserve the conversation and context. Keep every earlier turn in order, plus system, developer, and user messages. Preserve tool requests and returned payloads, retrieved records and scores, memory state, files, and relevant external responses. Do not rewrite earlier turns to “clean up” a transcript. When rerunning, append new messages rather than silently changing history.
- Record model and configuration metadata. Capture the requested model string and the model actually served, including a snapshot name or deployment ID when exposed. Add provider, endpoint, API and SDK versions, request or correlation ID, sampling controls, token limits, stop sequences, response format, safety settings, tool schemas, retrieval settings, memory settings, feature flags, locale, time zone, client version, and network or service dependencies.
- Capture the complete result. Store raw response bytes before parsing. Keep the parsed output, refusal or safety text, tool-call arguments, error body, finish reason, latency, and token counts. A response that appears empty in a user interface may still contain a refusal, an error, or a tool call in the raw record.
- Hash and register the artifacts. Choose a canonical serialization for each request, response, tool payload, and manifest. Document the canonicalization rules and hash algorithm, compute the digest, and record when and by which storage identity it was computed. Put the hash record in a signed or append-only log where feasible.
- Restrict and export safely. Mark secrets, personal data, customer content, and regulated material. Keep an access-controlled original and a redacted analyst copy. Maintain an offline export for disaster recovery, then recompute hashes after restoration to verify it.
Freeze the exact prompt and rendered context
Preserve every message role and its order
Store system, developer, user, assistant, and tool messages as separate records with sequence numbers. Include the conversation identifier and the boundary between turns. Hidden developer instructions, a missing system message, or a reordered tool result can explain an apparent regression even when the visible user prompt is identical.
#1 Best Overall
- FIPS 197 with XTS-AES 256-bit Encryption: Provides business-grade security with hardware-based encryption to protect your sensitive data
- Brute Force and BadUSB Attack Protection: Safeguards against unauthorized access attempts and malicious USB attacks with digitally-signed firmware
- Multi-Password Option with Complex/Passphrase modes: Offers flexible password configuration options to meet various security requirements and user preferences
- New Passphrase Mode: Enhanced security feature allowing users to create longer, more memorable password phrases for easier access without compromising protection
- Dual Read-Only (Write-Protect) Settings: Enables write protection functionality to prevent accidental data modification or deletion when needed
Save templates and their rendered values
A template file alone is not sufficient. Save its version or prompt ID, the variable map used for the failing request, and the fully rendered messages. Record locale, time zone, feature flags, and any conditional branch that selected a different instruction. If a template engine inserts whitespace, delimiters, or escaped characters, the rendered result is the authoritative input.
Include files and external context
For every attachment, retain a stable file identifier, media type, size, and hash, plus the exact bytes in the restricted store when policy permits. For retrieval, record document IDs, chunk or passage identifiers, scores, ranking configuration, index version, and the text or a protected reference to it. For external APIs, preserve request parameters, response payloads, status codes, and timestamps. These records show whether the model saw different evidence rather than merely producing a different answer.
Prove which model actually ran
“Model X” in an application configuration is not proof of the deployment that answered a request. Record both the requested name and the served identity returned by the provider or gateway. A served snapshot, deployment ID, region, or rollout identifier is especially important during staged releases. Include the provider, endpoint, API version, SDK version, and request or correlation ID so an operator can trace the event through gateways and retries.
Record the rollout or release date when it is available, and note whether a fallback, retry, safety route, or region failover occurred. If the service does not expose a served snapshot, state that limitation plainly and preserve the strongest available identifiers, such as the deployment, request ID, and provider response headers.
Record every behavior-changing setting
| Setting group | Examples to log | Common omission |
|---|---|---|
| Sampling | Temperature; top-p or equivalent controls; seed if the service exposes one | Assuming identical prompts guarantee identical stochastic output. |
| Length and stopping | Maximum output tokens; stop sequences; timeout; truncation behavior | Comparing a complete answer with one cut off by a token limit. |
| Output contract | Response format; schema; structured-output mode; parser version | Blaming the model for a client parser or schema change. |
| Safety and routing | Safety settings; moderation mode; policy version; fallback route; feature flags | Missing a policy or routing change that produced a refusal. |
| Tools and retrieval | Tool definitions; required or automatic tool choice; retrieval parameters; index and embedding versions; memory configuration | Logging the tool name but not its schema, arguments, or returned data. |
Store the values as sent, not only the values shown in a dashboard. Include defaults that the client omitted if the gateway or provider records them. If a value is unknown, write “not exposed by the service” in the analysis and retain the response metadata that demonstrates the limitation.
Make raw artifacts tamper-evident
Canonicalize before hashing
Two JSON files can represent the same data while differing in whitespace, key order, or escaping. Define a canonical serialization, record its rules, and hash that canonical form. Keep the original bytes separately so a reviewer can inspect exactly what arrived over the wire. The manifest should map each artifact name to its hash, byte length, creation time, canonicalization version, and storage location.
Use append-only custody records
When someone exports, redacts, copies, restores, or deletes an artifact, append an event containing the case ID, actor, UTC time, action, source hash, destination or resulting hash, and reason. A signed or append-only log is preferable where available. A hardware-encrypted USB drive can carry an offline export, but encryption protects confidentiality; it does not prove integrity by itself. The hashes, access controls, and custody log remain necessary.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallRank #2
- Certified to FIPS 197 - High-level information security standard approved by the U.S. Government
- Brute-Force Password Attack Protection - Data is automatically erased after 6 failed access attempts. The data and encryption key are securely destroyed and the crypto drive is reset
- Rugged Double-Layer Waterproof* Design - Protects the crypto drive against knocks, drops, break-in and submerging in water. The electronics are shielded by a hardended inner case. The rubberised silicone outer casing provides a final layer of protection
- Auto-lock - The crypto drive will automatically encrypt all data and lock when removed from a PC/Mac or when the screen saver or "computer lock" function is activated on the host PC/Mac
- Secure Entry - Data cannot be accessed without the correct high-strength alphanumeric 8-16 character password. A password hint option is available. The password hint cannot match the password
Verify after movement
Recompute the hashes after copying to another system, restoring from offline storage, or handing the package to an external investigator. A mismatch should create a new incident event; do not overwrite the disputed artifact. Preserve both versions and explain which one was used for analysis.
Separate sensitive originals from analyst views
Raw prompts, retrieved documents, files, and tool responses may contain credentials, personal data, customer records, or proprietary instructions. OWASP guidance warns that indiscriminate raw-content logging can leak secrets. Prefer storing hashes, scores, identifiers, and source metadata in ordinary observability systems, and permit full text only under a documented trigger and access approval.
- Keep the original in an access-controlled repository with encryption and an explicit retention class.
- Redact the analyst copy consistently; record what was removed, why, who performed it, and the source artifact hash.
- Do not hash only a redacted copy and claim it represents the original. Hash both and label them separately.
- Log every view, export, restoration, and deletion, including automated service access.
- Apply the same controls to attachments, retrieval passages, tool payloads, and model outputs as to prompts.
Rerun the bug with controlled variables
- Reproduce from pinned inputs. Use the saved rendered prompt, conversation order, files, retrieval records, tool responses, model identity, and settings. Record the new request as a separate artifact linked to the original case.
- Compare exact artifacts. Diff canonical requests, configuration, context, raw responses, tool actions, finish reasons, latency, and token counts. Do not compare only a human-written summary.
- Change one variable. Run a control with the same model and inputs, then alter one axis—such as model deployment, prompt version, retrieval result, temperature, or tool response—per run. Give each run a sequence number and preserve its complete bundle.
- Classify the result. Label each finding as observed fact, hypothesis, reproduction step, or unresolved question. If repeated runs diverge with all recorded inputs fixed, describe the behavior as stochastic or as an unmeasured service dependency rather than asserting a deterministic regression.
- Preserve negative results. A run that does not reproduce the bug is evidence. Keep its artifacts and explain which conditions differed or which conditions were held constant.
Organize a regression report by comparison axis
| Axis | Questions to answer |
|---|---|
| Prompt | Did the template version, rendered variables, message order, hidden context, or conversation history change? |
| Model | Did the provider, requested name, served snapshot or deployment, API version, or rollout date change? |
| Configuration | Did sampling, token limits, response format, safety controls, tools, retrieval, memory, or feature flags change? |
| Environment | Did locale, time zone, client or SDK, network dependency, region, or underlying data state change? |
| Behavior | What exact output, tool action, refusal or error type, latency, token usage, and finish reason occurred? |
| Evidence | Do hashes, timestamps, signatures, access history, redaction status, and retention status verify the comparison? |
This structure follows the purpose of provenance: NIST defines provenance as the chronology of a system or data item’s origin, development, ownership, location, and changes. NIST transparency work also describes recording the AI system, human and automated participants, their roles, inputs, prompts, and a model-card link. Those details let a reviewer distinguish an input change from a model swap, tool-context change, or post-processing defect.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Audit trails and retention
The UK Code of Practice for the Cyber Security of AI calls for a documented audit trail for the AI system and for system operators to log system and user actions that support security compliance, incident investigations, and vulnerability remediation. It does not set one universal retention period. Choose a period based on incident-response needs, privacy obligations, legal holds, contracts, and deletion requirements; document the rule and preserve access, export, and deletion events.
At minimum, retain the evidence long enough to complete the investigation, reproduce the finding, remediate the defect, and satisfy any applicable legal or contractual review. If a deletion request conflicts with an incident hold, record the decision, authority, scope, and eventual disposal event rather than silently keeping or deleting the material.
Common evidence failures and fixes
Only a screenshot was saved
A screenshot cannot establish the serialized prompt, hidden messages, model deployment, settings, tool context, or raw error. Recover the original request and response from gateway, client, or provider logs if available. If they are gone, label the screenshot as partial evidence and avoid claiming reproducibility.
The visible prompt was copied by hand
Manual copying can change whitespace, variables, escaping, and message order. Export the rendered request and template version directly, then hash the export.
Rank #3
- Certified to FIPS 197 - High-level information security standard approved by the U.S. Government
- Brute-Force Password Attack Protection - Data is automatically erased after 6 failed access attempts. The data and encryption key are securely destroyed and the crypto drive is reset
- Auto-lock - The crypto drive will automatically encrypt all data and lock when removed from a PC/Mac or when the screen saver or "computer lock" function is activated on the host PC/Mac
- Secure Entry - Data cannot be accessed without the correct high-strength alphanumeric 8-16 character password. A password hint option is available. The password hint cannot match the password
- SuperSpeed USB 3.0 - Transfer all your confidential files and folders faster than ever before. Works on both PC & Mac
The model name was recorded, but not the served deployment
Ask the gateway or provider for the deployment, snapshot, region, and correlation ID. If those fields are unavailable, document that uncertainty and use rollout dates, response headers, and controlled reruns as supporting—not conclusive—evidence.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesRetrieval and tools were omitted
Preserve tool schemas, arguments, returned payloads, document IDs, scores, index version, memory state, and external responses. Without them, the “same prompt” may not be the same input.
Analysts edited the only copy
Restore the original from an immutable or append-only store if possible. From now on, write normalized, redacted, and explanatory files beside the original and link each one by hash.
All runs were changed at once
Repeat from pinned inputs and alter one variable per run. Keep failed and non-reproducing runs; they define which conditions actually matter.
A practical case-folder layout
A consistent layout makes handoff and review easier. The names are illustrative; adapt them to your storage system without changing the principle that originals are immutable and analysis is separate.
CASE-2026-0042/
manifest.json
custody-log.jsonl
original/
request.raw
response.raw
tools/
retrieval/
attachments/
normalized/
request.json
response.json
settings.json
redacted/
analyst-request.json
analyst-response.json
reruns/
001-control/
002-model-change/
analysis/
incident-summary.html
reproduction-steps.md
The manifest should identify the case, list every artifact and hash, state the canonicalization version, identify the storage or signer, and show redaction and retention status. A reviewer should be able to start with the summary and navigate to the exact original bytes without guessing.
What a complete handoff should answer
- What failed, at which product or endpoint, and at what UTC time?
- What exact serialized request, rendered prompt, conversation history, files, retrieval results, and tool responses were supplied?
- Which provider and served model snapshot or deployment answered, and what API, SDK, endpoint, and rollout information is known?
- Which generation, safety, routing, retrieval, memory, and feature settings were active?
- What raw response, structured output, refusal, error, tool action, latency, token count, and finish reason occurred?
- Which hashes, custody events, access records, redactions, and retention rules protect the evidence?
- What was reproduced, what changed in each controlled rerun, and which questions remain unresolved?
If any answer is missing, mark it as unknown rather than filling the gap with an assumption. That discipline is what allows another team to reproduce the bug, challenge the interpretation, and determine whether a later fix addressed the cause or only changed the symptom.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

