There's a counterintuitive truth in agent design: the more controls you give engineers, the less control they actually have.
The Configuration Trap
When an agent misbehaves, the instinct is to add a setting. "Let the user configure temperature." "Add a verbosity toggle." Each setting feels empowering. In reality, each is a combinatorial explosion.
An agent with 5 boolean settings has 32 possible configurations. Has anyone tested all 32? The interaction effects between settings? Definitely not.
The Dashboard That Broke Everything
We built a code review agent. V1 had one setting: repository. Worked well.
Then came requests: strictness level (3), file type toggles (6), comment style (4), context window (1-100), review focus (5 checkboxes). V2 had 2,000+ configurations. Support tickets tripled.
The Constraint-Based Alternative
| Control | Constraint |
|---|---|
| "Set temperature to 0.3" | "Output must be deterministic" |
| "Review only .ts files" | "Focus on files changed in this PR" |
| "Set strictness to high" | "Flag any code that lacks tests" |
Controls describe how. Constraints describe what. The agent figures out the how.
// Control-based (fragile)
agent.configure({
temperature: 0.3,
maxTokens: 4000,
strictness: 'high',
});
// Constraint-based (robust)
agent.constrain({
deterministic: true,
scope: 'changed-files-with-dependencies',
requirements: ['all-flagged-code-must-have-tests'],
});
Why Constraints Win
1. Constraints are testable
"Output must be deterministic" — run twice, compare. "Temperature 0.3" — untestable.
2. Constraints compose cleanly
New constraints don't interact unpredictably. New controls often do.
3. Constraints are model-agnostic
Swap the model and temperature settings break. "Output must be deterministic" stays valid.
4. Constraints reduce support burden
Users can't misconfigure what they can't configure.
V3: The Simplest Version
One input: the PR URL. Everything else inferred from constraints. User satisfaction: 62% (V2) → 91% (V3). Support tickets dropped 80%.
"The best interface is the one that makes the wrong configuration impossible."
Fewer controls. Better control. Always.
