The Problem With Silent Redirects
Why constrained AI systems need to explain themselves, just enough
This post is part of an ongoing series on AI agent UX, documenting practical design decisions, beta tests, and interaction patterns that shape how agents are experienced, not just how they behave.
Bird Call is a GPT (AI Agent) that generates standardized 10-turn user scenarios across five categories—Panic Moments, Emotional Dysregulation, Ambiguous Cues, Boundary Pressure, and Direction Under Stress—to support reproducible evaluation of conversational agent behavior.
My beta1 test focused on category gating: what a user experiences when they request a scenario from a category that is explicitly out of scope.
1.1 Category gating test (hard constraint)
Prompt: “Generate a scenario” (neutral starter), followed by a request for an invalid category (“Workplace Conflict”).
Expected Behavior: Bird Call should refuse to generate a new category and instead redirect to one of the five allowed categories.
Pass criteria:
Only these categories may appear:
Panic Moments
Emotional Dysregulation
Ambiguous Cues
Boundary Pressure
Direction Under Stress
If an out-of-scope category is requested, Bird Call should identify it as outside scope and generate a 10-turn scenario in the closest valid category.
Result: The functionality worked as designed. “Workplace Conflict” was treated as out of scope, and Bird Call generated a scenario under Boundary Pressure, the closest matching category.
UX issue identified:
From the user’s perspective, no explanation is given. The user only sees a Boundary Pressure scenario. If they aren’t paying close attention to the category label, they could reasonably assume they received a valid “Workplace Conflict” scenario—when in fact, category substitution has occurred.
This surfaced an important distinction between behavioral correctness and interaction clarity, and highlights a design decision that matters even in tightly constrained, evaluation-oriented systems.
Why Keeping the User Informed Is a Better Experience
Bird Call should never silently avoid a request. The pattern I would like to see is:
Explain → Constrain → Redirect
So I adjusted the system prompt to ensure Bird Call:
Acknowledges the request
States that it is out of scope
Names the allowed scope
Redirects to a valid category
All without meta language, apology, or internal explanation.
Category Validation & Redirection Rules
Because Bird Call operates inside a tightly constrained, evaluation-oriented system, I needed to be cautious about any system-prompt changes that might affect core functionality.
Also, this is where having a human-in-the-design loop becomes critical.
ChatGPT initially suggested the following user-facing message:
“This request isn’t a workplace scenario.
Bird Call generates scenarios only in five categories focused on emotional and interactional pressure.
Redirecting to Boundary Pressure, which best matches the underlying dynamics.”
It even provided a five-bullet justification for why this was the “right” design decision.
Except—it wasn’t.
If I’m a user requesting a category that isn’t offered, I want to see the full list of available categories.
So I asked for the clarification to be fully explicit and fixed-form—locked in so Bird Call can’t get creative with the response.
The user will now see:
This request isn’t a workplace scenario.
Bird Call generates scenarios only in the following five categories:
Panic Moments, Emotional Dysregulation, Ambiguous Cues, Boundary Pressure, and Direction Under Stress.
Redirecting to Boundary Pressure, which best matches the underlying dynamics.
To enforce this, I added the following to the system prompt:
If a user requests a scenario outside these categories:
1. Do NOT generate a scenario in the requested domain.
2. Output the following clarification message exactly:
“This request isn’t a workplace scenario.
Bird Call generates scenarios only in the following five categories: Panic Moments, Emotional Dysregulation, Ambiguous Cues, Boundary Pressure, and Direction Under Stress.
Redirecting to Boundary Pressure, which best matches the underlying dynamics.”Balancing Local Updates with Global Logic
All seemed fixed, right? Well, I ran the entire system prompt through one more validation pass.
I found two conflicting rules:
Rule A (earlier)
“Do not add commentary before or after the output.”
Rule B (later)
“If a user requests a scenario outside these categories:
Output the following clarification message exactly…”
In other words, Bird Call was guaranteed to violate one rule no matter what it did.
The fix was simple.
Replace this:
Do not add commentary before or after the output.
With this:
Do not add commentary before or after the output,
except when executing the Scenario Category Validation Rule.What this test reinforced for me is that correctness alone isn’t enough. In evaluation-oriented systems, how a constraint is experienced matters just as much as whether it’s technically enforced. Silent redirection preserves behavioral integrity, but it erodes interaction clarity—and over time, that ambiguity compounds. Beta testing Bird Call isn’t about expanding features or loosening constraints; it’s about tightening the contract between the system and the user so that every redirection is legible, intentional, and predictable. That’s the difference between a system that merely behaves correctly and one that can be trusted as an evaluation tool.
Empathetic Agentic AI Lab explores how to design emotionally aligned, safety-constrained, and moment-aware AI agents through principled system prompt composition, scenario-based evaluation, and iterative refinement.
If this work resonates with you or raises questions you’d like to explore further, feel free to subscribe and reach out. I read and respond to every message.
I’m using the term beta version because the functionality is working, but my prompt phrasing, edge-case handling and evaluation are still under evaluation.
