A document‑Review‑Workflow mit einem KI‑Agenten kann in jeder Runde dieselben Schritte durchlaufen: Auflisten, was noch offen ist, Antworten in Threads, Auflösen, die Kommentare in den nächsten Entwurf übernehmen und eine saubere Kopie erzeugen. Der GroupDocs.Annotation.Mcp‑Server stellt jeden Schritt als Werkzeug bereit, sodass ein LLM in Claude, Cursor oder GitHub Copilot die Runde lokal ausführen kann, während eine Person das Ergebnis genehmigt:
List the annotations in output/contract_annotated.pdf. Which ones have no replies?
Die schrittweise Version mit Konfiguration und Fehlersuche finden Sie in der Dokumentation: How to run a document review cycle with an AI agent.
Warum weichen Review‑Runden ohne feste Reihenfolge ab?
Eine Review‑Runde besteht selten nur aus „einem Kommentar hinzufügen“. Sie umfasst: Was noch offen ist, wer es eingebracht hat, eine Antwort, eine Auflösung und eine saubere Kopie für das nächste Publikum. Wenn Menschen das manuell erledigen, variiert die Reihenfolge, Antworten bleiben unsigniert und der nächste Entwurf verliert die Kommentare des vorherigen.
Ein Agent, der jedes Mal dieselbe Sequenz befolgt, eliminiert diese Variation. Er hinterlässt zudem eine Spur im Dokument statt in einem Chat‑Transkript – genau dort, wo ein Audit nachschauen würde.
Der Arbeitsablauf, Schritt für Schritt
Jeder Schritt hat einen Prompt und ein Werkzeug.
- Ermitteln, was offen ist. Prompt: „List the annotations in output/contract_annotated.pdf. Which ones have no replies?“ Der Agent ruft
get_annotationsauf, das jede Annotation mitid, Typ, Nachricht, Seite, Bounding‑Box, Benutzer und Antworten zurückgibt. Ein unbeantworteter Kommentar hat ein leeresreplies‑Array, sodass der Agent die bereits geladene Liste filtert. - Im Thread antworten. Prompt: „Reply to Maria’s comment that finance approved the terms on 12 March. Sign it as Alex.“ Der Agent ruft
add_replymitannotationId,commentunduserNameauf. Der Name ist standardmäßigmcp-user; geben Sie also einen echten Namen an. - Auflösen, was erledigt ist. Legen Sie eine Konvention fest und nennen Sie sie im Prompt: Antwort im Thread belassen, die Annotation mit
remove_annotationsentfernen oder die Nachricht mitupdate_annotationbeginnen lassen, z. B.[RESOLVED]. - Die Runde in den nächsten Entwurf übernehmen. Prompt: „Export the annotations from the reviewed copy, then import them into contract-v3.pdf.“ Der Agent ruft
export_annotationsauf (erstellt eine XML‑Datei) und anschließendimport_annotations. - Eine saubere Kopie zurückgeben. Prompt: „Remove all annotations and give me a clean copy for the counterparty.“
remove_annotationsohne Angabe vonidslöscht jede Annotation und erzeugt eine neue Datei.
Was entscheidet der Agent und was macht die Engine?
| Entscheidung oder Aktion | Agent | Engine |
|---|---|---|
| Welche Kommentare eine Antwort benötigen | Liest das Ergebnis von get_annotations und filtert es |
Liefert jede Annotation mit IDs, Autoren und Antworten |
| Was die Antwort enthält | Formuliert sie nach Ihrer Anweisung | Speichert sie unter dem von Ihnen angegebenen userName |
| Welche Auflösungskonvention gilt | Folgt der Regel in Ihrem Prompt | Führt die gewünschte Bearbeitung oder das Entfernen aus |
| Ob die Runde abgeschlossen ist | Meldet die Zähler; der Mensch genehmigt | Speichert das Ergebnis jeder Änderung im Speicher |
Die Engine entscheidet nie, was als „aufgelöst“ gilt. Das Annotations‑Modell besitzt kein resolved‑Flag; die Auflösung ist eine von Ihnen gewählte Konvention, die Sie im Prompt benennen.
Wo bleibt der Mensch im Prozess?
An zwei Stellen. Vor Schritt 5 bitten Sie den Agenten, anzugeben, wie viele Annotations er gerade entfernen will, und warten auf Ihre Bestätigung. Das Entfernen aller Annotations ist der einzige Aufruf im Workflow, der kein Undo‑Verfahren hat. Bevor etwas das Team verlässt, prüfen Sie die vom Agenten erstellten Antworten. Annotations‑Text stammt von anderen Personen – behandeln Sie ihn also als Inhalt, den Sie zusammenfassen, nicht als Anweisung für den Agenten.
Beispielsession (gekürzt)
Dies ist eine Illustration, die aus dem dokumentierten Verhalten der Werkzeuge abgeleitet ist, kein echter Screenshot.
You: List the annotations in output/contract_annotated.pdf. Which ones have no replies?
Agent: [calls get_annotations on output/contract_annotated.pdf]
Found 4 annotations. Two have no replies:
- id 2, page 2, Maria: "Confirm the payment terms with finance."
- id 4, page 5, Maria: "Delivery date conflicts with Schedule B."
You: Reply to the first one that finance approved the terms on 12 March.
Sign it as Alex.
Agent: [calls add_reply: annotationId=2, userName="Alex",
comment="Finance approved the terms on 12 March."]
Added reply to annotation 2 in output/contract_annotated.pdf.
(The agent uses the saved file name in the next call.)
Wie starte ich den Server für Claude, Cursor oder Copilot?
Starten Sie das Docker‑Image mit Ihrem documents‑Ordner als Volume und einem output‑Ordner, der sich vom Speicher‑Ordner unterscheidet:
docker run --rm -i -v $(pwd)/documents:/data \
-e GROUPDOCS_MCP_OUTPUT_PATH=/data/output \
ghcr.io/groupdocs-annotation/annotation-net-mcp:latest
Der gleiche Befehl und die Alternative dnx GroupDocs.Annotation.Mcp --yes werden in AI review that lands in the document, not in the chat log erklärt. Die Hub‑Seite enthält die Registrierung für Claude Desktop, Claude Code, VS Code mit GitHub Copilot, Cursor, Windsurf und weitere Clients.
Ehrliche Grenzen
- Evaluierungs‑Modus. Ohne Lizenz wird auf jeder Seite ein Prüf‑Badge oben angeheftet – das ist nichts, was Sie an einen Vertragspartner senden würden. Prüfen Sie
get_license_statusvor einer formellen Review. - Jedes Schreib‑Werkzeug speichert sein Ergebnis zurück in den Speicher. Eine Runde erzeugt daher eine Kette von Dateien. Bitten Sie den Agenten, den Dateinamen des vorherigen Ergebnisses weiterzugeben und die Datei vor jeder Bearbeitung erneut mit
get_annotationszu lesen, weil IDs zum gerade gelesenen Dokument gehören. Setzen SieGROUPDOCS_MCP_OUTPUT_PATHauf einen Ordner, der nicht der Speicher‑Ordner ist, bevor Sie Bearbeitungen an einer erzeugten Datei verketten. Mit dem Standard (Ausgaben landen im Speicher‑Ordner) schlägt der zweite Schreibvorgang mitbeing used by another processfehl; in einem separaten Output‑Ordner funktionierenadd_reply,update_annotationundremove_annotationsauf der erzeugten Datei. - Koordinaten werden unverändert übernommen. In einem neu fließenden Entwurf kann eine importierte Notiz in der Nähe des ursprünglichen Textes, aber nicht exakt darauf, landen. Prüfen Sie die Platzierung anschließend.
- Vorschau unter Linux.
generate_pages_previewschlägt derzeit für PDF‑Dateien unter Linux, einschließlich des Docker‑Images, fehl (TypeInitializationExceptionfürGdip:System.Drawing.Commonwird auf Nicht‑Windows‑Plattformen nicht unterstützt); Word‑ und andere Office‑Dokumente rendern, und unter Windows mitdnxrendert jedes Format. Die übrigen zehn Werkzeuge sind davon unbeeinflusst. Die Review‑Werkzeuge in diesem Beitrag nutzen den Vorschau‑Renderer nicht.
FAQ
Kann eine KI automatisch auf Kommentare in einer PDF antworten?
Ja. Der Agent liest die Kommentare mit get_annotations und antwortet mit add_reply, das die Annotations‑ID, den Antworttext und einen Autorennamen entgegennimmt.
Gibt es einen Auflösungs‑Status für Kommentare?
Nein. Die Werkzeuge besitzen kein resolved‑Flag; Sie wählen eine Konvention, z. B. den Thread beibehalten, die Annotation entfernen oder die Nachricht mit [RESOLVED] versehen.
Kann ich die Kommentare behalten, wenn das Dokument überarbeitet wird?
Ja. Exportieren Sie die Annotations aus der geprüften Kopie nach XML und importieren Sie sie in den neuen Entwurf. Das gleiche Werkzeug‑Paar fügt zwei Reviewer‑Kopien zu einer zusammen.
Tiefer einsteigen
- Dokumentation, kanonisches How‑to: How to run a document review cycle with an AI agent
- Dokumentations‑Hub: GroupDocs.Annotation MCP Server
- Einstieg: AI review that lands in the document, not in the chat log
- Verwandt: 3 ways to extract every comment from a document set with MCP
- Verwandt: Show the agent what it did
- On‑premise und Sicherheitsmodell: 3 architectures for AI document processing, and the one that keeps files inside your network
- Fragen: GroupDocs Annotation forum
- Quelle: GroupDocs.Annotation.Mcp on GitHub