SentnelOpsSentnelOpsbeta

The five layers

SentnelOps is five layers, each useful on its own and stronger together. This page tells you what each layer genuinely buys you — and, just as plainly, what it does not. Every limitation here is real; most of them are also the reason the next layer exists.

If you only read one other page, read Trust & reliability — it answers "what happens when SentnelOps itself fails?" with the same honesty this page applies to each layer.

Layer 1 — Agent identity

Full Layer 1 documentation: overview · how it works · guides · reference →

Every AI agent gets a named, owned identity: who it is, who is responsible for it, which environment it runs in, and a credential that can be revoked from a web page. Registration is one API call or one dashboard form, and it changes nothing about how your agent runs — identity is a directory, not a checkpoint. The registry is the page you open when someone asks "which AI agents exist here, and who owns them?"

The Agent Registry showing summary cards and a table of agents, each with an owner, environment, risk level, and status
The registry — every agent named, owned, and revocable from one page.
AdvantagesLimitations
Every agent is owned, named, and revocable — no more anonymous software with production credentials.Registration is voluntary. An unregistered agent is not stopped by identity alone — catching those is what ghost detection and the proxy (layer 3) are for.
Onboarding is one API call or one dashboard form — no infrastructure change, no traffic change.Tokens are HS256 shared-secret JWTs today. Asymmetric / CIMD-style protocol identity is on the roadmap, not in the product.
Revocation is enforced per token and takes effect in seconds — rotate or suspend from the dashboard.The registry is only as complete as your team's discipline in registering agents. Identity gives you a directory, not a guarantee.
Works without touching your traffic — you can adopt identity alone before routing anything through the proxy.Because it doesn't touch traffic, identity by itself observes and enforces nothing. It answers “who exists?”, not “what are they doing?”

Layer 2 — Lifecycle & policy

Full Layer 2 documentation: overview · how it works · guides · reference →

Identity says who an agent is; lifecycle and policy say what it is allowed to become and to do. Production agents need a second person's approval before they run — the API itself refuses to let a creator approve their own agent. What each agent may call is written as YAML policy — your org edits its own from the dashboard's Policy page, overlaying the platform default, and a saved change is live within seconds. Risk-based review cadences force someone to periodically re-justify each agent's access instead of letting permissions rot.

An agent detail page showing its approval chain, Rotate token and Suspend buttons, and the full audit trail of lifecycle events
An agent's lifecycle page — the approval chain, the safety switches, and every lifecycle event on the record.
AdvantagesLimitations
Segregation of duties is enforced by the API, not by convention — the person who creates an agent can never self-approve it.A policy is only as correct as you write it. A rule you forgot is a call that passes. The deny-unlisted default narrows this risk, but does not remove it.
Policy is plain YAML: your org's own document, edited and validated on the Policy page, live within seconds — and still diffable text you can keep in git.Approvals require humans to be reachable. Timeout = deny, so an unstaffed approval queue blocks legitimate high-risk calls. That is by design — but it is your queue to staff.
Risk-based review cadence fights permission rot — high-risk agents come up for re-review sooner.Production-approval friction is real and intentional. If your team wants zero-friction production launches, this layer will feel like a speed bump — that's the point.

Layer 3 — Observation: the MCP gateway

Full Layer 3 documentation: overview · how it works · guides · reference →

The gateway is the layer that sees what agents actually do. You change one line of client configuration — the MCP server URL — and every tool call flows through SentnelOps: identified, logged, and checked against policy in observe mode, where nothing is ever blocked. The live feed shows each call as it happens; would-block rows preview what enforcement would do against your real traffic, at zero risk. Ghost detection compares who is actually calling your servers against who is registered — and names the callers nobody accounted for.

The Live MCP calls feed streaming tool calls, most marked permitted in green and some marked would-block in red
The live feed — green rows passed policy; red would-block rows are a free preview of enforcement against real traffic.
The ghost detection view comparing 18 registered agents against 7 observed callers, with an unregistered caller named shadow-scraper flagged as unaccounted for
Ghost detection — 18 registered, 7 observed callers, and one (shadow-scraper) that nobody registered.
AdvantagesLimitations
One config line to adopt — the MCP URL in your client. No agent code changes, no SDK required.The gateway sits in the data path. If it is unreachable, proxied agent calls fail until it is back. Read Trust & reliability before you route production traffic through it.
About 2 ms of p99 added latency — measured, not estimated.It sees tool-call parameters, not just metadata. If that matters for your data, deploy it in your own VPC (self-hosted) so nothing crosses your boundary.
Would-block telemetry validates your policy against real traffic with zero risk before you ever enforce.It only governs traffic that is routed through it. An agent pointed directly at an upstream bypasses the gateway entirely — ghost detection tells you this is happening, but cannot stop it.
Ghost detection finds the callers nobody registered — the difference between who you think is calling and who actually is.The agent's Authorization header is currently forwarded to the upstream, so upstreams that need their own bearer auth conflict with the proxy. Per-upstream header injection is on the roadmap.

Layer 4 — Runtime enforcement & approvals

Full Layer 4 documentation: overview · how it works · guides · reference →

Enforcement is where observation grows teeth — gradually, and on your terms. You flip from observe to enforce per environment and per rule, never all-or-nothing: enforce in dev while production still observes, or enforce one dangerous tool while everything else logs. A blocked call never reaches the upstream and comes back as a machine-readable 403 the agent can handle. The highest-risk calls can be held for a human: an approver gets a live countdown, and if nobody answers in time the call is denied — never silently allowed.

The approvals queue showing two pending approval cards with live countdown timers, and a table of recent decisions below
The approvals queue — pending calls held with live countdowns; timeout resolves to deny, never to allow.
AdvantagesLimitations
Graduated observe → enforce per environment and per rule — you never flip one big switch for everything.A wrong enforce-mode policy blocks legitimate traffic. That is exactly why observe-first exists: run every rule in observe until its would-block rows look right.
Blocked calls never reach the upstream and return a machine-readable 403 the caller can act on.Human approval adds real seconds to high-risk calls while a person decides. If a call can't tolerate that, don't put an approval rule on it.
Timeout = deny is fail-safe: an unanswered approval can never turn into an implicit yes.The default fail mode for policy-engine errors is OPEN — the call passes and a warning is logged, because availability comes first by default. Security-critical environments must explicitly set fail_mode: closed. If you don't choose, you have chosen open.
Approval decisions are claimed atomically and work across replicas — two approvers, or an approver racing a timeout, can never double-decide.Enforcement only applies to traffic routed through the gateway — layer 3's bypass limitation applies here with higher stakes.

Layer 5 — Humans

Full Layer 5 documentation: overview · how it works · guides · reference →

There is a quiet fifth layer: the people operating the other four. SentnelOps gives humans the same discipline it gives agents — named accounts with roles (viewer, developer, security, admin), so the intern can watch the feed but not suspend an agent. The three credential types — user sessions, agent tokens, and org API keys — are mutually unusable: an agent token can never open the dashboard, and a user session can never call the proxy. And a last-admin guard means you cannot demote or delete the only admin — an org can't lock itself out.

The users and roles admin page listing team members with their roles and controls for changing them
Users & roles — humans get identities too, with roles that limit what each person can touch.