A document review workflow dengan agen AI dapat mengikuti langkah yang sama setiap putaran: daftar apa yang masih terbuka, balas dalam thread, selesaikan, bawa komentar ke draf berikutnya, dan hasilkan salinan bersih. Server GroupDocs.Annotation.Mcp mengekspos setiap langkah sebagai alat, sehingga LLM di Claude, Cursor, atau GitHub Copilot dapat menjalankan putaran secara lokal sementara orang meninjau hasilnya:

List the annotations in output/contract_annotated.pdf. Which ones have no replies?

Versi langkah‑demi‑langkah dengan konfigurasi dan pemecahan masalah ada di dokumentasi: How to run a document review cycle with an AI agent.

Mengapa putaran review menyimpang tanpa urutan tetap?

Sebuah putaran review jarang hanya “menambah komentar”. Ia meliputi: apa yang masih terbuka, siapa yang mengangkatnya, sebuah jawaban, sebuah resolusi, dan salinan bersih untuk audiens berikutnya. Ketika orang melakukannya secara manual, urutan bervariasi, balasan tidak ditandatangani, dan draf berikutnya kehilangan komentar dari draf sebelumnya.

Agen yang mengikuti urutan yang sama setiap kali menghilangkan variasi tersebut. Ia juga meninggalkan jejak di dalam dokumen alih‑alih di transkrip obrolan, tempat audit biasanya memeriksa.

Alur kerja, langkah demi langkah

Setiap langkah memiliki satu prompt dan satu alat.

  1. Temukan apa yang terbuka. Prompt: “List the annotations in output/contract_annotated.pdf. Which ones have no replies?” Agen memanggil get_annotations, yang mengembalikan setiap anotasi dengan id, tipe, pesan, halaman, bounding box, pengguna, dan balasan. Komentar yang belum dijawab adalah yang memiliki array replies kosong, sehingga agen menyaring daftar yang sudah dimilikinya.
  2. Balas dalam thread. Prompt: “Reply to Maria’s comment that finance approved the terms on 12 March. Sign it as Alex.” Agen memanggil add_reply dengan annotationId, comment, dan userName. Nama default adalah mcp-user, jadi minta nama yang sebenarnya.
  3. Selesaikan apa yang sudah selesai. Pilih konvensi dan nyatakan dalam prompt: balas dan biarkan thread sebagai catatan, hapus anotasi dengan remove_annotations, atau edit pesan dengan update_annotation sehingga dimulai dengan [RESOLVED].
  4. Bawa putaran ke draf berikutnya. Prompt: “Export the annotations from the reviewed copy, then import them into contract-v3.pdf.” Agen memanggil export_annotations, yang menulis file XML, lalu import_annotations.
  5. Berikan kembali salinan bersih. Prompt: “Remove all annotations and give me a clean copy for the counterparty.” remove_annotations tanpa ids menghapus semua anotasi ke dalam file baru.

Apa yang diputuskan agen, dan apa yang dilakukan mesin?

Keputusan atau tindakan Agen Mesin
Komentar mana yang membutuhkan jawaban Membaca hasil get_annotations dan menyaringnya Mengembalikan setiap anotasi dengan id, penulis, dan balasan
Isi balasan Menyusunnya berdasarkan instruksi Anda Menyimpannya di bawah userName yang Anda berikan
Konvensi resolusi mana yang berlaku Mengikuti aturan dalam prompt Anda Menerapkan edit atau penghapusan yang diminta
Apakah putaran selesai Melaporkan hitungan; manusia menyetujui Menyimpan hasil setiap perubahan kembali ke penyimpanan

Mesin tidak pernah memutuskan apa yang dianggap selesai. Model anotasi tidak memiliki flag “resolved”; resolusi adalah konvensi yang Anda pilih dan sebutkan dalam prompt.

Di mana manusia tetap berada dalam siklus?

Dua tempat. Sebelum langkah 5, minta agen menyatakan berapa banyak anotasi yang akan dihapus dan tunggu jawaban Anda. Penghapusan semua anotasi adalah satu‑satunya panggilan dalam alur kerja yang tidak dapat dibatalkan. Sebelum apa pun keluar dari tim, baca balasan yang dibuat agen. Teks anotasi berasal dari orang lain, jadi perlakukan komentar sebagai konten yang dirangkum, bukan sebagai instruksi bagi agen untuk diikuti.

Contoh sesi (singkat)

Ini adalah ilustrasi yang dibangun dari perilaku terdokumentasi alat‑alat, bukan tangkapan layar.

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

Bagaimana cara menjalankan server untuk Claude, Cursor, atau Copilot?

Jalankan image Docker dengan folder dokumen Anda dipasang, dan folder output yang berbeda dari folder penyimpanan:

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

Perintah yang sama dan alternatif dnx GroupDocs.Annotation.Mcp --yes dijelaskan dalam AI review that lands in the document, not in the chat log. Halaman hub memiliki pendaftaran untuk Claude Desktop, Claude Code, VS Code dengan GitHub Copilot, Cursor, Windsurf, dan klien lainnya.

Batasan jujur

  • Mode evaluasi. Tanpa lisensi, lencana percobaan ditempelkan di bagian atas setiap halaman, yang tidak layak dikirim ke pihak lawan. Periksa get_license_status sebelum review formal.
  • Setiap alat penulisan menyimpan hasilnya kembali ke penyimpanan. Jadi satu putaran menghasilkan rangkaian file. Minta agen meneruskan nama file dari hasil sebelumnya dan membaca ulang file itu dengan get_annotations sebelum mengedit apa pun, karena id milik dokumen yang baru saja Anda baca. Atur GROUPDOCS_MCP_OUTPUT_PATH ke folder selain folder penyimpanan sebelum menautkan edit pada file yang dihasilkan. Dengan default (output berada di folder penyimpanan) penulisan kedua gagal dengan being used by another process; dengan folder output terpisah, add_reply, update_annotation, dan remove_annotations pada file yang dihasilkan semuanya berhasil.
  • Koordinat dibawa apa adanya. Pada draf yang di‑re‑flow, catatan yang diimpor mungkin berada di dekat teks aslinya, bukan tepat di atasnya. Periksa penempatan setelahnya.
  • Pratinjau di Linux. generate_pages_preview saat ini gagal untuk file PDF di Linux, termasuk image Docker (TypeInitializationException untuk Gdip: System.Drawing.Common tidak didukung pada platform non‑Windows); dokumen Word dan Office lainnya dapat dirender, dan di Windows dengan dnx semua format dapat dirender. Sepuluh alat lainnya tidak terpengaruh. Alat review dalam posting ini tidak menggunakan renderer pratinjau.

Tanya Jawab

Apakah AI dapat membalas komentar dalam PDF secara otomatis? Ya. Agen membaca komentar dengan get_annotations dan menjawab dengan add_reply, yang menerima id anotasi, teks balasan, dan nama penulis.

Apakah ada status “resolved” untuk komentar? Tidak. Alat‑alat tidak memiliki flag resolved, jadi Anda memilih konvensi seperti mempertahankan thread, menghapus anotasi, atau menambahkan awalan [RESOLVED] pada pesan.

Bisakah saya mempertahankan komentar ketika dokumen direvisi? Ya. Ekspor anotasi ke XML dari salinan yang direview dan impor ke draf baru. Pasangan alat yang sama menggabungkan dua salinan reviewer menjadi satu.

Mendalami lebih jauh