안녕하세요, AI 및 LLM(대규모 언어 모델) 기술에 관심 있으신 여러분! 오늘은 최근 ICML 2025 워크숍에서 발표된 “Representing Prompting Patterns with PDL: Compliance Agent Case Study” 논문을 소개하고, 특히 기술적 가치 측면에서 어떻게 기존 도구들과 차별화되는지 풀어드리겠습니다.
“PDL”이 뭐길래? – 프롬프트 프로그래밍의 새로운 패러다임
최근 AI 분야에서 LLM이 폭발적으로 발전하면서 프롬프트(prompt) 설계가 핵심 기술로 떠오르고 있죠. 문제는 ‘프롬프트 엔지니어링’이 매우 까다롭다는 점입니다. 프롬프트의 작은 변화가 결과를 크게 바꾸고, 다루기 힘든 멀티턴 대화, 도구 호출 연계 등 복잡성이 엄청 납니다.
기존에는 두 가지 방식이 주로 활용됐어요.
- 저수준 언어/프레임워크: Microsoft Guidance, LMQL, SGLang 등. 자유도가 높지만, 복잡한 코딩을 요구하고 선언적(declarative)이지 않아서 관리와 최적화가 어려움.
- 고수준 프레임워크: LangChain, LLama Stack, AutoGen, CrewAI 등. API로 추상화해 복잡도를 숨기지만, 프롬프트가 코드 깊숙이 묻혀있어 커스터마이징에 한계.
바로 이런 점을 혁신적으로 해결한 것이 이 논문이 제안하는 Prompt Declaration Language(PDL) 입니다.
PDL의 기술적 혁신 포인트는?
- 프롬프트를 YAML 기반 선언형 언어로 완전 노출!
- PDL은 프롬프트를 ‘보여주기만’ 하는 게 아닙니다. YAML 문법으로 프롬프트 패턴, 도구 호출, 조건문, 반복문 등 제어 흐름을 직관적이고 선언적으로 표현할 수 있어요. 즉, 코드를 파헤쳐 봐야 프롬프트를 찾는 게 아닌, 프롬프트가 바로 앞에 명확히 보입니다.
- LLM 호출과 외부 코드(파이썬 등) 통합
- 도구 호출이 포함된 복잡한 에이전트 로직을 ‘플러밍(plumbing)’ 없이 자연스럽게 구성 가능! 예를 들어, 위키피디아 검색 도구를 사용할 때 LLM 출력(JSON)을 받아 Python 코드로 처리하는 과정이 매끄럽게 연결돼 있습니다.
- 메시지 구조와 LLM 멀티턴 이해 완전 내장
- LLM들이 채팅 API처럼 다중 역할-내용 메시지를 주고받는 구조를 PDL이 내부에서 신경써서 관리하니까, 개발자는 맥락 고민은 줄이고 높은 수준의 논리에 집중할 수 있죠.
- 타입 체킹과 출력 제약 지원
- JSON 스키마 기반 타입을 적용하여 모델 출력이 예상 형식이 되도록 유도하고, 제약 조건을 모델에 직접 붙여 성능과 안정성을 높입니다. 이는 기존 프레임워크들에서는 보기 힘든 세밀한 관리 기법입니다.
- 다양한 LLM과 플랫폼 호환성이 뛰어남
- LiteLLM 백엔드를 활용해서 오픈소스~상용 모델까지 폭넓게 지원합니다. 쉽게 모델 교체 및 조정 가능하다는 큰 장점!
실전에서 빛난 PDL: CISO 컴플라이언스 에이전트 사례
논문 저자들은 PDL을 대형 조직의 IT 컴플라이언스 자동화 업무에 적용해봤습니다. 보안 정책 해석, 스크립트 생성, 실행, 리포팅 전 과정을 LLM 기반 에이전트가 수행하는데요.
기존 방식의 문제점
- 기존 ReAct 패턴(대표적 에이전트 패턴)과 CrewAI 프레임워크로 구현했을 때, 특히 경량 LLM들(예: granite3.2-8b)은 JSON 출력이 꼬이거나 도구 호출 실패가 빈번해 성능 저하가 심했습니다.
PDL 적용 후 변화
- ‘Think’ 단계 -> ‘Think1(자연어 출력)’ + ‘Think2(JSON 출력)’로 쪼개 오류 감소
- 사용자 정의 파서로 잘못된 JSON 출력 바로잡기
- YAML 선언형으로 설계해 에이전트 흐름과 프롬프트를 쉽게 커스터마이즈 가능
성능 폭발
- ITBench 데이터셋 기준, PDL 적용 후 경량 모델에서 최대 4배 성공률 향상
- 도구 호출 실패율 크게 낮추고, 안정적인 에이전트 동작 달성
기존 논문 및 프레임워크와 어떻게 다른가요?
비교 항목 기존 저수준 DSL 기존 고수준 프레임워크 PDL (본 논문)
| 언어 형태 | 임퍼러티브, Python | API, 암묵적 프롬프트 | YAML 기반 선언형 프로그래밍 |
| 프롬프트 노출 | 숨겨짐 | 숨겨짐 | 명확히 보임, 쉽게 수정 가능 |
| 에이전트 로직 표현력 | 높음 (개발자 부담) | 제한적 | 강력 + 자유로운 커스터마이즈 가능 |
| 타입 안정성 및 출력 제약 | 부족 가능성 높음 | 미흡 | JSON 스키마+제약 조건 통한 엄격 검증 |
| 멀티턴 메시지 처리 | 개발자가 수동 관리 | 내부 처리 가능 | 메시지 누적과 역할 분담 자동 관리 |
| 모델 및 플랫폼 지원 범위 | 일부 모델 전용/복잡 | 상용 모델 위주 | LiteLLM 통해 폭넓은 모델 지원 |
| 자동 최적화 친화성 | 어려움 | 제한적 | 최적화 타겟으로 설계 (예: AutoPDL) |
왜 이 논문이 지금 주목받을까요?
- 프롬프트 엔지니어링을 프로그래밍 언어 수준까지 끌어올림
- 단순히 프롬프트 문구 돌려쓰기 끝이 아니라, 복잡한 AI 에이전트를 선언형 언어로 명확하게 기술한다는 게 진짜 혁신입니다.
- 실제 산업 적용+성능 데이터로 신뢰성 확보
- 4배 성능 향상은 그냥 숫자가 아니라 경량 LLM 도입 고민 많은 기업들에 현실적인 해결책을 제시합니다.
- 사용자(프로그래머)의 생산성 극대화와 유지보수 용의성 향상 동시 추구
- 장기간 AI 시스템을 돌려야 하는 실제 업무 환경에 큰 도움이 되는 접근법입니다.
정리하며
PDL은 단순한 프롬프트 캡슐화가 아니라 프롬프트를 프로그래밍 언어로 바라보는 관점을 제시해, LLM 기반 에이전트 설계의 패러다임을 변화시킬 강력한 도구임이 틀림없습니다.
앞으로 AI 에이전트가 더 널리 쓰일수록, 이처럼 ‘프롬프트’를 쉽게 이해하고 최적화하는 수단—즉, PDL 같은 선언형 도구가 더욱 주목받을 겁니다.
마치며
프롬프트 엔지니어링 고민 중이신 개발자 분들, 혹은 AI 에이전트 구축 시 프롬프트 구조와 도구 호출 유연함에 발목 잡혔다면, PDL과 같은 혁신적인 기술들이 여러분 문제해결의 실마리가 되리라 생각합니다.
오늘 소개는 여기까지! 더 자세한 내용과 코드 예시는 논문 원문에서 확인해 보세요. 질문이나 토론 언제든 환영합니다. 감사합니다!
참고논문: PDL 논문 원문 (arXiv)
- 다음에도 재미난 AI 논문으로 찾아뵙겠습니다. :)