AI 에이전트를 활용한 문서 검토 워크플로는 매 라운드마다 동일한 단계를 따를 수 있습니다: 열려 있는 항목을 나열하고, 스레드에서 답변하고, 해결하고, 댓글을 다음 초안으로 옮기며, 깨끗한 사본을 생성합니다. GroupDocs.Annotation.Mcp 서버는 각 단계를 도구로 노출하므로 Claude, Cursor 또는 GitHub Copilot의 LLM이 라운드를 로컬에서 실행하고 사람이 결과를 승인할 수 있습니다:

output/contract_annotated.pdf 파일의 주석을 나열하십시오. 답변이 없는 주석은 어떤 것입니까?

왜 고정된 순서 없이 검토 라운드가 흐트러지는가?

검토 라운드는 흔히 “댓글을 추가한다”는 것이 아닙니다. 아직 열려 있는 항목, 누가 제기했는지, 답변, 해결, 그리고 다음 청중을 위한 깨끗한 사본이 모두 포함됩니다. 사람이 수작업으로 이 과정을 하면 순서가 달라지고, 답변에 서명이 없으며, 다음 초안에서 이전 댓글이 사라집니다.

매번 동일한 순서를 따르는 에이전트를 사용하면 이러한 변동을 없앨 수 있습니다. 또한 감사가 확인할 때 채팅 기록이 아니라 문서 내부에 흔적을 남깁니다.

워크플로, 단계별로

각 단계는 하나의 프롬프트와 하나의 도구를 가집니다.

  1. 열려 있는 항목 찾기. 프롬프트: “output/contract_annotated.pdf 파일의 주석을 나열하십시오. 답변이 없는 주석은 어떤 것입니까?” 에이전트는 get_annotations를 호출하고, 이는 각 주석의 id, 유형, 메시지, 페이지, 경계 상자, 사용자 및 답변을 반환합니다. 답변이 없는 댓글은 replies 배열이 비어 있는 경우이며, 에이전트는 이미 보유하고 있는 목록을 필터링합니다.
  2. 스레드에 답변하기. 프롬프트: “Maria의 댓글에 대해 3월 12일에 재무팀이 조건을 승인했다고 답변하십시오. Alex로 서명하세요.” 에이전트는 annotationId, comment, userName을 사용하여 add_reply를 호출합니다. 이름은 기본값이 mcp-user이므로 실제 이름을 지정해야 합니다.
  3. 완료된 항목 해결하기. 규칙을 선택하고 프롬프트에 명시하십시오: 답변을 남기고 스레드를 기록으로 유지하기, remove_annotations로 주석을 삭제하기, 혹은 update_annotation으로 메시지를 [RESOLVED]로 시작하도록 편집하기.
  4. 다음 초안으로 라운드 이어가기. 프롬프트: “검토된 사본에서 주석을 내보낸 뒤 contract-v3.pdf에 가져오세요.” 에이전트는 XML 파일을 작성하는 export_annotations를 호출하고, 이어서 import_annotations를 호출합니다.
  5. 깨끗한 사본 반환하기. 프롬프트: “모든 주석을 제거하고 상대방을 위한 깨끗한 사본을 주세요.” ids 없이 remove_annotations를 호출하면 모든 주석이 새로운 파일로 삭제됩니다.

에이전트는 무엇을 결정하고 엔진은 무엇을 수행하는가?

결정 또는 행동 에이전트 엔진
어떤 댓글에 답변이 필요한가 get_annotations 결과를 읽고 필터링함 ids, 작성자 및 답변이 포함된 모든 주석을 반환함
답변 내용 당신의 지시대로 초안 작성 제공한 userName 아래에 저장
어떤 해결 규칙을 적용할지 프롬프트에 있는 규칙을 따름 요청된 편집 또는 삭제를 적용
라운드가 끝났는지 여부 카운트를 보고; 인간이 승인 각 변경 결과를 저장소에 저장

엔진은 해결 여부를 판단하지 않습니다. 주석 모델에는 설정할 해결 플래그가 없으며; 해결은 프롬프트에서 선택하고 명시하는 규칙입니다.

인간은 루프에서 어디에 위치하는가?

두 곳입니다. 단계 5 이전에, 에이전트에게 제거하려는 주석 수를 알려 달라고 요청하고 당신의 답변을 기다리세요. 모든 주석을 제거하는 것은 워크플로에서 되돌릴 수 없는 유일한 호출입니다. 팀 외부로 나가기 전에, 에이전트가 초안한 답변을 읽으세요. 주석 텍스트는 다른 사람으로부터 온 것이므로, 댓글을 요약할 내용으로 간주하고 에이전트가 따를 지시로 보지 마세요.

예시 세션 (요약)

이는 도구의 문서화된 동작을 기반으로 만든 예시이며, 캡처된 스크린샷이 아닙니다.

당신:   output/contract_annotated.pdf 파일의 주석을 나열하십시오. 답변이 없는 주석은 어떤 것입니까?

에이전트: [output/contract_annotated.pdf에 대해 get_annotations 호출]
       4개의 주석을 찾았습니다. 그 중 두 개는 답변이 없습니다:
       - id 2, 페이지 2, Maria: "재무팀과 결제 조건을 확인하십시오."
       - id 4, 페이지 5, Maria: "납기일이 Schedule B와 충돌합니다."

당신:   첫 번째 주석에 대해 재무팀이 3월 12일에 조건을 승인했다고 답변하십시오.
       Alex로 서명하세요.

에이전트: [add_reply 호출: annotationId=2, userName="Alex",
        comment="재무팀이 3월 12일에 조건을 승인했습니다."]
       output/contract_annotated.pdf의 주석 2에 답변을 추가했습니다.
       (에이전트는 다음 호출에서 저장된 파일 이름을 사용합니다.)

Claude, Cursor 또는 Copilot용 서버를 어떻게 실행하나요?

문서 폴더를 마운트하고, 저장소 폴더와 다른 출력 폴더를 지정하여 Docker 이미지를 실행하십시오:

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

같은 명령과 dnx GroupDocs.Annotation.Mcp --yes 대안은 AI review that lands in the document, not in the chat log에 설명되어 있습니다. 허브 페이지에는 Claude Desktop, Claude Code, GitHub Copilot이 포함된 VS Code, Cursor, Windsurf 및 기타 클라이언트에 대한 등록 정보가 있습니다.

솔직한 제한 사항

  • 평가 모드. 라이선스가 없으면 모든 페이지 상단에 시험 배지가 찍히며, 이는 상대방에게 보낼 수 없습니다. 정식 검토 전에 get_license_status를 확인하십시오.
  • 각 작성 도구가 결과를 저장소에 다시 저장합니다. 따라서 라운드는 파일 체인을 생성합니다. 에이전트에게 이전 결과의 파일 이름을 전달하고, 편집하기 전에 get_annotations로 해당 파일을 다시 읽도록 지시하십시오. 이는 ID가 방금 읽은 문서에 속하기 때문입니다. 생성된 파일에 대한 연속 편집을 수행하기 전에 GROUPDOCS_MCP_OUTPUT_PATH를 저장소 폴더와 다른 폴더로 설정하십시오. 기본값(출력이 저장소 폴더에 저장)에서는 두 번째 쓰기가 다른 프로세스에서 사용 중 오류로 실패하지만, 별도의 출력 폴더를 사용하면 add_reply, update_annotation, remove_annotations가 모두 성공합니다.
  • 좌표가 그대로 전달됩니다. 재배치된 초안에서는 가져온 메모가 원본 텍스트 근처에 배치될 수 있으며, 정확히 그 위에 놓이지 않을 수 있습니다. 이후 배치를 확인하십시오.
  • Linux에서 미리보기. generate_pages_preview는 현재 Linux(및 Docker 이미지)에서 PDF 파일에 대해 실패합니다(Gdip에 대한 TypeInitializationException: System.Drawing.Common은 비 Windows 플랫폼을 지원하지 않음). Word 및 기타 Office 문서는 렌더링되며, Windows에서 dnx를 사용할 경우 모든 형식이 렌더링됩니다. 다른 열 도구는 영향을 받지 않습니다. 이 글의 검토 도구는 미리보기 렌더러를 사용하지 않습니다.

자주 묻는 질문

AI가 PDF의 댓글에 자동으로 답변할 수 있나요? 예. 에이전트는 get_annotations로 댓글을 읽고, add_reply를 사용해 답변합니다. add_reply는 주석 ID, 답변 텍스트 및 작성자 이름을 받습니다.

댓글에 해결 상태가 있나요? 아니오. 도구에는 해결 플래그가 없으므로 스레드를 유지하거나, 주석을 삭제하거나, 메시지 앞에 [RESOLVED]를 붙이는 등 규칙을 선택해야 합니다.

문서가 수정될 때 댓글을 유지할 수 있나요? 예. 검토된 사본에서 주석을 XML로 내보낸 뒤 새 초안에 가져오면 됩니다. 동일한 도구 쌍을 사용해 두 검토자의 사본을 하나로 병합할 수 있습니다.

더 깊이 파고들기