Kontrollpflicht der Leitung: Stichproben gegen das Audit (#693)
A lead looks at the runs of the agents it leads - held against the task and against what the engine stamped, never by asking the agent. - RunInspector (Core/Inspection): the mechanical check and first profile of the inspector foundation (#204). Flags failed runs, tool errors, refusals, unfinished calls, tasks answered with bookkeeping alone, and operations the agent names but never called in the run (the 2026-09-14 pattern). - SpotChecks: picks runs per unit (rate, denser for new agents, new models and after a failure, daily cap), deterministic by run id; one task per lead. - Escalation tool: spot_checks, inspect_run, check_done, propose_measure. Measures go to a human; nothing is carried out automatically. A security suspicion is its own case, not a personnel matter. - Organisation view: settings per unit, recent checks, measures to decide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
ab1bd67464
commit
68e723a9c0
@@ -135,6 +135,9 @@ public sealed class AppHost : IAsyncDisposable
|
||||
/// <summary>#698: The units' doctrines.</summary>
|
||||
public Core.Organisation.IDoctrineStore? Doctrines { get; private set; }
|
||||
|
||||
/// <summary>#693: The leads' spot checks and the measures they proposed.</summary>
|
||||
public Core.Inspection.SpotChecks? SpotChecks { get; private set; }
|
||||
|
||||
/// <summary>Modellpreise von OpenRouter - fuer Budget und Kostenprognose (#595). Laedt im Hintergrund.</summary>
|
||||
public ModelPricingCatalog? Pricing { get; private init; }
|
||||
|
||||
@@ -717,6 +720,18 @@ public sealed class AppHost : IAsyncDisposable
|
||||
engine.Doctrines = doctrines;
|
||||
host.Doctrines = doctrines;
|
||||
|
||||
// #693: the leads look at the runs of the agents they lead.
|
||||
var spotChecks = new Core.Inspection.SpotChecks(
|
||||
storage, audit,
|
||||
new Core.Inspection.RunInspector(audit, taskRepository, transcripts,
|
||||
() => Core.Inspection.RunInspector.VocabularyOf(tools.GetAll())),
|
||||
() => Core.Organisation.OrgChart.From(instance), board,
|
||||
loggerFactory.CreateLogger("ClawdDotNet.Core.Inspection.SpotChecks"));
|
||||
engine.SpotChecks = spotChecks;
|
||||
host.SpotChecks = spotChecks;
|
||||
spotChecks.Start();
|
||||
host._shutdown.Add(spotChecks.DisposeAsync);
|
||||
|
||||
// #699: costs per unit, and what changed in them.
|
||||
var costWatch = new Core.Accounting.CostWatch(
|
||||
storage, usage, () => Core.Organisation.OrgChart.From(instance), () => instance.CostWatch, board,
|
||||
|
||||
Reference in New Issue
Block a user