Zum Hauptinhalt springen
Die Agent-Firewall wird auf zwei Wegen konfiguriert: über die Konsole (Ihre Session, derselbe Login, den Sie für das Dashboard nutzen) und über das Gateway (ein dedizierter firewall-scoped API-Key, den Ihr Agent zur Laufzeit präsentiert). Die zwei Familien leben unter verschiedenen Pfad-Präfixen, nehmen verschiedene Auth und beantworten verschiedene Fragen — „die Policy bearbeiten” versus „diesen Tool-Call auswerten”. Diese Seite ist die Route-für-Route-Karte beider. Was die Policy bedeutet — Verdikte, Surfaces, Regeln, Auflösung — beginnt bei Firewall und Firewall-Regeln. Diese Seite ist nur die API-Surface.

1. Die zwei Routenfamilien

Konsole — konfigurieren

/api/workspace/firewall/*. Authentifiziert durch Ihr Session- / Access-Token (UserAuth), gescoped auf Ihren aktiven Workspace. Policies verfassen, Events lesen, MCP-Server registrieren, Freigaben auflösen. Jede Aktion ist rollengegated.

Gateway — durchsetzen

/api/v1/firewall/*. Authentifiziert durch einen firewall-gateway-scoped Key (ein Key mit gesetztem is_firewall_gateway). Die Maschine-zu-Maschine-Surface, die Ihr Agent oder MCP-Client zur Laufzeit aufruft. Ein regulärer Relay-Key erhält hier 403.
Konsolen-Routen nehmen nie einen sk-orca-…-Relay-Key, und Gateway-Routen nehmen nie ein Session-Token. Sie zu verwechseln ist der häufigste 401/403, wenn man die Firewall das erste Mal verdrahtet. Der einzige sk-orca-…-Key, der auf einen /v1/firewall/*-Aufruf gehört, ist einer, der mit eingeschaltetem is_firewall_gateway geprägt wurde — siehe Scope, Keys & Policies.

2. Rollen auf einen Blick

Konsolen-Routen lösen Ihre Workspace-Rolle auf und gaten entsprechend. Lesevorgänge, die keine Tool-Call-Herkunft tragen, sind für jedes Mitglied offen; Schreibvorgänge und alles, was Tool-Call-Argumente exponiert, erfordern Developer+.
RolleKann tun
Viewer / MitgliedEinstellungen, Policies, Presets, Discovered tools, Simulate, Anomalien lesen.
Developer+Alles davon, plus jeden Schreibvorgang, die events/runs/trace-Surface und den test-Dry-Run.
Admin+Zusätzlich das is_firewall_gateway-Flag auf einem Key setzen und das Klartext eines Gateway-Keys lesen.
Die Aufteilung ist beabsichtigt: Ein Viewer kann sehen, dass eine Policy existiert und was sie blockieren würde, aber nicht die rohen Tool-Call-Argumente hinter einem Event. Wenn Sie Dashboards für Nicht-Entwickler bauen, sind die read-open Routen das sichere Set.

3. Eine Policy aus der Konsole konfigurieren

Die Konsolen-Routen sind, wie Sie Policy verfassen und inspizieren. Sie konfigurieren alles in der Dashboard-UI — dies sind dieselben Endpunkte, die sie aufruft.

Policies & Einstellungen

Methode & PfadRolleZweck
GET /api/workspace/firewall/settingsMemberObserve-Mode + Zähler.
PUT /api/workspace/firewall/settingsDeveloper+Workspace-Firewall-Einstellungen aktualisieren.
GET /api/workspace/firewall/policiesMemberPolicies auflisten.
GET /api/workspace/firewall/policies/:idMemberDetail einer einzelnen Policy.
POST /api/workspace/firewall/policiesDeveloper+Eine Policy erstellen.
PUT /api/workspace/firewall/policiesDeveloper+Eine Policy aktualisieren.
DELETE /api/workspace/firewall/policies/:idDeveloper+Eine Policy löschen.
POST /api/workspace/firewall/rulesDeveloper+Eine Regel hinzufügen.
PUT /api/workspace/firewall/rulesDeveloper+Eine Regel aktualisieren.
DELETE /api/workspace/firewall/rules/:idDeveloper+Eine Regel löschen.

Haltung, Presets & Sandboxes

Methode & PfadRolleZweck
GET /api/workspace/firewall/presetsMemberEingebaute Regel-Presets.
GET /api/workspace/firewall/templatesMemberUse-Case-Template-Galerie.
POST /api/workspace/firewall/templates/applyDeveloper+Ein Template anwenden → eine Policy + ihre Regeln.
POST /api/workspace/firewall/autonomyDeveloper+Eine Autonomie-Stufe anwenden (tight / balanced / permissive).
POST /api/workspace/firewall/autonomy/undo/:audit_idDeveloper+Ein-Klick-Undo aus dem Audit-Snapshot.
GET /api/workspace/firewall/simulateMemberWas eine Stufe blockieren würde (?level=).
POST /api/workspace/firewall/testDeveloper+Eine Policy gegen einen Beispielaufruf dry-runnen.

Observability

Methode & PfadRolleZweck
GET /api/workspace/firewall/discovered-toolsMemberGesehene Tools, geflaggt als covered / gap.
GET /api/workspace/firewall/eventsDeveloper+Firewall-Events auflisten (filterbar).
GET /api/workspace/firewall/events/by-request/:request_idDeveloper+Events für einen Request.
GET /api/workspace/firewall/events/aggregateDeveloper+Runs- / Sessions-Rollup.
GET /api/workspace/firewall/trace/by-runDeveloper+Trace-Knoten für einen Run (?run_id=).
GET /api/workspace/firewall/anomaliesMemberAnomalie-Feed.
POST /api/workspace/firewall/anomalies/snoozeDeveloper+Den Feed snoozen (≤ 7 Tage).

MCP-Server

Registrieren Sie die Model-Context-Protocol-Server, die Ihre Agenten erreichen, hinter einem einzigen auditierten Gateway. Credentials werden verschlüsselt gespeichert und beim Lesen maskiert.
Methode & PfadRolleZweck
GET /api/workspace/firewall/mcp_serversMemberRegistrierte Server auflisten.
GET /api/workspace/firewall/mcp_servers/:idMemberServer-Detail.
POST /api/workspace/firewall/mcp_serversDeveloper+Einen Server registrieren (409 bei doppeltem name).
PUT /api/workspace/firewall/mcp_serversDeveloper+Einen Server aktualisieren.
DELETE /api/workspace/firewall/mcp_servers/:idDeveloper+Einen Server entfernen.
POST /api/workspace/firewall/mcp_servers/:id/probeDeveloper+Erreichbarkeit + tools/list-Handshake.
Ein Server trägt einen eindeutigen name, einen endpoint, einen auth_mode (none / bearer / oauth / basic) und einen Health-status (ok / degraded / down). Siehe Firewall-MCP für den vollständigen Lebenszyklus und die Skill-Quarantäne.

4. Am Gateway durchsetzen

Diese laufen auf einem firewall-gateway-scoped Key, nicht auf Ihrer Session. Sie sind das, was Ihre Agenten-Schleife oder Ihr MCP-Client zur Laufzeit aufruft.
Methode & PfadZweck
POST /api/v1/firewall/evaluatePre-Dispatch-Verdikt für einen Tool-Call.
POST /api/v1/firewall/evaluate_planPre-Execution-Prüfung für einen mehrstufigen Plan.
ANY /api/v1/firewall/mcpDer vereinheitlichte MCP-Gateway-Endpunkt.
GET /api/v1/firewall/mcp_serversDie registrierten Server des Workspaces aufzählen.
GET /api/v1/firewall/approvals/:idDen Approval-Zustand eines zurückgehaltenen Aufrufs pollen.
POST /api/v1/firewall/approvals/:id/callbackHMAC-signierter Approval-Callback.

Ein konkretes Beispiel: einen Tool-Call auswerten

Bevor Ihr Agent ein Tool dispatcht, bitten Sie das Gateway um ein Verdikt. Geben Sie den firewall-gateway-scoped Key weiter — nicht Ihren sk-orca-…-Relay-Key:
curl https://api.orcarouter.ai/api/v1/firewall/evaluate \
  -H "Authorization: Bearer <firewall-gateway-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_name": "shell.exec",
    "arguments": { "command": "rm -rf /" }
  }'
Die Antwort trägt das Verdikt — allow, audit, deny, sanitize oder pending_approval. Bei deny überspringen Sie den Aufruf und bringen den Grund dem Modell zur Kenntnis; bei sanitize leiten Sie die bereinigten Argumente weiter, die das Gateway zurückgibt (sanitize redigiert nur Tool-Call-Argumente — nie den Inhalt, den ein Tool zurückgibt); bei pending_approval treten Sie in die Approval-Schleife unten ein.
Das Gateway wertet die Aufrufe aus, die es überqueren — den Evaluate-Hook, das MCP-Gateway und den Relay-Pfad. Ein Tool, das Ihr Agent vollständig im eigenen Prozess ausführt, ohne je OrcaRouter zu berühren, liegt außerhalb seines Sichtfelds. Routen Sie die Aufrufe, die zählen (modellvermittelte Tools, MCP-Dispatch, Netzwerk-Egress), durch das Gateway, und sie werden gesteuert.

5. Der Approval-Handshake (HITL)

Ein pending_approval-Verdikt hält den Aufruf für einen Menschen zurück. Der HTTP-Fehler, während er zurückgehalten ist, ist firewall_approval_pending. Ihn freizugeben ist eine dreistufige Schleife, aufgeteilt über beide Routenfamilien:
1

Ein Prüfer löst den Hold auf

Über die Konsole (PATCH /api/workspace/firewall/approvals/:id, Developer+), oder Ihr eigenes System postet einen HMAC-signierten Callback an POST /api/v1/firewall/approvals/:id/callback. Der Callback verifiziert den HMAC inline — keine andere Auth wird akzeptiert.
2

Ihr Agent pollt die Freigabe

GET /api/v1/firewall/approvals/:id mit dem Gateway-Key, bis der Zustand auf approved oder rejected umkippt.
3

Reichen Sie mit dem einmal nutzbaren Token erneut ein

Sobald genehmigt, geben Sie den ursprünglichen Aufruf mit dem X-OrcaRouter-Firewall-Approval-Header und der Approval-ID erneut aus. Das Gateway erkennt ihn und lässt diesen einen Aufruf durch. Der Header ist einmal nutzbar.
Entscheidungen sind first-writer-wins und idempotent — eine zweite Auflösung desselben Holds ist ein No-op. Siehe Firewall — Menschliche Freigabe für den End-to-End-Flow und Warum wurde das blockiert? zum Lesen eines Verdikts.

6. Wie ein Block aussieht

ErgebnisHTTPCode
Abgelehnter Tool-Call (inbound-Surface)400firewall_blocked
Abgelehnt über MCP-GatewayTool-Fehlerfirewall deny: <reason>
Für Freigabe zurückgehalten400firewall_approval_pending
firewall_blocked ist als skip-retry markiert — denselben Aufruf identisch erneut auszuführen würde einfach wieder blockieren, sodass ein wiederholender Client zurückweicht, statt zu hämmern. Die vollständige Code-Liste steht in Fehlercodes.

7. Verwandte Referenzen

Guardrail-API

Das Inhaltspolicy-Pendant — /api/guardrail/*-Routen für die Text-Plane.

Verdikt-Glossar

Jedes Verdikt und was es mit einem Aufruf macht.

Glob & JSONPath

Die Matching-Grammatik hinter tool_name_glob und args_match.

Compliance-API

Packs, signierte Reports, Residency und Erasure.

8. FAQ

Die Gateway-Routen erfordern einen firewall-gateway-scoped Key — einen, der mit gesetztem is_firewall_gateway geprägt wurde (eine Admin+-Aktion). Ein regulärer Relay-Key, selbst ein gültiger, erhält 403. Prägen Sie einen dedizierten Gateway-Key für Ihre Agenten-Laufzeit.
Nein. Die events-, events/aggregate- und trace-Routen sind Developer+, weil die Datensätze Tool-Call-Argument-Herkunft tragen. Viewer können Einstellungen, Policies, Presets, Discovered tools, Simulate und den Anomalie-Feed lesen.
Beides. Ein Mensch löst sie in der Konsole über PATCH /api/workspace/firewall/approvals/:id (Developer+) auf, oder Ihr eigenes System postet eine HMAC-signierte Entscheidung an POST /api/v1/firewall/approvals/:id/callback. Der Agent pollt GET /api/v1/firewall/approvals/:id, unabhängig davon, welcher Pfad sie aufgelöst hat.
Nein. Ein sanitize-Verdikt redigiert nur die Tool-Call-Argumente — nie den Inhalt, den ein Tool zurückgibt. Auf der inbound-Surface, wo es noch keine Aufruf-Argumente gibt, eskaliert sanitize zu einem Block. Siehe Firewall-Regeln.

Wie diese Kontrollen mit Guardrails und dem Rest des Gateways komponieren, siehe KI-Agenten absichern und Guardrails vs. Firewall.