# Schutzgrenzen und Journal

> Die Kanäle, die Prüfungen und die Sperren, die jeder Schreibzugriff eines Agenten teilt, und die Spur, die jede Handlung hinterlässt.

Ein Agent ist kein zweiter Weg in die Station. Jeder Aufruf landet in demselben Code, den
auch die Seiten aufrufen, unter denselben Sperren, und hinterlässt dieselbe Spur wie die
Handlung eines Bedieners.

## Schutzgrenzen, die jeder Schreibzugriff teilt {#guardrails-every-write-shares}

- **Dieselben Kanäle wie die Oberfläche.** Änderungen an der Konfiguration laufen über
  dieselben Bereitstellungs- und Anwendungsfalldienste wie die Seiten, Schreibzugriffe auf
  die laufende Anlage laufen über den einen Schreibtrichter der Logik, und die Steuerung eines
  Laufs läuft über den Lebenszyklus von Process. Es gibt keinen zweiten Weg, über den ein Agent
  Prüfung, Sperren oder Journal umgehen könnte.
- **Prüfung wie im Editor.** Ein Upsert legt die übergebenen Parameter über die bestehende
  Deklaration und prüft den zusammengeführten Entwurf mit denselben Regeln, die auch die
  Editoren anwenden. Ein abgelehnter Upsert lässt nichts halb angewendet zurück.
- **Die Projektierungssperre gilt.** Solange eine Einheit von Process läuft, werden
  Änderungen an der Konfiguration mit einem strukturierten Ergebnis abgelehnt
  ("Configuration is locked while a Unit is running"), das benennt, was zuerst beendet
  werden muss, genau wie die Seiten sie ablehnen.
- **Eine gestoppte Runtime ist schreibgeschützt.** Bei gestoppter Runtime der Station
  arbeiten nur noch Ansehen, Status, Auflisten, die Hilfe (`help_search`, `help_read`),
  Berichtsexport, die Momentaufnahme für die Sicherung und das Zurechtfinden in der
  Oberfläche (`ui_state`, `ui_navigate`, `ui_screenshot`, `ui_scroll`); jeder verändernde
  Aufruf antwortet `Runtime stopped`, auch wenn der Schalter seines Bereichs ein ist.
  Später hinzukommende Werkzeuge bleiben gesperrt, bis sie bewusst als nur lesend
  eingestuft werden.
- **Zerstörende Werkzeuge sind gekennzeichnet.** Werkzeuge, die Anlagen ansteuern oder
  Daten vernichten (`tag_write`, `action_run`, `process_recipe_apply`, `process_start`,
  `process_resume`, die Löschbefehle, `server_stop`, …), tragen die Kennzeichnung von MCP
  für zerstörende Werkzeuge, sodass Clients, die harmlose Werkzeuge automatisch freigeben,
  hier trotzdem nachfragen.

## Wie Handlungen eines Agenten ins Journal kommen {#how-agent-actions-journal}

Alles, was ein Agent tut, hinterlässt dieselbe Spur wie die Handlungen eines Bedieners, und
zwar dort, wo Sie ohnehin nachsehen:

- Der Lebenszyklus des Endpunkts, jede Änderung an der Konfiguration von Agentenseite und
  jede abgewiesene Abtastung aus einem Browser werden im Bereich **Agent** der Konsole von
  [Ereignisse](events) protokolliert (`logs_read` filtert direkt darauf).
- Eingriffe in die laufende Anlage innerhalb der Runtime der Logik (Schreiben auf Variablen,
  Schreiben auf Tags, Ausführen von Aktionen, Quittieren von Alarmen) werden mit dem
  Ursprung **MCP** protokolliert, neben denselben Eingriffen aus der Oberfläche; die Historie der
  Alarme und die Zeile "Ausgelöst von" einer Aktion nennen dafür **Agent über MCP**.
- Läufe, die ein Agent startet, stoppt, abbricht oder kommentiert, tragen **Agent über MCP** als
  handelnde Instanz in der Laufdatei und in [Historien](histories) ein, damit nie der Name
  einer Person unter etwas steht, das sie nicht getan hat.
- Die dauerhafte Ereignishistorie ist für Agenten nur anfügend: `event_history_read` kann
  nichts leeren und nichts löschen.
- Jede Geste eines Agenten an der Oberfläche, die etwas ändert (`ui_click`, `ui_set_text`,
  `ui_select`, `ui_set_theme`), hinterlässt eine Zeile im Bereich **Agent**: das Werkzeug, worauf
  es wirkte, und die Seite, nie den geschriebenen Text. Diese Zeilen gehen in die Logdatei des
  Programms (der Ordner `logs`, siehe [Installation und erster Start](app-install)) und in eine
  [ausführliche Aufzeichnung](events-console#detailed-capture), nicht in die Liste der Konsole,
  damit eine lange Automatisierung keine Warnungen und Fehler aus ihr verdrängt. Was eine Geste
  bewirkt, wird wie gewohnt in der Konsole protokolliert.
