Analyze runs for non-deterministic patterns and get actionable recommendations.
Overview
The Determinism Analysis feature helps you identify and fix non-deterministic behavior in your agents. Available directly in the console, it performs comprehensive static analysis on any run to detect patterns that would cause different results on replay.
Accessing the analyzer
Navigate to the Runs page
Click on any run to open its details modal
Switch to the Determinism tab (microscope icon) alongside Telemetry and Simulation
The analysis runs automatically against the run’s recorded actions
Determinism score
The analysis provides a score from 0-100 indicating replay reliability:Score ranges:
🟢 90-100 - High Reliability: Minimal issues, safe to replay
🟡 70-89 - Moderate Risk: Some non-deterministic patterns detected
🔴 0-69 - High Risk: Significant non-determinism, replay likely to fail
The score appears prominently with:
Large numeric display
Color-coded badge
Progress bar visualization
Severity label
Analysis summary
Key metrics at a glance:
Total actions analyzed
Issues found count
Summary description of findings
Days elapsed since run
Patterns detected
The analyzer categorizes issues by type:
Timestamp dependencies
Actions that use current time:
datetime.now()
time.time()
Date/time-based logic
Impact: Different timestamps on each run cause different behavior.
Random generation
Unseeded random values:
random.random()
random.randint()
random.choice()
Impact: Stochastic results vary per execution.
UUID generation
Auto-generated identifiers:
uuid.uuid4()
Dynamic ID creation
Non-deterministic keys
Impact: Different IDs on each run break replay.
Process/environment
System-specific values:
os.getpid()
socket.gethostname()
Platform details
Impact: Behavior varies across systems.
API variability
Dynamic service responses:
Request IDs
Trace IDs
Session tokens
Impact: External services return different metadata.
Order-dependent
Undefined ordering:
Dict iteration (old Python)
Set operations
Concurrent operations
Impact: Execution order varies per run.
Detailed issues view
Each issue shows:
Action context
Action name
Action index (position in run)
Action ID (for reference)
Issue details
Type - Category of issue
Severity - High/Medium/Low
Description - What the problem is
Recommendation - How to fix it
Example:
Action: generate_report (#3)├─ Type: timestamp_dependency├─ Severity: HIGH├─ Description: Action uses timestamp or current time in inputs└─ Recommendation: Use fixed timestamps for testing or mock time functions
Smart recommendations
AI-powered suggestions with:
Priority levels
🔴 High - Fix immediately (blocks reliable replay)
🟡 Medium - Fix soon (likely causes issues)
🟢 Low - Fix eventually (may cause issues)
Categories
Determinism - Non-deterministic patterns
Performance - Optimization opportunities
Reliability - Error handling improvements
Detailed guidance
Each recommendation includes:
Title - Brief summary
Description - Full explanation
Solution - Step-by-step fix
Code example - Concrete implementation
Example recommendation:
🔴 HIGH PRIORITY | DeterminismRemove timestamp dependenciesDescription:2 actions use current timestamps which will vary on each executionSolution:Use fixed timestamps for testing or inject time via parametersCode Example:# Instead of:report_time = datetime.now()# Use:report_time = datetime(2025, 1, 3, 12, 0, 0)
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Agent Sentinel","colors":{"primary":"#319165","light":"#4abf89","dark":"#2d8059"},"logo":{"light":"https://mintcdn.com/agentsentinel/B1Psb0ktqAcV0f6k/logo/light.svg?fit=max\u0026auto=format\u0026n=B1Psb0ktqAcV0f6k\u0026q=85\u0026s=c3b2e0f29a496f48c8f7c50f2acccc32","dark":"https://mintcdn.com/agentsentinel/B1Psb0ktqAcV0f6k/logo/dark.svg?fit=max\u0026auto=format\u0026n=B1Psb0ktqAcV0f6k\u0026q=85\u0026s=8b61e50f3f15526e26fb1fad9cb27cc8","href":"https://agentsentinel.dev"},"favicon":"https://mintcdn.com/agentsentinel/B1Psb0ktqAcV0f6k/favicon.svg?fit=max\u0026auto=format\u0026n=B1Psb0ktqAcV0f6k\u0026q=85\u0026s=52d30475fb54d414fa922f4d0536e184","appearance":{"default":"light","strict":true},"background":{"color":{"light":"#fbfaf6","dark":"#0d0f12"}},"navbar":{"links":[{"href":"mailto:hello@agentsentinel.dev","label":"Support"}],"primary":{"type":"button","label":"API Reference","href":"/platform/overview"}},"footer":{"socials":{"github":"https://github.com/agent-sentinel/agent-sentinel-sdk","website":"https://agentsentinel.dev"}},"fonts":{"family":"Inter"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/agent-sentinel/agent-sentinel-sdk"},{"anchor":"PyPI","icon":"python","href":"https://pypi.org/project/agentsentinel-sdk/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"agentsentinel","hasAudioNarration":false,"actualSubdomain":"agentsentinel","customDomains":["docs.agentsentinel.dev"],"gitSource":{"type":"github","owner":"agent-sentinel","repo":"agent-sentinel","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae1afb657e72f17a84ac220","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"Guides","count":55},{"language":"default","tag":"Platform API","count":18},{"language":"default","tag":"SDK (Python)","count":16},{"language":"default","tag":"Web Console","count":14},{"language":"default","tag":"Concepts","count":3},{"language":"default","tag":"AI tools","count":2},{"language":"default","tag":"Getting started","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"code,pre,kbd,samp,.code-block,.code-block code,.code-group code,.request-example code,.response-example code{font-family:\"JetBrains Mono\",\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n \"Liberation Mono\",\n \"Courier New\",\n monospace!important}"}],"page":{"pagePath":"console/determinism-analysis","slug":"/console/determinism-analysis","pageMetadata":{"title":"Determinism Analysis","description":"Analyze runs for non-deterministic patterns and get actionable recommendations.","href":"/console/determinism-analysis"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Analyze runs for non-deterministic patterns and get actionable recommendations.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Determinism Analysis`}),` feature helps you identify and fix non-deterministic behavior in your agents. Available directly in the console, it performs comprehensive static analysis on any run to detect patterns that would cause different results on replay.`]}),`\n`,_jsx(Heading,{level:`2`,id:`accessing-the-analyzer`,children:`Accessing the analyzer`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Navigate to the `,_jsx(_components.strong,{children:`Runs`}),` page`]}),`\n`,_jsx(_components.li,{children:`Click on any run to open its details modal`}),`\n`,_jsxs(_components.li,{children:[`Switch to the `,_jsx(_components.strong,{children:`Determinism`}),` tab (microscope icon) alongside `,_jsx(_components.strong,{children:`Telemetry`}),` and `,_jsx(_components.strong,{children:`Simulation`})]}),`\n`,_jsx(_components.li,{children:`The analysis runs automatically against the run’s recorded actions`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`determinism-score`,children:`Determinism score`}),`\n`,_jsxs(_components.p,{children:[`The analysis provides a `,_jsx(_components.strong,{children:`score from 0-100`}),` indicating replay reliability:`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Score ranges:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`🟢 `,_jsx(_components.strong,{children:`90-100`}),` - High Reliability: Minimal issues, safe to replay`]}),`\n`,_jsxs(_components.li,{children:[`🟡 `,_jsx(_components.strong,{children:`70-89`}),` - Moderate Risk: Some non-deterministic patterns detected`]}),`\n`,_jsxs(_components.li,{children:[`🔴 `,_jsx(_components.strong,{children:`0-69`}),` - High Risk: Significant non-determinism, replay likely to fail`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The score appears prominently with:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Large numeric display`}),`\n`,_jsx(_components.li,{children:`Color-coded badge`}),`\n`,_jsx(_components.li,{children:`Progress bar visualization`}),`\n`,_jsx(_components.li,{children:`Severity label`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`analysis-summary`,children:`Analysis summary`}),`\n`,_jsx(_components.p,{children:`Key metrics at a glance:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Total actions`}),` analyzed`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Issues found`}),` count`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Summary`}),` description of findings`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Days elapsed`}),` since run`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`patterns-detected`,children:`Patterns detected`}),`\n`,_jsx(_components.p,{children:`The analyzer categorizes issues by type:`}),`\n`,_jsx(Heading,{level:`3`,id:`timestamp-dependencies`,children:`Timestamp dependencies`}),`\n`,_jsx(_components.p,{children:`Actions that use current time:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`datetime.now()`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`time.time()`})}),`\n`,_jsx(_components.li,{children:`Date/time-based logic`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Impact:`}),` Different timestamps on each run cause different behavior.`]}),`\n`,_jsx(Heading,{level:`3`,id:`random-generation`,children:`Random generation`}),`\n`,_jsx(_components.p,{children:`Unseeded random values:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`random.random()`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`random.randint()`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`random.choice()`})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Impact:`}),` Stochastic results vary per execution.`]}),`\n`,_jsx(Heading,{level:`3`,id:`uuid-generation`,children:`UUID generation`}),`\n`,_jsx(_components.p,{children:`Auto-generated identifiers:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`uuid.uuid4()`})}),`\n`,_jsx(_components.li,{children:`Dynamic ID creation`}),`\n`,_jsx(_components.li,{children:`Non-deterministic keys`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Impact:`}),` Different IDs on each run break replay.`]}),`\n`,_jsx(Heading,{level:`3`,id:`process/environment`,children:`Process/environment`}),`\n`,_jsx(_components.p,{children:`System-specific values:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`os.getpid()`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`socket.gethostname()`})}),`\n`,_jsx(_components.li,{children:`Platform details`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Impact:`}),` Behavior varies across systems.`]}),`\n`,_jsx(Heading,{level:`3`,id:`api-variability`,children:`API variability`}),`\n`,_jsx(_components.p,{children:`Dynamic service responses:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Request IDs`}),`\n`,_jsx(_components.li,{children:`Trace IDs`}),`\n`,_jsx(_components.li,{children:`Session tokens`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Impact:`}),` External services return different metadata.`]}),`\n`,_jsx(Heading,{level:`3`,id:`order-dependent`,children:`Order-dependent`}),`\n`,_jsx(_components.p,{children:`Undefined ordering:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Dict iteration (old Python)`}),`\n`,_jsx(_components.li,{children:`Set operations`}),`\n`,_jsx(_components.li,{children:`Concurrent operations`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Impact:`}),` Execution order varies per run.`]}),`\n`,_jsx(Heading,{level:`2`,id:`detailed-issues-view`,children:`Detailed issues view`}),`\n`,_jsx(_components.p,{children:`Each issue shows:`}),`\n`,_jsx(Heading,{level:`3`,id:`action-context`,children:`Action context`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Action name`}),`\n`,_jsx(_components.li,{children:`Action index (position in run)`}),`\n`,_jsx(_components.li,{children:`Action ID (for reference)`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`issue-details`,children:`Issue details`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Type`}),` - Category of issue`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Severity`}),` - High/Medium/Low`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Description`}),` - What the problem is`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Recommendation`}),` - How to fix it`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Action: generate_report (#3)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`├─ Type: timestamp_dependency`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`├─ Severity: HIGH`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`├─ Description: Action uses timestamp or current time in inputs`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`└─ Recommendation: Use fixed timestamps for testing or mock time functions`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`smart-recommendations`,children:`Smart recommendations`}),`\n`,_jsx(_components.p,{children:`AI-powered suggestions with:`}),`\n`,_jsx(Heading,{level:`3`,id:`priority-levels`,children:`Priority levels`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`🔴 `,_jsx(_components.strong,{children:`High`}),` - Fix immediately (blocks reliable replay)`]}),`\n`,_jsxs(_components.li,{children:[`🟡 `,_jsx(_components.strong,{children:`Medium`}),` - Fix soon (likely causes issues)`]}),`\n`,_jsxs(_components.li,{children:[`🟢 `,_jsx(_components.strong,{children:`Low`}),` - Fix eventually (may cause issues)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`categories`,children:`Categories`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Determinism`}),` - Non-deterministic patterns`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Performance`}),` - Optimization opportunities`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Reliability`}),` - Error handling improvements`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`detailed-guidance`,children:`Detailed guidance`}),`\n`,_jsx(_components.p,{children:`Each recommendation includes:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Title`}),` - Brief summary`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Description`}),` - Full explanation`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Solution`}),` - Step-by-step fix`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Code example`}),` - Concrete implementation`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example recommendation:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`17`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`🔴 HIGH PRIORITY | Determinism`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Remove timestamp dependencies`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Description:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2 actions use current timestamps which will vary on each execution`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Solution:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Use fixed timestamps for testing or inject time via parameters`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Code Example:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`# Instead of:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`report_time = datetime.now()`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`# Use:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`report_time = datetime(2025, 1, 3, 12, 0, 0)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`warnings-section`,children:`Warnings section`}),`\n`,_jsx(_components.p,{children:`Additional context about the run:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Failed actions`}),`\n`,_jsx(_components.li,{children:`Error outcomes`}),`\n`,_jsx(_components.li,{children:`Incomplete executions`}),`\n`,_jsx(_components.li,{children:`Data quality issues`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`visual-features`,children:`Visual features`}),`\n`,_jsx(_components.p,{children:`The analysis UI includes:`}),`\n`,_jsx(Heading,{level:`3`,id:`progress-bar`,children:`Progress bar`}),`\n`,_jsx(_components.p,{children:`Visual representation of determinism score:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Green for high scores`}),`\n`,_jsx(_components.li,{children:`Yellow for moderate`}),`\n`,_jsx(_components.li,{children:`Red for low scores`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`badge-system`,children:`Badge system`}),`\n`,_jsx(_components.p,{children:`Quick visual indicators:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Severity badges (info/warning/critical)`}),`\n`,_jsx(_components.li,{children:`Status badges (passed/failed)`}),`\n`,_jsx(_components.li,{children:`Category tags`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`tabbed-interface`,children:`Tabbed interface`}),`\n`,_jsx(_components.p,{children:`Toggle between:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Recommendations`}),` tab - Prioritized fixes`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Issues`}),` tab - Detailed problems by action`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`collapsible-sections`,children:`Collapsible sections`}),`\n`,_jsx(_components.p,{children:`Expand/collapse:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Individual issues`}),`\n`,_jsx(_components.li,{children:`Code examples`}),`\n`,_jsx(_components.li,{children:`Action groups`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`common-patterns-and-fixes`,children:`Common patterns and fixes`}),`\n`,_jsx(Heading,{level:`3`,id:`pattern-using-current-time`,children:`Pattern: Using current time`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`❌ Non-deterministic:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@guarded_action`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"log_event\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` log_event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` timestamp `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` datetime.now()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: message, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"time\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: timestamp}`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`✅ Deterministic:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@guarded_action`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"log_event\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` log_event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event_time`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: datetime):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: message, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"time\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: event_time}`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`pattern-random-sampling`,children:`Pattern: Random sampling`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`❌ Non-deterministic:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@guarded_action`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"select_sample\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` select_sample`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` random.sample(items, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`✅ Deterministic:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@guarded_action`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"select_sample\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` select_sample`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`seed`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`int`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 42`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` random.seed(seed)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` random.sample(items, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`pattern-uuid-generation`,children:`Pattern: UUID generation`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`❌ Non-deterministic:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@guarded_action`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"create_task\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` create_task`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` task_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(uuid.uuid4())`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: task_id, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: name}`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`✅ Deterministic:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@guarded_action`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"create_task\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` create_task`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`task_id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: task_id, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: name}`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`integration-with-replay`,children:`Integration with replay`}),`\n`,_jsxs(_components.p,{children:[`Determinism analysis complements the SDK’s `,_jsx(_components.a,{href:`/sdk/python/replay`,children:`Replay Mode`}),`:`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Workflow:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Run`}),` agent normally → generates ledger`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Analyze`}),` determinism in console → identifies issues`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Fix`}),` issues following recommendations`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Replay`}),` with SDK → validates fixes`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Compare`}),` original vs replay → confirms determinism`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`exporting-results`,children:`Exporting results`}),`\n`,_jsx(_components.p,{children:`Download analysis for:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Code review`}),` - Share with team`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Documentation`}),` - Track improvements`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`CI/CD integration`}),` - Automated checks`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Reporting`}),` - Management visibility`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Export formats:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`JSON (for automation)`}),`\n`,_jsx(_components.li,{children:`PDF (for reports)`}),`\n`,_jsx(_components.li,{children:`CSV (for tracking)`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best practices`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Analyze before deploying`}),`: Check determinism of new agents before production deployment.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fix high-priority first`}),`: Timestamp and random dependencies have the biggest impact - start there.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Regular checks`}),`: Run analysis weekly or after significant changes.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Static analysis has limits`}),`: The analyzer can’t detect all issues (e.g., race conditions). Use with SDK replay for full validation.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Share results`}),`: Export and share analyses with your team for collective improvement.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`keyboard-shortcuts`,children:`Keyboard shortcuts`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`a`}),` - Toggle analysis view`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`r`}),` - Show recommendations`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`i`}),` - Show issues`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`e`}),` - Export results`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`common-questions`,children:`Common questions`}),`\n`,_jsx(Heading,{level:`3`,id:`”score-seems-low-but-my-agent-works-fine”`,children:`”Score seems low but my agent works fine”`}),`\n`,_jsxs(_components.p,{children:[`A low score means the agent isn’t `,_jsx(_components.strong,{children:`reproducible`}),`, not that it doesn’t work. For testing, debugging, and compliance, you need deterministic behavior.`]}),`\n`,_jsx(Heading,{level:`3`,id:`”can-i-ignore-low-severity-issues”`,children:`”Can I ignore low-severity issues?”`}),`\n`,_jsxs(_components.p,{children:[`Low-severity issues `,_jsx(_components.strong,{children:`may`}),` cause problems depending on your use case:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`For testing/debugging: Fix them`}),`\n`,_jsx(_components.li,{children:`For production monitoring: Can usually ignore`}),`\n`,_jsx(_components.li,{children:`For compliance: May need to fix (check requirements)`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`“analysis-shows-false-positives”`,children:`“Analysis shows false positives”`}),`\n`,_jsx(_components.p,{children:`The analyzer uses heuristics and may flag legitimate patterns. Review each recommendation and decide if it applies to your use case.`}),`\n`,_jsx(Heading,{level:`3`,id:`”how-often-should-i-run-analysis”`,children:`”How often should I run analysis?”`}),`\n`,_jsx(_components.p,{children:`Recommended frequency:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Development`}),`: Before each commit`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Staging`}),`: Before each deployment`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Production`}),`: Weekly or after incidents`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsx(Heading,{level:`3`,id:`analysis-fails-to-load`,children:`Analysis fails to load`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Verify run exists and you have access`}),`\n`,_jsx(_components.li,{children:`Check run has completed (not in progress)`}),`\n`,_jsx(_components.li,{children:`Try refreshing the page`}),`\n`,_jsx(_components.li,{children:`Check browser console for errors`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`issues-seem-incorrect`,children:`Issues seem incorrect`}),`\n`,_jsxs(_components.p,{children:[`The analyzer looks for `,_jsx(_components.strong,{children:`patterns`}),` that typically indicate non-determinism. Review the specific issue and decide if it applies to your code.`]}),`\n`,_jsx(Heading,{level:`3`,id:`no-recommendations-shown`,children:`No recommendations shown`}),`\n`,_jsx(_components.p,{children:`If score is 90+, there may be no recommendations. The analyzer only suggests fixes for detected issues.`}),`\n`,_jsx(Heading,{level:`3`,id:`analysis-takes-too-long`,children:`Analysis takes too long`}),`\n`,_jsx(_components.p,{children:`Large runs (1000+ actions) may take 10-30 seconds to analyze. Be patient or try analyzing smaller runs first.`}),`\n`,_jsx(Heading,{level:`2`,id:`see-also`,children:`See also`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/sdk/python/replay`,children:`Replay (SDK)`}),` - Actual replay execution`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/platform/replay`,children:`Replay (Platform)`}),` - API documentation`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/console/runs`,children:`Runs`}),` - View run history`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/console/ledger`,children:`Activity Ledger`}),` - Action details`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Determinism Analysis","description":"Analyze runs for non-deterministic patterns and get actionable recommendations.","href":"/console/determinism-analysis"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Accessing the analyzer","slug":"accessing-the-analyzer","depth":2,"children":[]},{"title":"Determinism score","slug":"determinism-score","depth":2,"children":[]},{"title":"Analysis summary","slug":"analysis-summary","depth":2,"children":[]},{"title":"Patterns detected","slug":"patterns-detected","depth":2,"children":[{"title":"Timestamp dependencies","slug":"timestamp-dependencies","depth":3,"children":[]},{"title":"Random generation","slug":"random-generation","depth":3,"children":[]},{"title":"UUID generation","slug":"uuid-generation","depth":3,"children":[]},{"title":"Process/environment","slug":"process/environment","depth":3,"children":[]},{"title":"API variability","slug":"api-variability","depth":3,"children":[]},{"title":"Order-dependent","slug":"order-dependent","depth":3,"children":[]}]},{"title":"Detailed issues view","slug":"detailed-issues-view","depth":2,"children":[{"title":"Action context","slug":"action-context","depth":3,"children":[]},{"title":"Issue details","slug":"issue-details","depth":3,"children":[]}]},{"title":"Smart recommendations","slug":"smart-recommendations","depth":2,"children":[{"title":"Priority levels","slug":"priority-levels","depth":3,"children":[]},{"title":"Categories","slug":"categories","depth":3,"children":[]},{"title":"Detailed guidance","slug":"detailed-guidance","depth":3,"children":[]}]},{"title":"Warnings section","slug":"warnings-section","depth":2,"children":[]},{"title":"Visual features","slug":"visual-features","depth":2,"children":[{"title":"Progress bar","slug":"progress-bar","depth":3,"children":[]},{"title":"Badge system","slug":"badge-system","depth":3,"children":[]},{"title":"Tabbed interface","slug":"tabbed-interface","depth":3,"children":[]},{"title":"Collapsible sections","slug":"collapsible-sections","depth":3,"children":[]}]},{"title":"Common patterns and fixes","slug":"common-patterns-and-fixes","depth":2,"children":[{"title":"Pattern: Using current time","slug":"pattern-using-current-time","depth":3,"children":[]},{"title":"Pattern: Random sampling","slug":"pattern-random-sampling","depth":3,"children":[]},{"title":"Pattern: UUID generation","slug":"pattern-uuid-generation","depth":3,"children":[]}]},{"title":"Integration with replay","slug":"integration-with-replay","depth":2,"children":[]},{"title":"Exporting results","slug":"exporting-results","depth":2,"children":[]},{"title":"Best practices","slug":"best-practices","depth":2,"children":[]},{"title":"Keyboard shortcuts","slug":"keyboard-shortcuts","depth":2,"children":[]},{"title":"Common questions","slug":"common-questions","depth":2,"children":[{"title":"”Score seems low but my agent works fine”","slug":"”score-seems-low-but-my-agent-works-fine”","depth":3,"children":[]},{"title":"”Can I ignore low-severity issues?”","slug":"”can-i-ignore-low-severity-issues”","depth":3,"children":[]},{"title":"“Analysis shows false positives”","slug":"“analysis-shows-false-positives”","depth":3,"children":[]},{"title":"”How often should I run analysis?”","slug":"”how-often-should-i-run-analysis”","depth":3,"children":[]}]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[{"title":"Analysis fails to load","slug":"analysis-fails-to-load","depth":3,"children":[]},{"title":"Issues seem incorrect","slug":"issues-seem-incorrect","depth":3,"children":[]},{"title":"No recommendations shown","slug":"no-recommendations-shown","depth":3,"children":[]},{"title":"Analysis takes too long","slug":"analysis-takes-too-long","depth":3,"children":[]}]},{"title":"See also","slug":"see-also","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"agentsentinel","siteName":"Agent Sentinel","title":"Determinism Analysis - Agent Sentinel","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-18T15:43:54.805Z","originalFileLocation":"console/determinism-analysis.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Analyze runs for non-deterministic patterns and get actionable recommendations.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Agent Sentinel\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Determinism Analysis - Agent Sentinel\">\u003cmeta data-mint-head property=\"og:description\" content=\"Analyze runs for non-deterministic patterns and get actionable recommendations.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Agent Sentinel\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.agentsentinel.dev/console/determinism-analysis\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://agentsentinel.mintlify.site/_mintlify/api/og/v2?division=Web+Console\u0026amp;title=Determinism+Analysis\u0026amp;description=Analyze+runs+for+non-deterministic+patterns+and+get+actionable+recommendations.\u0026amp;theme=4d2fad853b271edd6d74c3a5\u0026amp;signature=1121a283bc58249b6459227cb71fabfa4c1cb8d5b319440224e2f059a46cfd41\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Determinism Analysis - Agent Sentinel\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Analyze runs for non-deterministic patterns and get actionable recommendations.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://agentsentinel.mintlify.site/_mintlify/api/og/v2?division=Web+Console\u0026amp;title=Determinism+Analysis\u0026amp;description=Analyze+runs+for+non-deterministic+patterns+and+get+actionable+recommendations.\u0026amp;theme=4d2fad853b271edd6d74c3a5\u0026amp;signature=1121a283bc58249b6459227cb71fabfa4c1cb8d5b319440224e2f059a46cfd41\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/agentsentinel/dvQBrORHNLFI1x08/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Agent Sentinel\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#319165\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.agentsentinel.dev/console/determinism-analysis\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/console/determinism-analysis.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.agentsentinel.dev/#organization\",\"name\":\"Agent Sentinel\",\"url\":\"https://docs.agentsentinel.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/agentsentinel/B1Psb0ktqAcV0f6k/logo/light.svg?fit=max\u0026auto=format\u0026n=B1Psb0ktqAcV0f6k\u0026q=85\u0026s=c3b2e0f29a496f48c8f7c50f2acccc32\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.agentsentinel.dev#website\",\"name\":\"Agent Sentinel\",\"url\":\"https://docs.agentsentinel.dev\",\"publisher\":{\"@id\":\"https://docs.agentsentinel.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.agentsentinel.dev/console/determinism-analysis#webpage\",\"url\":\"https://docs.agentsentinel.dev/console/determinism-analysis\",\"name\":\"Determinism Analysis\",\"description\":\"Analyze runs for non-deterministic patterns and get actionable recommendations.\",\"dateModified\":\"2026-04-18T15:43:54.805Z\",\"isPartOf\":{\"@id\":\"https://docs.agentsentinel.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.agentsentinel.dev/console/determinism-analysis#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.agentsentinel.dev/console/determinism-analysis#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Web Console\",\"item\":\"https://docs.agentsentinel.dev/console/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Determinism Analysis\",\"item\":\"https://docs.agentsentinel.dev/console/determinism-analysis\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.agentsentinel.dev/console/determinism-analysis#article\",\"headline\":\"Determinism Analysis\",\"name\":\"Determinism Analysis\",\"description\":\"Analyze runs for non-deterministic patterns and get actionable recommendations.\",\"url\":\"https://docs.agentsentinel.dev/console/determinism-analysis\",\"mainEntityOfPage\":{\"@id\":\"https://docs.agentsentinel.dev/console/determinism-analysis#webpage\"},\"dateModified\":\"2026-04-18T15:43:54.805Z\",\"publisher\":{\"@id\":\"https://docs.agentsentinel.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.agentsentinel.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Agent Sentinel\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Agent Sentinel\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/console/determinism-analysis.md","siteName":"Agent Sentinel","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/agent-sentinel/agent-sentinel-sdk"},{"anchor":"PyPI","icon":"python","href":"https://pypi.org/project/agentsentinel-sdk/"}]},"tabs":[{"tab":"Guides","groups":[{"group":"Getting started","pages":[{"title":"Agent Sentinel","href":""},{"title":"Quickstart","href":"/quickstart"}]},{"group":"Concepts","pages":[{"title":"Actions \u0026 runs","href":"/concepts/actions-and-runs"},{"title":"Ledger","href":"/concepts/ledger"},{"title":"Policies","href":"/concepts/policies"}]},{"group":"SDK (Python)","pages":[{"title":"Installation","href":"/sdk/python/installation"},{"title":"Instrumentation","href":"/sdk/python/instrumentation"},{"title":"Policies \u0026 budgets","href":"/sdk/python/policies"},{"title":"Cost Tracking","href":"/sdk/python/cost-tracking"},{"title":"Guardrails","href":"/sdk/python/guardrails"},{"title":"Prose policies","href":"/sdk/python/prose-policies"},{"title":"Remote sync","href":"/sdk/python/remote-sync"},{"title":"Replay","href":"/sdk/python/replay"},{"title":"Interventions","href":"/sdk/python/interventions"},{"title":"Approval Workflows","href":"/sdk/python/approvals"},{"title":"MCP Integration","href":"/sdk/python/mcp"},{"title":"Error Handling","href":"/sdk/python/errors"},{"title":"Retry \u0026 Resilience","href":"/sdk/python/retry-resilience"},{"title":"LLM Integrations","href":"/sdk/python/llm-integrations"},{"title":"Framework Integrations","href":"/sdk/python/framework-integrations"},{"title":"Compliance (Enterprise foundations)","href":"/sdk/python/compliance"}]},{"group":"AI tools","pages":[{"title":"Claude Code setup","icon":"asterisk","href":"/ai-tools/claude-code"},{"title":"Cursor setup","icon":"arrow-pointer","href":"/ai-tools/cursor"}]},{"group":"Platform API","pages":[{"title":"Platform API Overview","href":"/platform/overview"},{"title":"Authentication","href":"/platform/auth"},{"title":"Ingest","href":"/platform/ingest"},{"title":"Runs \u0026 actions","href":"/platform/runs"},{"title":"Activity Ledger API","href":"/platform/ledger"},{"title":"Agent Discovery","href":"/platform/agents"},{"title":"Interventions API","href":"/platform/interventions"},{"title":"Approvals API","href":"/platform/approvals"},{"title":"Policies API","href":"/platform/policies"},{"title":"Budget reservations","href":"/platform/budgets"},{"title":"Kill Switch API","href":"/platform/kill-switch"},{"title":"Evals API","href":"/platform/evals"},{"title":"Stats","href":"/platform/stats"},{"title":"Replay (platform)","href":"/platform/replay"},{"title":"MCP (Model Context Protocol)","href":"/platform/mcp"},{"title":"AgentVault Credentials","href":"/platform/agentvault"},{"title":"WebSocket Real-time Updates","href":"/platform/websockets"},{"title":"Compliance (Enterprise foundations)","href":"/platform/compliance"}]},{"group":"Web Console","pages":[{"title":"Web Console Overview","href":"/console/overview"},{"title":"Console Quick Start","href":"/console/quickstart"},{"title":"Interventions Page","href":"/console/interventions"},{"title":"Approvals Page","href":"/console/approvals"},{"title":"Kill Switch","href":"/console/kill-switch"},{"title":"Runs Page","description":"View execution history, replay runs, and analyze determinism.","href":"/console/runs"},{"title":"Determinism Analysis","href":"/console/determinism-analysis"},{"title":"Replay Hub","description":"Org-wide history of local-replay submissions from every SDK client.","href":"/console/replay"},{"title":"Activity Ledger","href":"/console/ledger"},{"title":"Agents Page","href":"/console/agents"},{"title":"Evals","href":"/console/evals"},{"title":"Analytics Page","href":"/console/analytics"},{"title":"MCP Explorer","href":"/console/mcp"},{"title":"Settings Page","href":"/console/settings"}]}]}]},"basePath":"","title":"Determinism Analysis - Agent Sentinel","buildId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","deploymentId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","dynamics":[],"chunks":[]}