Agentic Reliability Patterns

Learn more about Well-Architected Reliability → Agentic Enterprise Reliability

Patterns

Where to lookWhat good looks like
Platform | Platform Cache✅ Implement circuit breakers that track LLM service health state in Platform Cache for low-latency real-time reads, backed by Custom Metadata Types for thresholds and configuration; because Platform Cache is best-effort, persist the open/tripped state in a durable store (such as a Custom Object) rather than the cache alone. Open the circuit on a tuned failure threshold (for example, five consecutive inference failures) and route to fallback patterns
Platform | Platform Cache✅ Store validated response schemas in Platform Cache enabling fast validation of agent responses against expected structure
Agentforce | Prompt Template✅ When response validation fails, retry with refined prompts including the validation error and an example of correct structure (maximum 3-5 retries)
Agentforce | Session Tracing✅ Use Agentforce Session Tracing reasoning traces to inspect the agent’s reasoning path and detect hallucination in its outputs
Data 360 | Vector Search✅ Require agents to cite Data 360 vector search sources so claims can be cross-referenced against retrieved sources before action execution
Platform | Proactive Monitoring✅ For accounts with the Signature Success entitlement, rely on Proactive Monitoring, where Salesforce staff monitor the org for emerging issues; it is not a self-service configurable alert
Platform | Scale Center✅ Use Scale Center to identify specific agent operations approaching governor limits
Agentforce | Action✅ Implement pagination in agent actions retrieving large record collections
Agentforce | Action✅ Design agent actions with hard limits (maximum 200 children per parent) and implement sampling strategies when limits are exceeded

Anti-Patterns

Where to lookWhat bad looks like
Platform | Custom Metadata Types⚠️ Allowing unlimited inference retries without a circuit breaker, creating infinite retry loops when LLM service is degraded
Agentforce | Prompt Template⚠️ Retrying failed agent responses without including the validation error and expected structure in the retry prompt
Agentforce | Action⚠️ Allowing agents to request unbounded context (e.g., “all history”) without hard limits on children per parent record
Agentforce | Action⚠️ Designing agent actions that retrieve large record collections without pagination, causing governor limit spikes
Einstein | Trust Layer⚠️ Trusting agent responses without cross-referencing claims against grounding data sources, allowing hallucinations to reach action execution
Platform | Org⚠️ Treating LLM service availability as identical to Salesforce platform availability instead of monitoring it as a separate dependency

Patterns

Where to lookWhat good looks like
Agentforce | Agent Configuration✅ Design multi-tier fallback chains: full-context agent → reduced-context agent → deterministic rule engine → human handoff via Omni-Channel
Agentforce | Agent Configuration✅ Configure a secondary agent using condensed context (last 30 days vs all history, top 5 vector search results vs top 20) to reduce failure probability
Platform | Flow✅ Implement fallback logic in orchestration Flow or Apex triggered by Platform Events, logging which tier succeeded for visibility into failure patterns
Platform | Flow✅ Build deterministic Flow or Apex logic handling common scenarios as fallback when agent reasoning fails (e.g., standard validation rules, rule-based score calculation)
Agentforce | Omni-Channel✅ Configure skill-based routing for human handoff ensuring escalations reach appropriate expertise
Agentforce | Omni-Channel✅ Pass full conversation context to human queue including attempted strategies, agent confidence scores, and failure reasons

Anti-Patterns

Where to lookWhat bad looks like
Agentforce | Agent Configuration⚠️ Designing agents with a single execution path that fails completely when any component degrades
Agentforce | Agent Configuration⚠️ Using the same full-context agent configuration for fallback attempts instead of progressively simplifying context
Agentforce | Omni-Channel⚠️ Routing to human handoff without passing conversation context, attempted strategies, or failure reasons, forcing the agent to start from scratch
Platform | Flow⚠️ Not logging which fallback tier succeeded, losing visibility into failure patterns and fallback effectiveness

Patterns

Where to lookWhat good looks like
Platform | Platform Events✅ Publish checkpoint events after each successful step in multi-step agent workflows, storing correlation ID, completed steps, and state needed for continuation in the event payload
Platform | Platform Events✅ Design agent workflows as loosely coupled event chains where each agent can fail and retry independently without blocking the entire workflow
Platform | Platform Events✅ Implement retry queues with exponential backoff delays (30s, 2min, 8min, 30min) using Platform Events with retry count in payload
Platform | Platform Events✅ Route to dead letter queue and alert operations after maximum retries (typically 5) are exhausted
Platform | Platform Events✅ Include correlation ID in all related events; use Platform Event Replay API to reconstruct complete workflow history for debugging
Platform | Platform Events✅ Leverage the 72-hour replay retention window available to high-volume platform events (standard-volume events retain for 24 hours) to preserve retry queues through org maintenance windows or deployment downtime

Anti-Patterns

Where to lookWhat bad looks like
Platform | Platform Events⚠️ Building multi-step agent workflows without checkpointing, requiring full re-execution when any intermediate step fails
Platform | Platform Events⚠️ Retrying failed agent requests without exponential backoff, creating thundering herd effects on recovering services
Platform | Platform Events⚠️ Designing tightly coupled sequential workflows where a single agent failure blocks all downstream processing
Platform | Platform Events⚠️ Omitting correlation IDs from events, making it impossible to trace and debug complete workflow execution
Platform | Platform Events⚠️ Retrying indefinitely without a maximum retry count or dead letter queue, consuming platform resources on permanently failed operations

Patterns

Where to lookWhat good looks like
Platform | Apex✅ Use Batch Apex for agent operations analyzing 1,000+ records, leveraging async governor limits (200 SOQL queries, 150 DML operations, 60s CPU per execute)
Platform | Apex✅ Use Queueable Apex chains for multi-step agent workflows requiring multiple external API calls or extended processing time; track progress in custom objects enabling resume on failure
Platform | Apex✅ Use @future methods for lightweight fire-and-forget agent operations (notifications, external logging, non-urgent updates) where failure is tolerable
Platform | Apex Jobs✅ Monitor async processing capacity via the Apex Jobs page (Setup → Apex Jobs) and the Apex Flex Queue: maximum 5 concurrent batch jobs (additional jobs queue in the Flex Queue, up to 100 in Holding status), and the org-wide daily limit on async Apex executions (DailyAsyncApexExecutions) — the greater of 250,000 or 200 × the number of user licenses per 24 hours — shared across Batch, Queueable, Future, and Scheduled Apex
Platform | Org✅ Alert when async consumption approaches limits enabling proactive capacity management before agent processing is blocked

Anti-Patterns

Where to lookWhat bad looks like
Platform | Apex⚠️ Processing 1,000+ records in synchronous agent transactions instead of moving to Batch Apex, hitting the 100 SOQL query limit after only a few records
Platform | Apex⚠️ Using Queueable chains without tracking progress in custom objects, preventing resume-on-failure capability
Platform | Org⚠️ Not monitoring the 5 concurrent batch job limit or the shared daily async Apex execution limit (DailyAsyncApexExecutions — the greater of 250,000 or 200 × user licenses per 24 hours, across Batch, Queueable, Future, and Scheduled Apex), causing agent processing to silently queue or fail

Patterns

Where to lookWhat good looks like
Platform | Org✅ Load test agent performance in Full Copy Sandbox with production-scale data volumes; simulate concurrent conversations matching peak demand
Platform | Org✅ Measure p95 and p99 latency under load identifying performance degradation under stress; validate governor limit consumption stays below thresholds at peak load
Agentforce | Agent Configuration✅ Perform fault injection: simulate LLM inference failures in the service layer your circuit breaker monitors, inject SOQL exceptions testing error handling, corrupt responses testing validation logic
Agentforce | Agent Configuration✅ Introduce data skew (accounts with 10,000+ children) during testing to validate pagination logic handles worst-case scenarios
Platform | Platform Events✅ Conduct chaos engineering: randomly disable Platform Event subscribers testing replay recovery, terminate async jobs mid-execution testing checkpoint restart
Platform | Org✅ Schedule regular chaos days in staging environments maintaining resilience as agents evolve
Platform | Org✅ Execute long-running stability tests (72+ hours) monitoring for time-dependent failures: accumulating errors and gradually degrading performance
Platform | Org✅ Track CPU time trends and heap consumption over extended periods detecting gradual degradation in context management

Anti-Patterns

Where to lookWhat bad looks like
Platform | Org⚠️ Load testing in Partial Copy Sandbox with reduced data volumes, providing misleading confidence since data volume directly affects agent performance
Agentforce | Agent Configuration⚠️ Testing only happy paths without deliberately introducing failures to validate circuit breakers, retry logic, and timeout handling
Platform | Org⚠️ Running short-duration tests only, missing time-dependent failures (accumulating errors, gradual degradation) that appear only under sustained 72+ hour operation
Platform | Platform Events⚠️ Never testing Platform Event replay recovery or checkpoint restart, leaving resilience mechanisms unvalidated

Patterns

Where to lookWhat good looks like
Business | Documentation✅ Establish SLOs before building agents, not after production failures; define conversation success rate targets (typically 95-99%) per agent type
Platform | Org✅ Track conversation success rate as primary agent reliability metric: percentage of conversations completing without errors or timeouts. Count a graceful handoff to a human as a success, since escalation is the designed final fallback tier; count only failed or unintended escalations against the metric
Platform | Org✅ Track success rate separately by agent type and use case since success criteria differ between agent purposes
Platform | Org✅ Calculate Mean Time Between Failures (MTBF) per agent type to identify least reliable agents requiring optimization investment
Platform | Org✅ Measure Mean Time to Recovery (MTTR); automate recovery via Platform Event replay and circuit breakers for much faster, less error-prone recovery than manual intervention
Einstein | Trust Layer✅ Sample random agent responses validating claims against Data 360 sources to measure grounding accuracy; investigate when accuracy drops below 95%
Platform | Platform Events✅ Monitor Platform Event replay gaps (events missed or undelivered) via a subscriber-side logging pattern that records each event’s replayId and correlation ID to a custom object
Platform | Org✅ Alert operations when any SLI drops below its defined SLO threshold

Anti-Patterns

Where to lookWhat bad looks like
Business | Documentation⚠️ Building agents without defining SLOs first, only establishing reliability targets after production failures occur
Platform | Org⚠️ Using a single aggregate success rate across all agent types instead of tracking separately by agent type and use case
Platform | Org⚠️ Relying solely on traditional Salesforce monitoring (trust.salesforce.com) without tracking agent-specific SLIs like conversation success rate, MTBF, MTTR, and grounding accuracy
Platform | Org⚠️ Requiring manual intervention for all agent failures instead of automating recovery with Platform Event replay and circuit breakers
Einstein | Trust Layer⚠️ Never sampling agent responses for grounding accuracy validation, allowing hallucination to go undetected in production

Patterns

Where to lookWhat good looks like
Agentforce | Agent Configuration✅ Design retry patterns, fallback chains, and escalation thresholds into agent workflows from initial design, not as afterthoughts
Agentforce | Action✅ Bulkify context preparation and paginate large record collections in agent actions
Platform | Platform Cache✅ Cache frequently accessed reference data in Platform Cache reducing redundant queries during agent context preparation
Platform | Scale Center✅ Use Scale Center to identify resource-intensive agent operations requiring optimization
Platform | Platform Events✅ Design self-recovering workflows using Platform Events as durable retry queues with circuit breakers protecting external dependencies
Agentforce | Agent Configuration✅ Always include human handoff as final fallback in every agent’s degradation chain
Platform | Org✅ Monitor agent SLIs continuously alerting when metrics drop below SLOs
Agentforce | Agent Configuration✅ Balance autonomous capability with appropriate oversight: enable self-recovery from transient failures while escalating when confidence drops or edge cases emerge

Anti-Patterns

Where to lookWhat bad looks like
Agentforce | Agent Configuration⚠️ Adding reliability mechanisms (retry, fallback, escalation) as afterthoughts rather than designing them in from the start
Agentforce | Action⚠️ Not bulkifying context preparation, causing governor limit failures under real-world query patterns
Platform | Org⚠️ Not monitoring API consumption and Platform Event allocation proactively, discovering limits only when agents fail
Agentforce | Agent Configuration⚠️ Designing agent chains without a human handoff as final fallback, leaving no recovery path when all automated options are exhausted
Agentforce | Agent Configuration⚠️ Granting agents fully autonomous operation without escalation thresholds for low-confidence situations or edge cases