A document review workflow with an AI agent can follow the same steps every round: list what is open, reply in threads, resolve, carry the comments to the next draft, and produce a clean copy. The GroupDocs.Annotation.Mcp server exposes each step as a tool, so an LLM in Claude, Cursor or GitHub Copilot can run the round locally while a person approves the outcome:

Vylistujte anotace v output/contract_annotated.pdf. Které nemají žádné odpovědi?

The step-by-step version with config and troubleshooting is in the documentation: Jak spustit cyklus revize dokumentu s AI agentem.

Proč se kola revize odchylují bez pevného pořadí?

Kolo revize není často jen „přidat komentář“. Jedná se o: co je stále otevřené, kdo to vznesl, odpověď, řešení a čistou kopii pro další čtenáře. Když to lidé dělají ručně, pořadí se liší, odpovědi jsou neoznačené a v další verzi se ztrácejí komentáře z předchozí.

Pracovní postup krok za krokem

Každý krok má jeden prompt a jeden nástroj.

  1. Najděte, co je otevřené. Prompt: “Vylistujte anotace v output/contract_annotated.pdf. Které nemají žádné odpovědi?” Agent volá get_annotations, který vrací každou anotaci s její id, typem, zprávou, stránkou, ohraničujícím rámečkem, uživatelem a odpověďmi. Nezodpovězený komentář je ten s prázdným polem replies, takže agent filtruje seznam, který již má.
  2. Odpovědět ve vláknu. Prompt: “Odpovězte na Mariin komentář, že finance schválily podmínky 12. března. Podepište jako Alex.” Agent volá add_reply s annotationId, comment a userName. Jméno je ve výchozím nastavení mcp-user, takže požádejte o skutečné.
  3. Vyřešte, co je hotovo. Zvolte konvenci a uveďte ji v promptu: odpovědět a nechat vlákno jako záznam, odstranit anotaci pomocí remove_annotations, nebo upravit zprávu pomocí update_annotation tak, aby začínala [RESOLVED].
  4. Přeneste kolo do další verze. Prompt: “Exportujte anotace z revidované kopie a poté je importujte do contract-v3.pdf.” Agent volá export_annotations, který zapíše XML soubor, a následně import_annotations.
  5. Vrátit čistou kopii. Prompt: “Odstraňte všechny anotace a dejte mi čistou kopii pro protistranu.” remove_annotations bez ids vymaže všechny anotace do nového souboru.

Co rozhoduje agent a co dělá engine?

Rozhodnutí nebo akce Agent Engine
Které komentáře potřebují odpověď Čte výsledek get_annotations a filtruje jej Vrací každou anotaci s id, autory a odpověďmi
Co odpověď říká Navrhne ji podle vašeho pokynu Uloží ji pod userName, který jste zadali
Která konvence řešení se použije Řídí se pravidlem ve vašem promptu Provede úpravu nebo odstranění, o které je požádáno
Zda je kolo dokončeno Hlásí počty; člověk schvaluje Ukládá výsledek každé změny zpět do úložiště

Engine nikdy nerozhoduje, co se považuje za vyřešené. Model anotace nemá žádný příznak resolved k nastavení; řešení je konvence, kterou si zvolíte a pojmenujete v promptu.

Kde člověk zůstává v cyklu?

Na dvou místech. Před krokem 5 požádejte agenta, aby uvedl, kolik anotací se chystá odstranit, a počkejte na vaši odpověď. Odstranění všech anotací je jediný volání v pracovním postupu bez možnosti vrácení. Než se cokoli dostane mimo tým, přečtěte si odpovědi, které agent navrhl. Text anotace pochází od ostatních lidí, takže považujte komentář za obsah k shrnutí, nikoli za instrukci, kterou má agent následovat.

Příklad relace (zkrácený)

Toto je ilustrace postavená na zdokumentovaném chování nástrojů, nikoli o zachycený snímek obrazovky.

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.)

Jak spustím server pro Claude, Cursor nebo Copilot?

Spusťte Docker image s připojeným adresářem dokumentů a výstupním adresářem, který se liší od úložného adresáře:

docker run --rm -i -v $(pwd)/documents:/data \
  -e GROUPDOCS_MCP_OUTPUT_PATH=/data/output \
  ghcr.io/groupdocs-annotation/annotation-net-mcp:latest

Stejný příkaz a alternativa dnx GroupDocs.Annotation.Mcp --yes jsou vysvětleny v AI revize, která končí v dokumentu, ne v chatovém protokolu. Hub stránka obsahuje registraci pro Claude Desktop, Claude Code, VS Code s GitHub Copilot, Cursor, Windsurf a další klienty.

Upřímná omezení

  • Režim hodnocení. Bez licence je na horní část každé stránky nalepena zkušební značka, což není vhodné posílat protistraně. Před formální revizí zkontrolujte get_license_status.
  • Každý zapisovací nástroj ukládá výsledek zpět do úložiště. Kolo tedy vytváří řetězec souborů. Řekněte agentovi, aby předal název souboru z předchozího výsledku dál a před úpravou soubor znovu načetl pomocí get_annotations, protože id patří dokumentu, který jste právě načetli. Nastavte GROUPDOCS_MCP_OUTPUT_PATH na složku odlišnou od úložné složky před řetězením úprav na vytvořeném souboru. S výchozím nastavením (výstupy končí v úložné složce) druhý zápis selže s chybou being used by another process; s oddělenou výstupní složkou add_reply, update_annotation a remove_annotations na vytvořeném souboru všechny uspějí.
  • Souřadnice se přenášejí tak, jak jsou. V přeformátované verzi může importovaná poznámka skončit blízko původního textu, nikoli přímo na něm. Po importu zkontrolujte umístění.
  • Náhled na Linuxu. generate_pages_preview v současnosti selhává u PDF souborů na Linuxu, včetně Docker image (TypeInitializationException pro Gdip: System.Drawing.Common není podporováno na ne-Windows platformách); Word a další Office dokumenty se renderují a na Windows s dnx se renderuje každý formát. Ostatních deset nástrojů není ovlivněno. Revizní nástroje v tomto příspěvku nepoužívají renderér náhledu.

Často kladené otázky

Může AI automaticky odpovídat na komentáře v PDF? Ano. Agent čte komentáře pomocí get_annotations a odpovídá pomocí add_reply, který přijímá id anotace, text odpovědi a jméno autora.

Existuje stav resolved pro komentáře? Ne. Nástroje nemají příznak resolved, takže si zvolíte konvenci, např. ponechat vlákno, odstranit anotaci nebo předřadit zprávě [RESOLVED].

Mohu zachovat komentáře při revizi dokumentu? Ano. Exportujte anotace do XML z revidované kopie a importujte je do nové verze. Stejný pár nástrojů sloučí dvě kopie recenzentů do jedné.

Jděte hlouběji