Note: Common Claude Architecture Challenges and Solutions A developer outlines common architectural challenges in building Claude-based agentic systems and their solutions. The piece highlights the risks of lossy summarization for critical data and recommends a tiered memory architecture with immutable state ledgers. It also argues that prompt-based guardrails are insufficient for safety and advocates for code-level enforcement through middleware hooks. Claude Architecture Common Challenges and solutions: Lossy Summarization vs. Immutable State Ledgers The Scenario As long-running agentic sessions accumulate chat history, developers often introduce context-window optimization techniques—such as rolling sliding windows or recursive LLM-based summarization—to compress old turns into concise paragraphs. Why It Fails Summarization is inherently lossy compression. When an LLM summarizes a conversation, it abstracts away specific details to save space. Precise, exact-match entities—such as transaction UUIDs, cryptocurrency hashes, invoice numbers, or strict timestamps—frequently get generalized or dropped entirely. If a user later references an order number mentioned 20 turns ago, a summarized memory store will return a miss or a hallucination. The Architectural Solution Implement a tiered memory architecture. While conversational history can be summarized for flow, critical transactional data must be preserved in a dedicated, immutable sidecar structure often called a Case Facts store or State Ledger . Append-only logs ensure exact keys are preserved verbatim, entirely decoupled from the summarization engine. Prompt Instructions vs. Code-Level Enforcement The Scenario An agent has access to a tool called execute financial transfer or modify database record. To prevent dangerous actions, a developer adds strict rules to the system prompt: "You must never execute a transfer exceeding $500 without explicit manager approval." Why It Fails Prompt-based guardrails are probabilistic suggestions, not hard security boundaries. Through indirect prompt injection, clever phrasing, or model drift, an LLM can easily be persuaded to bypass system instructions. Relying on prompts to enforce hard safety or monetary limits introduces a critical security vulnerability. The Architectural Solution Enforce Defense-in-Depth via Programmatic Interception. Before any tool payload is dispatched to an external API or database, it must pass through a code-level middleware or PreToolUse hook. The business logic check e.g., if payload 'amount' 500: raise ValidationError must live in deterministic code that the model cannot override or negotiate with.