PDF·엑셀을 LLM Markdown으로 변환하기: markitdown + AI 에이전트 워크플로우
문서 변환부터 LLM 전달까지, 에이전트에게 온전히 위임하는 법
AI를 실무에 도입하면서 자주 겪는 벽 중 하나는, 내가 가진 자료를 LLM에게 '제대로 읽히는' 과정입니다.
PDF, 엑셀, PPT 같은 사내 문서나 외부 자료를 챗봇에 그대로 업로드하면, 가끔 표 구조가 깨지거나 쓸데없는 텍스트까지 읽느라 컨텍스트 창(Context Window)을 낭비하는 경우가 많습니다. 특히 에이전트에게 방대한 문서를 읽히고 작업을 지시할 때는 입력 데이터의 질이 결과물의 질을 결정합니다.
markitdown: LLM이 가장 좋아하는 형태로 변환하기
이럴 때 유용한 도구가 Microsoft에서 오픈소스로 공개한 markitdown입니다. 저는 주로 터미널에서 uv tool install 'markitdown[all]' 명령어로 글로벌하게 설치해 두고 사용합니다.
이 도구의 핵심은 명확합니다. PDF, PPTX, XLSX, 심지어 이미지(OCR)나 오디오 파일까지 LLM이 가장 완벽하게 구조를 파악할 수 있는 포맷인 '마크다운(Markdown)'으로 한 번에 변환해 줍니다.
# 터미널에서 명령어 한 줄로 문서를 마크다운으로 변환
markitdown 실무기획서.pdf -o 실무기획서.md
이렇게 텍스트 형태로 정제된 문서를 LLM에게 넘겨주면, 토큰 사용량도 줄어들고 중간에 내용을 빼먹거나 할루시네이션(환각)을 일으킬 확률이 획기적으로 줄어듭니다.
왜 하필 마크다운(Markdown)일까?
HWP, PDF, PPT 같은 기존 문서 양식은 사람의 눈에 보기 좋게 디자인된 '시각적 레이아웃'을 담고 있습니다. 반면 마크다운은 제목, 본문, 표 등 문서의 뼈대를 순수하게 텍스트 기호로만 표현합니다. 화려한 서식이나 불필요한 시각 데이터 없이 핵심 구조만 전달되니, AI가 문서를 오독할 확률이 극단적으로 낮아지는 것입니다.
최근 한국의 국가인공지능전략위원회에서도 정부 부처 최초로 회의 및 토론 결과를 마크다운(.md) 형식으로 공식 배포하기 시작했습니다. 이제는 국가 기관조차 데이터를 '사람'뿐만 아니라 'AI'가 즉시 읽고 학습할 수 있는 형태로 생산하기 시작한 셈입니다. 문서를 다루는 패러다임 자체가 바뀌고 있습니다.
내가 직접 변환하지 마라, 에이전트에게 위임하라
여기서 한 걸음 더 나아가 보겠습니다. markitdown이 좋다고 해서 매번 터미널을 열고 파일을 일일이 변환한 뒤, 그걸 복사해서 챗봇 창에 붙여넣는다면 어떨까요? 그것도 결국 '노가다'입니다.
제가 최근 업무 자동화에서 가장 중요하게 생각하는 것은 에이전트(Agent) 중심의 위임 구조입니다. 현재 주로 사용하는 Codex, Claude Code, Antigravity 같은 코드 에이전트나 터미널 기반 에이전트에게 이 변환 과정 자체를 통째로 넘겨버리는 것이죠.
스킬(Skill)을 통한 실행 권한 부여
에이전트에게 권한을 주는 방법은 간단합니다. 작업 공간의 스킬(Skill) 폴더에 markitdown의 사용법과 실행 규칙을 적어둔 마크다운 문서를 하나 넣어둡니다.
에이전트가 참고할 스킬 문서는 거창할 필요 없이, 아래처럼 5~6줄 정도의 핵심 가이드만 적어두면 충분합니다.
[markitdown 스킬 문서 작성 예시]
- 목적: PDF, 엑셀, PPT 등을 LLM 컨텍스트용 마크다운으로 변환할 때 이 도구를 써라.
- 기본 명령어: 터미널에서
markitdown <파일명> -o <출력.md>를 실행해라.- 일괄 처리: 폴더 내 파일이 많으면
for f in *.pdf...반복문을 사용해라.- 예외 처리: 한글 폰트나 표가 깨지면
--use-plugins옵션으로 OCR 모드를 시도해라.
이렇게 나만의 도구 사용법을 쥐여준 후, 에이전트에게 지시합니다.
"현재 폴더에 있는
기획서.pdf와데이터.xlsx를 읽고, 이번 주 작업 목표를 정리해 줘."
그러면 에이전트는 문서가 PDF나 엑셀인 것을 확인하고, 스스로 스킬 매뉴얼을 읽은 뒤 터미널에서 markitdown 명령어를 실행해 마크다운으로 변환합니다. 그리고 그 결과물을 바탕으로 내용을 분석해 저에게 답변을 내놓습니다.
진정한 자동화란
단순히 챗봇과 대화하며 답을 얻어내는 방식은 이미 낡은 방식이 되었습니다. 이제는 내 작업 환경(터미널, 에디터) 안에서 도구를 실행할 수 있는 에이전트에게 **명확한 절차(하네스, 스킬)**를 쥐여주고, 판단과 실행을 위임하는 구조를 짜는 것이 핵심입니다.
LLM에게 자료를 잘 떠먹여 주기 위한 도구부터, 그 도구를 대신 실행해 주는 에이전트까지. 구조를 한 번만 잘 잡아두면 그다음부터는 "이 문서 읽고 정리해"라는 한 마디면 충분합니다.