LangChain, OpenAI-Funktionsaufrufe, AutoGen: Werkzeuge umhüllen
Frameworks, die Werkzeuge als Objekt registrieren, schützt ein einziger Wrapper: guard() umhüllt ein Werkzeug, guardAll() ein ganzes Register. Vor jedem Aufruf wird das Mandat geprüft; ist Mandact nicht erreichbar, wird nicht ausgeführt.
Eine Zeile statt jeder Registrierung
guardAll(tools, mappings, cfg) ordnet jedem Werkzeug einen Handlungstyp zu (etwa purchase.goods oder data.share) und gibt das geschützte Register zurück — der Aufrufer ändert eine Zeile.
Ungeschützt wird gemeldet, nicht verschwiegen
Werkzeuge ohne Zuordnung bleiben ungeschützt und werden ausdrücklich zurückgemeldet. Still durchzulassen wäre gefährlicher: Der Entwickler glaubte sonst, alles sei geprüft.
Fail-closed
Antwortet der Dienst nicht oder unlesbar, wirft der Wrapper MandactUnreachable — die Handlung findet nicht statt. Ein Agent, der bei Funkstille trotzdem handelt, wäre keine Kontrolle.
const { tools: geschuetzt, ungeschuetzt } = guardAll(
tools,
{ bestellen: { type: "purchase.goods" }, teilen: { type: "data.share" } },
cfg
);
// ungeschuetzt → ["suche"] (bewusst gemeldet)Stand
Wrapper im Repository (lib/verify/agentGuard.ts); Framework-unabhängig für Werkzeug-Register als Objekt.