From d25ae41f4b8a922d053e0c2f029fb5cfcaee4867 Mon Sep 17 00:00:00 2001 From: Richard Date: Tue, 22 Sep 2026 09:10:52 +0200 Subject: [PATCH] Skripte: wer eines braucht, baut es nicht (#695) Korrektur der gestrigen Fassung: Dort stand, der zustaendige Agent schreibe und pflege sein Skript selbst. Ein Anzeigen-Agent, der programmiert und beliebigen Code ausfuehrt, hat Rechte, die seine Arbeit nicht braucht. Die Lieferkette: Bedarfsmeldung mit ausgearbeiteter Beschreibung an die eigene Leitung, von dort an die Entwicklung, dort schreiben und testen, Pruefung und Freigabe nach #657, Zuteilung an genau diesen einen Nutzer. Fehler gehen ueber dieselbe Kette zurueck. Technisch folgt daraus, dass scripts.run kein Schalter sein darf, sondern eine Liste benannter Skripte - ein Ja/Nein waere die Hintertuer, die die Trennung gerade schliesst. Und ein zweiter Gewinn, der als Entwurfsziel gelten soll: Der Agent, der fremde Inhalte liest, ist nie der Agent, der ausfuehrbaren Code hervorbringt. Co-Authored-By: Claude Opus 5 --- docs/Organisation-Konzept.md | 100 +++++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 15 deletions(-) diff --git a/docs/Organisation-Konzept.md b/docs/Organisation-Konzept.md index 6073cf5..c271e9a 100644 --- a/docs/Organisation-Konzept.md +++ b/docs/Organisation-Konzept.md @@ -313,27 +313,94 @@ Anbindung schreibt und aktuell hält. **Das Produkt gibt dem Agenten Fähigkeiten, keine Anschlüsse.** Eine API aufrufen. Eine Webseite abrufen. Eine Datenbank befragen. Eine Mail lesen. Was daraus eine -Amazon-Anbindung macht, ist die Kenntnis des Agenten über Amazon — und die steht in -seinem Auftrag, seinem Gedächtnis und in Skripten, die er selbst schreibt. +Amazon-Anbindung macht, ist die Kenntnis über Amazon — im Auftrag, im Gedächtnis und in +Skripten, die die Instanz selbst hervorbringt. -### Wo Spezifisches hingehört: in Skripte, die die Instanz selbst schreibt +### Wo Spezifisches hingehört: in Skripte — aber nicht in die Hand dessen, der sie braucht -Braucht der Marktplatz-Agent eine wiederkehrende, exakt zugeschnittene Operation, schreibt -er sich ein Skript und pflegt es. Ändert Amazon etwas, ändert er das Skript — ohne -Produktfassung, ohne uns. +Braucht der Marktplatz-Agent eine wiederkehrende, exakt zugeschnittene Operation, dann +entsteht dafür ein Skript. **Er schreibt es nicht selbst.** -Das ist bereits geplant, und zwar vollständig ausgearbeitet: +Ein Anzeigen-Agent, der programmiert und beliebigen Code ausführt, hat Rechte, die seine +Arbeit nicht braucht — und das ist keine Kleinigkeit, sondern die Umkehrung des +Grundsatzes, dass jeder Agent genau die Rechte bekommt, die er zum Arbeiten benötigt. + +**Schreiben und Benutzen sind zwei verschiedene Rechte.** Die Lieferkette: + +``` +Anzeigen-Agent „Ein Skript, das die Kampagnenberichte + │ Bedarfsmeldung zusammenfasst, würde mir X ersparen. + ↓ Eingaben: …, Ausgabe: …, Fehlerfälle: …" +Marketing-Leitung prüft: wirklich nötig? wirklich wiederkehrend? + │ weiterleiten + ↓ +Entwicklungs-Leitung priorisiert, beauftragt + │ + ↓ +Entwickler-Agent schreibt, testet — DIESER darf schreiben + │ + ↓ +Prüfung und Freigabe (#657) Vorprüfung, Security-Einschätzung, Mensch + │ + ↓ +Anzeigen-Agent bekommt Zugang zu GENAU DIESEM Skript + │ Fehlermeldung über die Befehlskette zurück + ↓ +Entwickler-Agent bessert nach → neue Prüfung, neue Freigabe +``` + +Der Anzeigen-Agent darf dabei mehr als nur „wäre schön": eine ausgearbeitete +Beschreibung — Eingaben, erwartete Ausgabe, Fehlerfälle, wie oft gebraucht. Er kennt den +Bedarf am besten. Er bekommt nur nicht die Werkzeuge, ihn selbst zu decken. + +### Was daraus technisch folgt + +Das ist mehr als eine Hausordnung, es ändert die Rechteform: + +- **`scripts.write` ist nicht dasselbe wie `scripts.run`.** Ersteres hat genau eine + Einheit, die Entwicklung. Letzteres ist **kein Schalter, sondern eine Liste**: Dieser + Agent darf diese benannten Skripte ausführen, sonst keine. Ein „darf Skripte ausführen" + als Ja/Nein wäre die Hintertür, die wir gerade geschlossen haben. +- **Jedes Skript hat einen Eigentümer und einen Nutzerkreis.** Das Manifest aus #657 + nennt beide. Wer es benutzen darf, steht dort — nicht im Prompt des Nutzers. +- **Der Nutzer prüft seine Werkzeuge nicht selbst.** Bessert die Entwicklung nach, gilt + die neue Fassung nach ihrer Freigabe für alle Nutzer. Sonst müsste der Anzeigen-Agent + Code beurteilen, den er nicht schreiben darf. +- **Ein Fehlschlag ist eine Meldung, keine Sackgasse.** Scheitert das Skript, meldet der + Agent es über die Befehlskette — derselbe Weg wie jede Eskalation (#689), nur mit + „Fähigkeit fehlerhaft" statt „Fähigkeit fehlt". + +### Der zweite Gewinn dieser Trennung + +Sie ist nicht nur sauberes Rechtemanagement. Sie ist die schärfste Grenze, die man gegen +eingeschleuste Anweisungen ziehen kann: **Der Agent, der fremde Inhalte liest, ist nie der +Agent, der ausführbaren Code hervorbringt.** + +Der Anzeigen-Agent liest Amazon-Seiten, Berichte, Mails — lauter Text, den jemand anderes +verfasst hat. Dürfte er daraus Code schreiben und ausführen, gäbe es einen durchgehenden +Weg von einer manipulierten Webseite bis zur Codeausführung. Mit der Lieferkette liegen +dazwischen: eine Leitung, eine Entwicklungsabteilung, eine deterministische Vorprüfung, +eine Sicherheitseinschätzung und ein Mensch. + +Das schließt eine Frage nicht aus, die beim Bau zu klären ist: Eine Bedarfsmeldung, die +aus einem Lauf mit Fremdinhalt stammt, trägt dessen Herkunft weiter — sie kann die +Beschreibung eines Skripts enthalten, die jemand anderes dem Agenten untergeschoben hat. +Sie gehört deshalb als belastet gekennzeichnet beim Entwickler an (#651, #659), und der +Entwickler behandelt sie als Wunsch, nicht als Vorlage. + +Die Bausteine dafür sind geplant: | Item | Was | |---|---| | #654 | Sandbox-Runner (bwrap): jede Codeausführung außerhalb des Hauptprozesses | | #196 | Shell-Tool mit echter Sandbox | -| #657 | Skriptprüfung: Agenten schreiben Skripte, ausgeführt wird nur die freigegebene Fassung — gebunden an den Hash von Skript, Manifest und Interpreter; jede Änderung, auch ein Bugfix, braucht eine neue Prüfung | +| #657 | Skriptprüfung: ausgeführt wird nur die freigegebene Fassung — gebunden an den Hash von Skript, Manifest und Interpreter; jede Änderung, auch ein Bugfix, braucht eine neue Prüfung | +| #695 | Die Lieferkette: Bedarfsmeldung, Entwicklung, Zuteilung an benannte Nutzer, Fehlermeldung zurück | -**Diese drei sind nicht nur Sicherheitsvorhaben — sie sind der eigentliche -Werkzeugkasten.** Sie stehen heute unter SEC, weil sie dort aus der Sicherheitsseite -gedacht wurden. Aus der Baukastenseite betrachtet sind sie die Antwort auf „wie bedient -eine Instanz Amazon?", und ihr Rang sollte das widerspiegeln. +**Diese vier sind nicht nur Sicherheitsvorhaben — sie sind der eigentliche +Werkzeugkasten.** Die ersten drei stehen heute unter SEC, weil sie dort aus der +Sicherheitsseite gedacht wurden. Aus der Baukastenseite betrachtet sind sie die Antwort +auf „wie bedient eine Instanz Amazon?", und ihr Rang sollte das widerspiegeln. Die Reihenfolge bleibt dabei zwingend: **erst die Sandbox, dann das Schreiben.** Ein Agent, der Code schreiben und ausführen darf, ohne dass die Ausführung eingesperrt ist, ist kein @@ -489,9 +556,11 @@ von Modellen (#694) und die Schemaauskunft (#676) — letztere ist Vorbedingung Stufe 4, weil eine Eskalation einen belastbaren Negativbefund braucht. **Nicht in dieser Liste, aber davor:** Die Sandbox (#654) und die Skriptprüfung (#657). -Sie stehen unter SEC, sind aber die Grundlage dafür, dass eine Instanz sich ihre -plattformspezifischen Werkzeuge selbst baut — und damit für den Baukasten ebenso -tragend wie die Einheiten. +Sie stehen unter SEC, sind aber die Grundlage dafür, dass eine Instanz ihre +plattformspezifischen Werkzeuge selbst hervorbringt — und damit für den Baukasten +ebenso tragend wie die Einheiten. Die Lieferkette darüber (#695) gehört in den +ORG-Block, weil sie eine Organisationsfrage ist: Wer ein Werkzeug braucht, baut es +nicht. Stufe 1 ist die einzige, die wirklich weh tut, weil sie Konfiguration, Werkzeuge, Arbeitsbereiche und Oberfläche gleichzeitig berührt. Sie zuerst zu bauen ist trotzdem @@ -534,6 +603,7 @@ wächst, wird der Umzug teurer. | #693 | Kontrollpflicht der Leitung: Stichproben gegen das Audit, abgestufte Mittel | | #694 | A/B-Vergleich von Modellen im laufenden Betrieb | | #676 | Schemaauskunft der Datenbank — Vorbedingung für den Negativbefund | +| #695 | Skripte: Schreiben und Benutzen sind zwei Rechte, mit Lieferkette | | #654, #196, #657 | Sandbox, Shell, Skriptprüfung — der eigentliche Werkzeugkasten | | #687 | Freigabe durch die Leitung innerhalb von Grenzen | | #688 | Organigramm in Oberfläche und WebUI |