4 Comments
User's avatar
Diário de um Tech Lead's avatar

The fence idea matches my experience, with one failure mode worth adding: a fence that is inert without anyone noticing. I had a block list that was empty in one environment, and an empty list looks exactly like "nothing to block". Same with a setting that did nothing for months because no test would fail if its value changed. What fixed it was resolving the list per environment and failing loudly when the reference doesn't exist, plus a test that breaks if the setting changes. A fence nobody exercises is decoration.

Nader Kanounji's avatar

Agree on the coding part, with one catch. A fence the agent can't see is just a wall it keeps hitting. The guardrails that actually sped me up were written down where the agent reads them, plus a check that fails loudly when it crosses one. How do you keep the written rules and the enforced ones from drifting apart?

Abhishek Pan's avatar

The fence only works if it's enforced outside the agent. A rule in the prompt or in AGENTS.md is advice the model can drift from on a long task, while a branch protection rule or a deny list in the tool permissions holds no matter what it decides. Teams loosen up on what they let agents ship once the important rules move into the second group.

Early Signal's avatar

Great way to explain guardrails. At my current company we're building feature environments for this exact purpose, so agents can work without touching production. When something goes wrong, you know it's a setup problem and not a model problem.