Defending an LLM agent against adversarial input — prompt injection, jailbreak attempts, ambiguous edge cases, and malformed model output — as an explicit design phase rather than a bug-fixing afterthought. Use when building any agent that processes untrusted or user-supplied input, when a challenge dataset is described as containing edge cases or injection attempts, or when reviewing an agent for failure modes before submission.