Agent governance

Your agents act.
You answer for it.

Daevix is the control plane for autonomous agents. It gives every agent its own identity, runs it in a sandbox you control, and records every action it takes. When an agent oversteps, it is contained at the boundary, and the attempt is on the record.

AGPLv3 Made with care, in the open

The questions

Four questions you should be able to answer.

An agent gets out of the box, and you find out later. Daevix answers these from the record.

Which agents are running, and what may they do?

Every agent has an identity and a policy, set at org, group or agent scope.

Identity and policy

What did this agent touch in the last hour?

Filter the audit stream by agent, destination or outcome, and get the answer from the record.

The audit stream

Where are your agents’ API keys?

Not with the agents. Credentials are injected at the enclave boundary, so an agent has nothing to leak.

Secret injection

How fast can you contain it, and prove you did?

One command contains it. Every denied attempt after that is on the record.

Containment

Know every agent. See every action. Contain every mistake.

01Observe

Every agent has its own identity, so every request it makes traces back to a named agent, live.

Identity and policy

02Audit

Every decision is recorded in the enclave, separate from application logs, and never leaves it.

The audit stream

03Contain

Policy decides where each agent may go. One command contains an agent while the rest of the fleet keeps working.

Containment from the CLI

Architecture

Sovereign by construction.

Daevix runs in your infrastructure, so agent data never passes through ours. It splits in two: the controlplane decides who an agent is and what it may do; the enclave is where the work happens, and where the data stays.

Controlplane

Central

Holds who agents are, what they may do, and what they did. Operators drive it through one API.

  • Identity
  • Policy
  • Operator audit
  • Operator API

Never handles sovereign data

Enclave

Yours

Runs where your data lives. A broker and its satellites sit on the agent's request path and enforce policy there.

  • Broker
  • IMDS
  • Gateway
  • LLM proxy
  • Relay
  • Audit stream

Sovereign data and its audit stay here

Policy

Checked at execution time.

You define the policy. The enclave enforces it, on the request path, before a tool call or a model request goes out. Every request gets a verdict: allow, deny, review or redact.

Allow req_9c2e41

Agent agt_7f3a calls tickets.create through the gateway.

Example decision. Policy matched; request forwarded; verdict recorded.

An identity for every agent

The enclave's IMDS serves agents their identity the way a cloud instance gets its own. Every action traces back to a named agent.

Policy on the request path

The gateway and LLM proxy sit between the agent and the outside world. Decisions happen where the request is, not in a dashboard after the fact.

A dedicated audit stream

Verdicts go to their own stream inside the enclave, separate from application logs. The audit is sovereign data too: it never leaves for the controlplane.

Contain an agent in one click

Pull one agent off the network mid-run while the rest of the fleet keeps working. Its identity is revoked and every request it makes is denied at the boundary, with the attempt on the record.

Agents never hold secrets

Credentials are injected into requests at the enclave boundary, on the way out. The agent never sees an API key or token, so it has none to leak, log or exfiltrate.

Bring your own agent

No SDK, no code changes. Inference is forced through a proxy you can reroute: the agent believes it is talking to Provider A while you send it to Provider B, translated between Anthropic and OpenAI formats on the way.

Audit stream

Every decision, on the record.

Who acted, what they touched and what policy said. Every record names the actor, the action, the target and the outcome, in UTC, in order, in one place.

Live enc_51d0aa7e · eu-north-1
Example data
agt_7f3a tickets.create via gateway allow
agt_7f3a llm.messages → claude, 2 tool results redact
agt_c19b egress https://paste.example.net deny
agt_c19b db.export customers (4,812 rows) review
op_mads policy.apply egress.v5 allow

CLI

Operate it from the terminal.

One binary, dvx, from placing an agent to pulling it off the network. Policy is set at platform, org, group or agent scope, and a lock keeps narrower scopes from overriding it.

Every command and flag is in the docs. Building from source? See the README.

01
Sign in
$ dvx login
02
Place an agent in an enclave
$ dvx agent create --org acme --enclave enc-eu1 --image triage:1.4 --tier kata
03
Decide where it may go
$ dvx policy destination --org acme --allow api.github.com --deny paste.example.net
04
Inject keys, reroute inference
$ dvx policy llm credential-mode --org acme --mode inject
$ dvx policy llm upstream --org acme --set anthropic=https://llm.acme.internal
05
Watch every decision
$ dvx audit stream --agent agt_7f3a
06
Contain it
$ dvx agent contain --org acme --uid agt_7f3a

Open source

Put your agents under governance.

Daevix is AGPLv3. Contributions are welcome under the CLA. It is alpha.