← Engineering at RAYFINITE

Governing Autonomous Agents

The RAYFINITE governance stack: the Constitution above three instruments (Objective Contracts for one bounded task, Standing Orders for recurring jobs, and Agent Charters for standing agents) with the five questions

How we run a production multi-agent engineering operation, and the three original instruments that keep it accountable.

At RAYFINITE, AI agents don't just autocomplete our code. They run a meaningful share of our actual engineering operation: reviewing pull requests, syncing project data, running scheduled maintenance, and carrying out well-scoped implementation tasks with limited supervision. That's a genuine capability. It's also a governance problem nobody hands you a playbook for. An instruction to "keep improving the system" is not a task; it's an invitation for a well-intentioned agent to wander, and for nobody, including the agent, to know when it's done, whether it succeeded, or what it cost. We learned this the direct way, and it changed how we design every autonomous system we run today. This post is about the three instruments we built in response, and why we think naming them mattered almost as much as designing them.

Where it started

Our first generation of autonomous agent work leaned on broad, aspirational goals: keep the codebase healthy, look for opportunities to improve things. The agents were capable and diligent, but the goals weren't objectives; they were vibes. An agent grading its own vague assignment will, with total sincerity, tell you it succeeded, because there was never a fixed target to miss. Work drifted. Effort went in directions nobody had asked for. Nobody could say, after the fact, whether a given stretch of agent time had produced anything a human would call done.

The fix wasn't a smarter agent. It was to stop asking agents to interpret intent and start handing them contracts, a shift from goals to obligations, each with its own way of proving, independently, that it was met. That shift produced three instruments, each governing a different shape of autonomous work.

Objective Contracts

An Objective Contract is the unit of work for one bounded task: the smallest thing we hand an agent that still counts as real accountability. Every contract has five required parts:

Intent. The plain-language reason the task exists, so a human, or another agent, reviewing it later understands the why, not just the what.

A machine-verifiable done condition. A check that runs and returns a clear pass or fail, not a paragraph of self-assessment. If we can't write the check, the task isn't ready to hand to an agent yet.

An independent finish line. Verification performed by something other than the agent that did the work: a test suite, a second agent, a human reviewer. An agent is never the sole judge of its own contract.

A budget. A hard ceiling on time, tokens, or both, declared before the work starts, not discovered after.

Scope. An explicit boundary on what the agent is, and isn't, authorized to touch, so incidental changes never happen by default.

Every one of those five parts is required, not optional. A contract missing any of them doesn't go to an agent. That sounds strict because it is. It's also the reason we can hand a genuinely wide range of tasks to agents today and trust the result without re-deriving it by hand.

Standing Orders

Objective Contracts cover one-off, bounded tasks. But some of the most valuable agent work is recurring: a nightly sync, a scheduled audit, a monitoring sweep that runs on its own cadence indefinitely. That's a different risk profile: a bounded task fails once and stops; a recurring job that's silently wrong keeps being wrong, forever, until someone notices.

A Standing Order is our answer: a declared, versioned description of a recurring autonomous job, classified along three axes before it's allowed to exist: how it's triggered (a schedule, an event, a manual call), how much autonomy it's granted (from every run reviewed by a human up to fully unattended), and how its output gets verified. Every Standing Order also declares a stop-condition quad: a maximum run count or time budget, a hard cost ceiling, an explicit definition of what "this succeeded" looks like, and a named escalation path for when a human needs to step in.

A validation gate checks that all of this is present and internally consistent before the job is allowed to go live. Fail-closed, not fail-open: an incomplete or incoherent declaration blocks the job from starting at all. And every fleet of Standing Orders carries a kill switch: one flag that pauses the whole set immediately, no negotiation required. Recurring autonomy earns trust by being interruptible, not by being clever.

Agent Charters

Objective Contracts and Standing Orders govern work. Agent Charters govern the workers: the standing agents that persist across many tasks and carry an identity of their own inside our systems.

Every standing agent operates under a declared charter with five components: an identity (who this agent is, distinct from any other); an authority (exactly what it's permitted to do, and just as importantly, what it isn't; a budget tied to that identity, so cost is attributable rather than pooled into an anonymous total; an audit trail that records what it actually did; and a revocation path, the ability to pull an agent's authority immediately if something looks wrong.

The charter exists to answer four questions on demand, for any action any agent has ever taken:

Who acted?

Under what authority?

At what cost?

With what evidence?

If we can't answer all four for a given action, that's treated as a gap to close, not a curiosity to shrug off. A fleet of agents is only as trustworthy as its weakest answer to those four questions, so we built the charter to make the answer structural, not something reconstructed from logs after the fact when something has already gone wrong.

Original names for original things

We could have called these things tasks, jobs, and bots, and left it at that. We didn't, on purpose. Objective Contracts, Standing Orders, and Agent Charters are specific instruments with specific required parts, and giving them their own names forces precision every time someone reaches for one. You can't hand an agent a vague Standing Order and call it done, because a Standing Order has a defined shape, and everyone on the team knows what that shape is. Naming a thing well is a small act, but it's part of how a team keeps a fast-moving practice legible to itself, and to anyone who has to trust the result.

Building this in the open

We've published all three instruments as open specifications, because governance that only works inside one company isn't governance. It's a private habit. All three are live on GitHub, MIT-licensed, ready to adopt in any stack.

We'll keep building on all three as we learn more from running them in production, and we'll keep writing about what we learn.

More from RAYFINITE Engineering

Read more from the blog, or explore the ventures RAYFINITE is building.