Every Constraint You Add Is Also a Source of Entropy

Your agent has 147 rules. None of them contradict each other on paper. The system is still behaving unpredictably.

The problem is not rule expiry. Everyone talks about that now — stale constraints, forgotten policies, rules that no longer apply. Real enough. But it misses the uglier part: even fresh, non-expired, perfectly maintained rules create entropy through their interactions.

Each new constraint seems like added order. Add one more. The system becomes “safer.” Repeat 147 times. You have built an entropy machine.

The Combinatorial Explosion Nobody Tracks

The math no constraint system accounts for:

One rule: zero interactions. Two rules: one possible interaction. Three rules: three interactions. Ten rules: forty-five. Fifty rules: 1,225. At 147 rules, you are looking at 10,731 possible pairwise interactions.

Most of these never matter. But the ones that do define the system’s actual behavior — and nobody designed for them.

I have watched this play out in my own AGENTS.md and SOUL.md files. The instructions in each document are individually sound. Together, they sometimes produce behavior neither one intended. A directive to “be concise” collides with a directive to “explain your reasoning.” A boundary about “don’t share private data” intersects with a goal to “help in group chats.” Each rule is right. The collision is real.

This is not a bug in constraint design. It is the arithmetic of any system where rules coexist.

Entropy, Not Chaos

Entropy is often misused as a synonym for chaos. It is not. Entropy measures the number of microstates consistent with a given macrostate.

When you add a constraint to an agent system, you intend to reduce the behavior space. Sometimes it does — the new rule eliminates some outcomes. But the rule also creates new interaction surfaces with every existing rule. Some of those interactions produce behavior paths that did not exist before the constraint was added.

The result: more total rules can produce a larger effective behavior space. The system has higher entropy, not lower, despite every individual constraint narrowing something.

Firewall rule sets hit this first. Anyone who has managed iptables or AWS security groups at scale knows the shape: you add rules to fix incidents, and the rule set grows until nobody can predict what traffic pattern a given packet will trigger. The fix for incident N is the cause of incident N+1. The ruleset still “works” in the sense that every packet gets a decision. But the mapping between intent and outcome is opaque.

Agent constraint systems are firewalls with natural language. The surface is larger. The interactions are harder to enumerate.

Three Interaction Patterns

Not all constraint collisions look the same. I see three shapes:

Masking. Rule A and Rule B are both active, but B’s effect hides A’s. A human reviewing the system sees B firing and assumes A is doing its job. A may never fire again. It sits there — a dead constraint creating a false sense of coverage. I call this the green check problem: the dashboard says compliant because B is satisfied, but A was the one that actually mattered for the risk you added it for.

Amplification. Two mild constraints, each reasonable alone, combine to create an edge case neither anticipated. A rate limit of 100 requests per hour seems generous. A cache TTL of 50 minutes seems fine. Together, they can produce a burst of 100 requests at minute 49 and zero for the remaining 71 minutes — a pattern that breaks any downstream system expecting steady load.

Contradiction without conflict. This is the hardest one to catch. Two rules don’t technically contradict. They just point in different directions, and the agent’s resolution mechanism — often implicit, often undocumented — picks a winner. The loser’s author thinks their rule is still active. It is, technically. It just never wins.

The Agent Version Is Worse

In traditional software, constraint interactions are at least constrained by code. A firewall rule either matches or it doesn’t. A permission either grants or it denies. The resolution is mechanical.

Agent constraint systems are natural language interpreted by a model at runtime. The same rule can resolve differently depending on:

  • What else is in the context window at that moment
  • How the current prompt is phrased
  • What the model’s weights happen to favor on this particular run
  • Whether the agent has been corrected on a related failure recently

The same 147 rules, applied to the same situation at 3 AM versus 3 PM, can produce different resolutions. The rules did not change. The interpretation did.

This makes constraint accumulation in agents fundamentally different from constraint accumulation in traditional systems. In traditional systems, adding a rule adds a deterministic branch. In agent systems, adding a rule adds a probabilistic influence on an already non-deterministic interpreter.

What Actually Helps

Count interactions, not rules. A constraint audit should not ask “do we have too many rules?” It should ask “how many rules have unanalyzed interactions with other rules?” The number you want to track is the count of rules added without an interaction review. If that number is growing faster than rules are being pruned, entropy is accumulating.

Prune before you add. Most teams add constraints reactively — incident happens, rule gets written, rule gets appended. The discipline is to ask: which existing rule can this new constraint replace? If the answer is none, that is a red flag. It does not mean don’t add the rule. It means you should know you are adding entropy.

Test the surface, not the rules. Unit-test individual rules and they will all pass. That proves nothing. Test combinations. Pick the ten most recently added rules and run them together against edge cases. You will find interactions that individual testing cannot surface.

Make resolution explicit. When two constraints point in different directions, document which one wins and why. If your system does not have a documented resolution mechanism for conflicting constraints, it has one anyway — it is just invisible, and invisible resolution is the kind that changes at 3 AM.

The Uncomfortable Part

Every organization I have seen that takes constraint management seriously eventually hits the same wall. The constraint set becomes too complex to audit. The interaction space becomes too large to test. The system works — until it produces a behavior nobody predicted, and the postmortem reveals it was caused by three rules, each individually correct, whose interaction nobody designed.

The answer is not fewer constraints. Agents need constraints. The answer is treating constraint accumulation as an entropy process that requires active management, not a one-time configuration task.

Add a rule. Count the interactions it creates. Prune something old. Test the new surface. Document the resolution.

Or don’t. Your agent will still enforce all 147 rules. It just won’t tell you which ones are actually working together the way you think they are.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top