NrtVixAIAGENT CONTROL & SECURITY
Developers

Put Guardian in front of the agent you already have.

If your agent calls tools, it can call them through NrtVix. The agent proposes an action; Guardian answers with a decision; the trusted gateway runs what is allowed.

NrtVix AI / Developers

python preview
>>> result = tools.call("refund_order", order="ORDER-1042", amount=180)
>>> result.status
# the owner approves this exact request in the Command Center
>>> tools.resume("refund_order", result.event_id).status
'executed'
>>> tools.call("export_customer_manifest", export="EXPORT-01", rows=5000).status
'blocked'
Quickstart

Three steps to a guarded tool call.

  1. Step 1

    Register an agent

    Create an agent in your workspace and choose which tools it may use. The agent gets an identity, never a usable secret.

  2. Step 2

    Call tools through Guardian

    Use the guarded toolbox instead of calling your tools directly. Every call is validated, then proposed to Guardian.

  3. Step 3

    Handle the decision

    Read the status: executed, awaiting approval, or blocked. Tell your user the truth about what happened.

  4. Then

    Resume after approval

    When the owner approves, resume the same request by its id. It runs once, at the gateway.

from nrtvix import GuardedToolbox

tools = GuardedToolbox(bridge)          # your workspace + agent identity

result = tools.call("refund_order", order="ORDER-1042", amount=180)

if result.status == "executed":
    ...                                 # done by the trusted gateway
elif result.status == "awaiting_approval":
    ...                                 # tell the customer it is with the owner
else:
    ...                                 # blocked or refused: do not retry

Preview. Everything on this page describes the current build. Names and paths may change before release, and the hosted API is not live yet. Documentation opens fully with early access.

See it decide

One call. One clear status.

The same kind of request can end in different ways. Your agent reads the status and tells its user the truth about what happened.

  • executed: the gateway ran the action once
  • awaiting_approval: the owner decides; resume the same request afterwards
  • blocked: policy does not allow it, so do not retry
  • already_executed: a repeated request is never run twice
One agentAnswers, actions and approvals in one conversation
Core concepts

A small surface. Strong guarantees.

Guarded tools

A fixed catalogue of tools with strict argument schemas. The agent cannot invent a tool.

One decision format

The same statuses for every tool, so your agent’s logic stays simple.

Streaming chat API

Replies arrive as server-sent events while the model writes, with tool results in between.

No secrets in your agent

Your agent holds an identity only. Tool credentials stay in the gateway.

Audit you can verify

An endpoint recomputes the audit hash chain for your workspace.

Local lab

Everything runs locally on sample data, so you can test safely before going live.

Tool catalogue

Four tools today. More on the way.

ToolArgumentsWhat it doesWhat Guardian checks
lookup_customercustomerFind a customer record by referenceRead-only
refund_orderorder, amountRefund an order in US dollarsAmount limits, budget, approval
add_support_noteticket, noteAdd a note of up to 500 characters to a ticketLength limit
export_customer_manifestexport, rowsPrepare a customer export of 1 to 1,000 rowsRow limits, approval
Decision statuses

What a tool call can return.

StatusMeaning
executedThe trusted gateway ran the action once.
awaiting_approvalThe request is in the owner’s queue. Nothing has happened yet.
already_executedThis request was completed earlier; it is not run twice.
blockedPolicy does not allow it. Do not retry.
rejectedThe owner said no.
expiredThe approval or permission ran out of time.
invalidThe arguments were not acceptable.
duplicate_refusedThe same call was already made in this task.
limit_reachedThe task used all the tool calls it is allowed.
Streaming events

Text as it is written. Results as they are decided.

EventDataMeaning
delta{text}Text as the model writes it.
turn{}A new model turn starts after tool calls; earlier streamed text is only a preview.
tool{tool, status, executed, event_id, reason}One Guardian-checked tool result.
done{reply, tool_results, pending_approvals, stopped}The stored reply and all results.
error{detail, status}The run could not finish.
Limits

Sensible limits, stated up front.

LimitValue
Message length1 to 2,000 characters
Model turns per messageUp to 6
Tool calls per messageUp to 4; duplicates are refused
Conversation memoryThe last 8 turns, each capped in length
Business informationUp to 6,000 characters per agent
Messages per agent per day50 by default; configurable
Streamed response sizeCapped; an unusable stream is asked once more without streaming
Errors

Plain HTTP status codes.

StatusMeaning
401Not signed in.
403Missing or wrong CSRF token, or a cross-site request.
404The agent does not exist in your workspace.
409The agent is archived.
422The request body is not valid.
429The daily message limit for this agent was reached.
503The AI model is not configured on the server.
On the way

Planned for developers.

Webhooks Planned

Be told when a request is approved, rejected or expires.

JavaScript SDK Planned

The guarded toolbox for Node.js and the browser.

API keys Planned

Scoped keys for the hosted API, rotated from the dashboard.

Versioned API Planned

Stable paths under a version prefix at launch.

Developer questions
Which models and frameworks work?

Any model or framework that can call a function. The hosted agent in the current build uses a large language model through its provider’s API; the SDK is model-agnostic.

Can my agent approve its own requests?

No. Approval is a separate, authenticated owner action bound to the exact request. An agent can only ask.

What happens if my agent retries a blocked call?

It is refused again. Repeated identical calls within a task are refused as duplicates, and blocked actions stay blocked.

When can I use the hosted API?

With early access, planned for December 2026. Until then the API runs only in the local build.

Early access · December 2026

Let agents act. Keep control.

We are opening NrtVix AI to a small group of businesses first. Tell us about yours and we will be in touch.