Rueckmeldung nach Vertrauensstufe: drei Wege nach oben (#715)

- IAgentTool.ReadsForeignContent: Werkzeuge mit Aussenkontakt erklaeren sich selbst
  (WebFetch, WebMonitor, DirectAPI, Mail, RocketChat, Telegram, TelegramClient,
  SocialMediaManager, FTP, Database); AgentConfig.TreatAsForeignReader kann nur verschaerfen
- ReportingLine: Stufe aus den Werkzeugen, "wer steht darueber", Pruefung des Wegs nach oben
  (nie Aenderungen an Aufgaben darueber, nur eine Ebene hoch, Fremdinhalt-Stufe gar kein
  Freitext) und Rahmung als untrusted_content
- Engine: Nachricht und Spawn nach oben geprueft, Text der Fremdinhalt-Stufe kommt gerahmt an
- Taskboard: task_create/update/comment, reopen und die Dubletten-Notiz folgen dem Berichtsweg
- Dispatcher: Aufgaben von Agenten der Fremdinhalt-Stufe gehen gerahmt in den Lauf
- TaskReports: Erledigt-Signal und Systemmeldung (in Pruefung, blockiert, abgebrochen) an den
  Auftraggeber, je Zustand einmal, gesammelt in einer offenen Aufgabe je Empfaenger
- OrgBriefing nennt den Berichtsweg; WebUI zeigt Stufe und Schalter am Agenten

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-09-25 09:16:29 +02:00
co-authored by Claude Opus 5.5
parent e2ffe4b380
commit 3857a7cab2
33 changed files with 1234 additions and 30 deletions
+25
View File
@@ -1164,6 +1164,31 @@ gar nicht lesen, also muss alles Nötige in der Aufgabe selbst stehen.
**Reihenfolge:** vor der Freigabe durch die Leitung (#687). Eine Leitung, die Freigaben
erteilt, darf keinen Kontext haben, in den ein Untergebener fremden Text schreiben kann.
**Umsetzung (2026-09-25):**
- **Die Stufe.** Jedes Werkzeug sagt über `ReadsForeignContent` selbst, ob es Text von
außen hereinholt. Das tun WebFetch, WebMonitor, DirectAPI, Mail, Rocket.Chat, Telegram,
TelegramClient, SocialMediaManager, FTP und Database. Bei Database liegt der Grund darin,
dass Bestellungen, Rezensionen und Feeds von außen kommen. Die Einstellung
`treatAsForeignReader` kann die Stufe nur anheben.
- **Die Prüfung.** `ReportingLine` wird an allen Stellen angewandt, an denen Text nach oben
gehen kann: Nachricht, Spawn, `task_create` bzw. `task_update` mit einer Leitung als
Zuständiger, `task_comment` und die Notiz „Observed again" bei einer Dublette. Keine
Stufe darf Aufgaben einer höheren Ebene ändern oder wieder öffnen.
- **Seitwärts** wird nichts abgelehnt. Nachrichten und Aufgaben von Agenten der
Fremdinhalt-Stufe kommen beim Empfänger aber in `<untrusted_content>` gerahmt an, mit
einem Hinweis auf die Herkunft.
- **Die Rückmeldung.** Das Erledigt-Signal und die Systemmeldung erzeugt `TaskReports` im
Scanner. Wer eine Aufgabe vergeben hat, erfährt, wenn sie erledigt ist, in Prüfung geht,
blockiert oder abgebrochen wird. Die Meldung geht je Zustand einmal hinaus, gesammelt in
einer offenen Aufgabe je Empfänger. Sie enthält nur ID, Zuständigen und Zustand. Den Titel
enthält sie nur, wenn der Zuständige zur Standardstufe gehört, denn der Zuständige kann
den Titel ändern.
- **Offen:** Ein Agent kann fremden Text auch über eine Datei in einem gemeinsamen Bereich
weitergeben. Die Ablage kennt heute nicht, wer eine Datei zuletzt geschrieben hat. Das
gehört zu #720 (gleichzeitiger Zugriff), wo ohnehin der Schreiber je Datei verfolgt
werden muss.
### Übernommen, im Kleinen
- **Budget in zwei Stufen.** Die harte Grenze gibt es schon (`BudgetGuard`, Tagesbudget