A workflow xem xét tài liệu với một AI agent có thể thực hiện cùng một chuỗi bước trong mỗi vòng: liệt kê những mục còn mở, trả lời trong các chuỗi thảo luận, giải quyết, chuyển các bình luận sang bản nháp tiếp theo và tạo ra một bản sạch. Máy chủ GroupDocs.Annotation.Mcp công khai mỗi bước dưới dạng một công cụ, vì vậy một LLM trong Claude, Cursor hoặc GitHub Copilot có thể chạy vòng này cục bộ trong khi một người dùng phê duyệt kết quả:
List the annotations in output/contract_annotated.pdf. Which ones have no replies?
Phiên bản chi tiết từng bước kèm cấu hình và khắc phục sự cố có trong tài liệu: How to run a document review cycle with an AI agent.
Tại sao các vòng xem xét lại lệch hướng khi không có một trình tự cố định?
Một vòng xem xét hiếm khi chỉ là “thêm một bình luận”. Nó bao gồm: những gì còn mở, ai đã đưa ra, câu trả lời, cách giải quyết và một bản sạch cho người đọc tiếp theo. Khi mọi người thực hiện thủ công, thứ tự thay đổi, các phản hồi không có chữ ký, và bản nháp tiếp theo mất các bình luận của bản trước.
Một agent luôn tuân theo cùng một trình tự mỗi lần sẽ loại bỏ sự biến đổi đó. Nó cũng để lại dấu vết bên trong tài liệu thay vì trong bản ghi chat, nơi mà một cuộc kiểm toán sẽ xem xét.
Quy trình làm việc, từng bước một
Mỗi bước có một lời nhắc và một công cụ.
- Tìm những mục còn mở. Lời nhắc: “List the annotations in output/contract_annotated.pdf. Which ones have no replies?” Agent gọi
get_annotations, trả về mỗi annotation vớiid, kiểu, tin nhắn, trang, bounding box, người dùng và các phản hồi. Một bình luận chưa được trả lời là một mục có mảngrepliesrỗng, vì vậy agent lọc danh sách đã có. - Trả lời trong chuỗi thảo luận. Lời nhắc: “Reply to Maria’s comment that finance approved the terms on 12 March. Sign it as Alex.” Agent gọi
add_replyvớiannotationId,commentvàuserName. Tên mặc định làmcp-user, vì vậy cần cung cấp tên thực. - Giải quyết những gì đã xong. Chọn một quy ước và nêu rõ trong lời nhắc: trả lời và để lại chuỗi như bản ghi, xóa annotation bằng
remove_annotations, hoặc chỉnh sửa tin nhắn bằngupdate_annotationđể bắt đầu bằng[RESOLVED]. - Chuyển vòng sang bản nháp tiếp theo. Lời nhắc: “Export the annotations from the reviewed copy, then import them into contract-v3.pdf.” Agent gọi
export_annotations, ghi một file XML, sau đó gọiimport_annotations. - Cung cấp bản sạch. Lời nhắc: “Remove all annotations and give me a clean copy for the counterparty.”
remove_annotationskhông cóidssẽ xóa mọi annotation và tạo một file mới.
Agent quyết định gì, và engine thực hiện gì?
| Quyết định hoặc hành động | Agent | Engine |
|---|---|---|
| Những bình luận nào cần trả lời | Đọc kết quả của get_annotations và lọc |
Trả về mọi annotation kèm id, tác giả và phản hồi |
| Nội dung phản hồi | Soạn dựa trên chỉ dẫn của bạn | Lưu dưới userName bạn cung cấp |
| Quy ước giải quyết nào được áp dụng | Tuân theo quy tắc trong lời nhắc của bạn | Thực hiện chỉnh sửa hoặc xóa theo yêu cầu |
| Khi nào vòng xem xét kết thúc | Báo cáo số lượng; con người phê duyệt | Lưu kết quả của mỗi thay đổi trở lại bộ nhớ |
Engine không bao giờ quyết định gì là đã giải quyết. Mô hình annotation không có cờ “resolved” để đặt; việc giải quyết là một quy ước bạn tự chọn và nêu trong lời nhắc.
Con người ở vị trí nào trong vòng lặp?
Hai vị trí. Trước bước 5, yêu cầu agent báo số annotation sắp xóa và chờ câu trả lời của bạn. Việc xóa toàn bộ annotation là lệnh duy nhất trong quy trình không có khả năng hoàn tác. Trước khi bất kỳ thông tin nào ra ngoài nhóm, hãy đọc các phản hồi mà agent đã soạn. Văn bản annotation đến từ người khác, vì vậy hãy xem một bình luận như nội dung để tóm tắt, không phải là chỉ dẫn cho agent thực hiện.
Phiên làm việc mẫu (rút gọn)
Đây là minh hoạ dựa trên hành vi được tài liệu mô tả của các công cụ, không phải một ảnh chụp màn hình thực tế.
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.)
Cách chạy máy chủ cho Claude, Cursor hoặc Copilot?
Chạy image Docker với thư mục tài liệu được gắn, và một thư mục output khác với thư mục lưu trữ:
docker run --rm -i -v $(pwd)/documents:/data \
-e GROUPDOCS_MCP_OUTPUT_PATH=/data/output \
ghcr.io/groupdocs-annotation/annotation-net-mcp:latest
Câu lệnh tương tự và tùy chọn dnx GroupDocs.Annotation.Mcp --yes được giải thích trong AI review that lands in the document, not in the chat log. Trang hub có hướng dẫn đăng ký cho Claude Desktop, Claude Code, VS Code với GitHub Copilot, Cursor, Windsurf và các client khác.
Giới hạn thực tế
- Chế độ đánh giá. Không có giấy phép, một huy hiệu dùng thử sẽ được dán lên đầu mỗi trang, điều này không phù hợp để gửi cho đối tác. Kiểm tra
get_license_statustrước khi thực hiện đánh giá chính thức. - Mỗi công cụ viết lưu kết quả trở lại bộ nhớ. Vì vậy một vòng sẽ tạo ra một chuỗi file. Yêu cầu agent truyền tên file từ kết quả trước sang bước tiếp theo và đọc lại file đó bằng
get_annotationstrước khi chỉnh sửa, vì cácidthuộc về tài liệu vừa đọc. ĐặtGROUPDOCS_MCP_OUTPUT_PATHthành thư mục khác với thư mục lưu trữ trước khi xâu chuỗi các chỉnh sửa trên file đã tạo. Khi để mặc định (outputs nằm trong thư mục lưu trữ) lần ghi thứ hai sẽ thất bại với lỗibeing used by another process; khi dùng thư mục output riêng, các lệnhadd_reply,update_annotationvàremove_annotationstrên file đã tạo đều thành công. - Tọa độ được giữ nguyên. Khi một bản nháp được tái định dạng, một ghi chú được nhập có thể xuất hiện gần văn bản gốc thay vì trên chính nó. Hãy kiểm tra vị trí sau khi nhập.
- Xem trước trên Linux.
generate_pages_previewhiện tại không hoạt động với file PDF trên Linux, kể cả trong image Docker (TypeInitializationExceptionchoGdip:System.Drawing.Commonkhông được hỗ trợ trên nền tảng không phải Windows); các file Word và các tài liệu Office khác vẫn được render, và trên Windows vớidnxmọi định dạng đều render. Mười công cụ còn lại không bị ảnh hưởng. Các công cụ xem xét trong bài này không sử dụng bộ render preview.
Câu hỏi thường gặp
AI có thể tự động trả lời bình luận trong PDF không? Có. Agent đọc các bình luận bằng get_annotations và trả lời bằng add_reply, nhận id annotation, nội dung phản hồi và tên tác giả.
Có trạng thái “resolved” cho bình luận không? Không. Các công cụ không có cờ resolved, vì vậy bạn tự chọn quy ước như giữ lại chuỗi, xóa annotation hoặc thêm tiền tố [RESOLVED] vào tin nhắn.
Có thể giữ lại các bình luận khi tài liệu được sửa đổi không? Có. Xuất các annotation ra XML từ bản đã xem xét và nhập chúng vào bản nháp mới. Cặp công cụ này cũng có thể hợp nhất hai bản sao của reviewer thành một.
Đi sâu hơn
- Tài liệu, hướng dẫn chuẩn: How to run a document review cycle with an AI agent
- Trung tâm tài liệu: GroupDocs.Annotation MCP Server
- Bắt đầu tại đây: AI review that lands in the document, not in the chat log
- Liên quan: 3 ways to extract every comment from a document set with MCP
- Liên quan: Show the agent what it did
- Kiến trúc on‑premise và mô hình bảo mật: 3 architectures for AI document processing, and the one that keeps files inside your network
- Câu hỏi: GroupDocs Annotation forum
- Mã nguồn: GroupDocs.Annotation.Mcp on GitHub