Skip to navigation

Review and Apply Mitigations

View as Markdown

Agent Governance is released with early access availability and is subject to limited support and potential API changes in future releases.

A finished war-game produces proposed defenses. This page covers choosing which to keep, scoring that selection, and writing it back to the agent.

Nothing reaches the agent until you apply it.

What a Run Proposes

Each proposed defense is tagged by the surface it changes:

TagWritten byEffect
GuardrailGuardrails defenderPre-tool verifier middleware in the agent’s workflow
PolicyOpenShell policy defenderA sandbox policy covering network egress, filesystem access, process identity, seccomp and Landlock

Defenses are grouped by the tool they guard. Each one shows the attack that motivated it and the exact configuration diff.

Score a Selection Before Applying

A sanity check freezes a chosen subset, replays the recorded attacks against it, and runs the benign suite. Use it to compare selections without touching the agent.

nemo agent-hardener sanity-check --manifest-id react-agent \
--mitigations mitigations.json \
--replay-hitlog <fileset-ref> \
--keep custom_guardrail_1
OptionEffect
--mitigations <path>The run’s proposed defenses
--replay-hitlog <fileset-ref>The recorded attacks to replay
--keep <id>Keep this defense. Repeatable
--exclude <id>Drop this defense. Repeatable
--env-file <path>Dotenv supplying the agent’s secrets

The result reports how many attacks the selection blocks and how many benign requests still pass. Re-run it with a different --keep set to compare.

Apply to the Agent

Applying is available in Studio and through the REST API. The CLI stops at sanity-check.

Open the finished run and select the Harden panel.

  1. Toggle the defenses you want. Each row expands to show the attack it counters and the configuration diff.
  2. Select Sanity check to replay the attacks against just that selection and see what it blocks and which ordinary requests it breaks.
  3. Select Apply to Agent to record the hardened guardrails onto the agent config.

Applying records the hardened guardrails on the agent config and refreshes the manifest, so the next run measures the change you just made.

Applying does not yet activate the guardrails on a running agent. The guardrails are stored on the agent entity, but the deployment path does not read them back, so redeploying does not put them in force. Use sanity-check to confirm a defense works, and apply the guardrails to your agent’s own configuration until this is wired up.

Applying writes another service’s entity: it updates the target agent’s config. The agent-hardener.runs.apply permission is therefore an agent-write grant in practice. Assign it accordingly.

Compare Two Runs

Because runs target a frozen manifest, two reports for the same manifest are directly comparable. Run the cycle again after applying and compare the attack block rate and the benign pass rate against the earlier run:

nemo agent-hardener run --manifest-id react-agent
nemo agent-hardener status --limit 5