Telling an agent not to wire money is a suggestion. Making the wire call impossible without a sign-off is a policy.
Why prompt rules leak
A rule in a prompt competes with everything else in the context: the user's request, the retrieved documents, the agent's own plan. Given enough pressure, the model will weigh them differently than you intended. That is not a bug in the model. It is what a prompt is for.
Rules that sit on the action
Ordin evaluates policies at the moment an agent tries to act. The call, its arguments and the agent's scope go to the policy engine, which returns one of three answers: allow, deny or hold for a person.
- Scope: can this agent touch this table, tool or inbox at all?
- Spend: does this call fit inside the job's remaining budget?
- Sign-off: does this kind of action need a person first?
Writing policies people can read
Policies are short, typed and versioned with your code. Each one names what it protects and why, so an auditor can read the list without reading the agent.
policy("outbound-email", {
when: (call) => call.tool === "email.send",
decide: (call) => (call.args.to.length > 5 ? "hold" : "allow"),
reason: "Bulk email needs a person to approve it",
});- Policies
- Security
- Compliance