2026-08-01T18:28:53.889Z

AI-Agent Beobachtbarkeit für MCP-Tooländerungen: Nachweis der Entdeckung konvergiert

Ein sechsfacher Audit zeigt, wie veraltete MCP-Tool-Register nach Benachrichtigungen, unvollständiger Paginierung und gleichnamigen Schema-Drift nachgewiesen werden können.

Ein AI Agent, der MCP Tools verwendet, ist nicht gesund, nur weil sein Prozess aktiv ist, seine Serververbindung offen ist oder eine Benachrichtigung über die Änderung der Werkzeugliste erhalten wurde. Die praktische Prüfung ist strenger: Hat der Kunde nach einer relevanten Änderung eine neue tools/list Überquerung abgeschlossen, die Paginierung bis zum Ende verfolgt und sein Register durch die genau entdeckten Werkzeugdefinitionen ersetzt? Behandeln Sie das als Konvergenztest. Aufzeichnen Sie die verhandelte MCP Protokollversion und die tools.listChanged Fähigkeit, die letzte notifications/tools/list changed Zeit, die Entdeckungsstart und Abschlusszeiten, jeden Cursor und die kanonischen Digeste der entdeckten und installierten Registre. Rückgabe von converged , stale , incomplete oder unverifiable . Verwandeln Sie die fehlenden Beweise nicht in ein grünes Ergebnis. Definition der Konvergenz an der Protokollgrenze Die Spezifikation des Lebenszyklus von MCPs erfordert die Initialisierung vor dem normalen Betrieb. Der Client und der Server verhandeln über eine Protokollversion und funktionen, und beide Seiten müssen diese Verhandlung respektieren. Eine erfolgreiche Initialisierung beweist, dass eine Sitzung unter einem vereinbarten Vertrag begonnen hat. Es beweist nicht, dass eine spätere Werkzeugänderung den Kunden erreicht hat. Die Spezifikation von MCP Werkzeugen liefert folgende Teile: ein Server, der Werkzeuge unterstützt, erklärt die tools Fähigkeit; listChanged gibt an, ob es Benachrichtigungen zur Änderung der Werkzeugliste ausstellen wird; Kunden entdecken Definitionen über tools/list ; die Entdeckung kann über nextCursor aufgegriffen werden; eine Definition eines Werkzeugs umfasst mehr als seinen Namen, insbesondere inputSchema und optional outputSchema , Anmerkungen und Ausführungsmetadaten. Dies schafft drei verschiedene Ereignisse, bei denen die Überwachung nicht zusammenbrechen darf: 1. Wänderungssignal: Der Kunde empfängt notifications/tools/list changed . 2. Entdeckung: beginnt eine neue tools/list Überfahrt und erreicht eine Reaktion, deren nextCursor abwesend oder null ist. 3. Registry install: Die vom Client verwendeten Definitionen entsprechen dem abgeschlossenen Entdeckungs Snapshot. Die Benachrichtigung ist ein Hinweis auf eine Erneuerung, nicht eine Quittung für eine vollständige Erneuerung. Eine erste Seite ist eine Aktivität, nicht ein vollständiges Register. Passierende Namen sind keine Passierungsverträge, wenn ein gewünschtes Argument, ein Ausgangsschema oder eine Ausführungs Eigenschaft geändert werden. Halten Sie die Beweise klein, aber entscheidend Eine nützliche Gesundheitsbilanz braucht keine Anfragen, Werkzeugargumente, Anmeldeinformationen oder Werkzeugergebnisse. Es benötigt genügend sichere Metadaten, um zu beantworten, ob sich der Client und der Server noch einig sind: Feld Was sie festlegt Was sie nicht festlegt protocolVersion Die für die Sitzung ausgehandelte MCP Version Dass eine spätere Serververöffentlichung kompatibel blieb tools.listChanged Ob Änderungen mitgeteilt wurden Dass eine Mitteilung übermittelt oder behandelt wurde notificationAt Ein Erfrischungsstück war fällig. Diese Entdeckung begann discoveryStartedAt und discoveryCompletedAt Eine begrenzte Erfrischung lief nach dem Signal. Dass jede Seite abgeholt wurde Cursorkette Die Pagination endete ohne Lücken. Dass der Client das Ergebnis installiert hat Entdeckte Registrierungsvergiftung Identität des vollständigen Definitionssets Dass ein Tool Call erfolgreich sein wird Verarbeitung des Kundenregisters Identität dessen, was der Kunde dem Agenten derzeit aussetzt Dass der Agent die richtige Wahl treffen wird Erstellen Sie die Verdauung aus einer stabilen Projektion: name , title , description , inputSchema , outputSchema , annotations und execution . Sortieren Sie die Werkzeuge nach Namen und canonicalize verschachtelte JSON vor dem Hashing. Dekorative Symbole können ausgeschlossen werden, wenn sie die Auswahl oder Ausführung nicht beeinflussen, aber die Projektion selbst muss versionert sein. RFC 8785 erklärt, warum wiederholbares Hashing eine invariante JSON Serialisierung und eine rekursive Eigenschaftssortierung erfordert. Der in diesem Experiment eingesetzte kompakte rekursive Sorter ist für die gewöhnlichen JSON Werte des Fixtures ausreichend; er wird nicht als vollständige JCS Implementierung dargestellt. Der Produktionscode sollte eine überarbeitete Kanonikalisierungsbibliothek verwenden, insbesondere wenn Zahlenrandfälle oder Unterschriften wichtig sind. Speichern Sie keine rohen Geheimnisse im Registrierungs Snapshot. Die Werkzeugschemata sollten Argumentformen beschreiben, nicht die Anmeldewerte. Wenn eine Beschreibung Mieterdaten oder interne Pfade enthält, wird sie vor der Sammlung redigiert und aufgezeichnet, welche Projektionsversion die Vergabe erzeugt hat. Wiederholung eines sechsfachen Registrierungsaudits Das behaltenes Gerät verwendet sechs synthetische Beobachtungen: eine vollständige zweiseitige Basislinie; eine Entfernung des Werkzeugs, gefolgt von einer vollständigen Erneuerung; eine Änderungsanmeldung, gefolgt von keiner neuen Entdeckung; Seite 1 mit einem verbleibenden nextCursor ; der gleiche Werkzeugnamen mit einem veränderten Schema der erforderlichen Eingabe; ein Server, der listChanged nicht beworben hat, ohne begrenzte Nachweise für eine Aktualisierung. Die Entscheidungsgrundlage ist wichtig: Führen Sie das Gerät mit Node.js aus: Das genaue Wiederholungsspiel ist zurückgekehrt: Die Gegenbeispiele sind nützlicher als die beiden grünen Fälle. notification without refresh hat identische Entdeckungen und Clientverdauungen, aber seine Entdeckung war vor dem Wechselsignal abgeschlossen. Eine Verdauungsstimmung mit einem alten Snapshot ist immer noch veraltet. unfinished pagination hat auch entsprechende Digests für die beobachtete Seite, aber nextCursor bleibt. Ein plausibler Match ist unvollständiger Beweis. Der gleichnamige Fall ändert read ticket von ticketId zu projectId und ticketId . Ein nur namentliches Inventar würde das Register unverändert halten. Die kanonische Definition verarbeitet Änderungen von c42521a2412558ca zu c3837b93f14b688f , so dass die alte Definition des Kunden klassifiziert wird veraltet. Verwandeln Sie das Urteil in eine operative Entscheidung Verwenden Sie converged schmal. Das bedeutet, dass das beobachtete Klientenregister mit einer vollständig durchquerten Entdeckung übereinstimmt, die nach dem entsprechenden Veränderungssignal abgeschlossen wurde. Es beweist nicht die Transportverfügbarkeit für den nächsten Anruf, eine gültige Genehmigung, das korrekte Verhalten des Werkzeugs, einen erfolgreichen externen Effekt oder das beabsichtigte Aufgabenergebnis. Bearbeiten Sie die anderen Zustände ohne aggressive Automatisierung: Urteil Beweise Nächster Schritt ist sicher. stale Das Update ist älter als das Signal, oder die Registrierungsverdauung unterscheidet sich Einstellen Sie die Auswahl der betroffenen Definition; beantragen Sie eine begrenzte Erneuerung; überprüfen Sie, bevor Sie die Folgearbeit erneut ausprobieren incomplete Entdeckung begann, aber der Kursor ist nicht vollständig. Wiederherstellen vom erwarteten Cursor, wenn der Client ihn unterstützt, sonst starten Sie die Entdeckung einmal neu unverifiable Es gibt keine begrenzten Entdeckungsbeweise. Anmeldung des Signals als nicht verfügbar; erneute Verbindung oder Planung eines kontrollierten Erfrischens gemäß der Runtime Richtlinie converged Vollständige Entdeckung nach dem Wechsel und genaue Verdauungsstimmung Fortführen, wobei separate Anruf , Effekt und Ergebniskontrollen beibehalten werden Wenn der Server nicht listChanged anzeigt, ist Schweigen zu erwarten und kann keine Frische feststellen. Definition einer begrenzten Alternative: Aktualisieren Sie bei der Wiederverbindung, vor einem High Impact Run oder in einem gemessenen Intervall, der den Kosten und Rate Limits des Servers entspricht. Diese Richtlinie ist zu verzeichnen, so daß keine Benachrichtigung nicht mit keiner Änderung verwechselt wird. Auch die Registrierungsgesundheit von der Aufgabengesundheit getrennt. Ein Werkzeug kann vorhanden sein und korrekt beschrieben werden, solange seine Zulassungsberechtigung abgelaufen ist. Es kann isError: false zurückgeben, während das versprochene Ticket, die Datei oder die Bereitstellung fehlt. Nach einer genehmigten Wiederherstellung überprüfen Sie den externen Effekt oder das Ergebnis der Aufgabe, anstatt Erfolg zu erklären, weil die Entdeckung oder ein Befehl abgeschlossen sind. Beibehalten der Produkt und Autoritätsgrenze Diese Überprüfung gehört zur Beobachtbarkeit des AI Agentes, da die Verfügbarkeit von Werkzeugen und die Genehmigungsdrift nützliche Fortschritte blockieren können, während der Agent aktiv bleibt. Es ist ein Gesundheitssignal, nicht eine Erlaubnis, eine Laufzeit neu zu starten, Anmeldeinformationen zu drehen, Werkzeuge anzurufen oder Ausgaben zu wiederholen. Die nachfolgende Intervention sollte begrenzt, sichtbar und der menschlichen Genehmigung unterliegen. Sidewisps beabsichtigte Richtung ist eine gesundheitliche Schicht rund um die bestehenden Wirkungszeiten: Zeugnis, Frische, Schwere, Unsicherheit und die sicherste nächste Aktion. Die MCP Konvergenzwerte in diesem Artikel sind ein Betriebsmuster und ein Experiment, nicht eine Behauptung, dass Sidewisp sie derzeit erhebt. Sidewisp befindet sich derzeit in einer privaten Vorschauphase. Die öffentliche Website und das Artikelsystem sind live. Die Sammlung von Produktionsagentur Gesundheit, MCP Laufzeitadapter, automatisierte Wiederherstellung, Cron Management und Token Kosten Analysen werden im Allgemeinen nicht versandt. Nehmen Sie an der privaten Vorschau teil, wenn Sie dazu beitragen möchten, Beweisverträge wie Protokollverhandlungen, Registrierungskonvergenz, Werkzeugverfügbarkeit und verifizierte Ergebnisse zu gestalten, während die menschliche Autorität explizit bleibt.