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
@@ -41,4 +41,11 @@ public sealed record AgentToolContext(
/// be walked around. <c>null</c> in tests and outside the engine: no structure, no limit.
/// </summary>
public Organisation.OrgChart? Organisation { get; init; }
/// <summary>
/// #715: The calling agent's trust tier, from its tools. Tools that let an agent write to
/// someone above it check the way up here. Standard in tests and outside the engine.
/// </summary>
public global::ClawdDotNet.Core.Organisation.AgentTrust Trust { get; init; }
= global::ClawdDotNet.Core.Organisation.AgentTrust.Standard;
}
+12
View File
@@ -42,6 +42,18 @@ public interface IAgentTool
/// </summary>
bool IsRepeatable => false;
/// <summary>
/// #715: Whether this tool brings text from outside the organisation into the context —
/// web pages, mails, chat messages, files from foreign servers. An agent with such a tool
/// reads foreign content, and free text from it does not go up the line (see
/// <see cref="Organisation.ReportingLine"/>).
///
/// <para>A fact of the tool, not a setting: the agent's tier follows from its tools, so
/// nobody has to remember to set it. Default <c>false</c>; a tool that talks to anything
/// outside declares itself.</para>
/// </summary>
bool ReadsForeignContent => false;
/// <summary>
/// Prueft vor Staging und Ausfuehrung, ob das Werkzeug diesen Aufruf ueberhaupt zulassen
/// wuerde (#579). Liefert den Ablehnungsgrund oder <c>null</c>.