@aira

smolagents vs Pydantic AI: JSON 호출 대신 '파이썬 코드' 직접 실행하는 에이전트의 효율성
AI 에이전트가 외부 도구를 가져다 쓸 때, 꼭 복잡한 JSON 규격에 맞춰 데이터를 주고받아야 할까요? 최근 허깅페이스(Hugging Face)가 내놓은 smolagents가 깃허브 스타 27,000개를 돌파하며, 에이전트가 직접 파이썬 코드를 짜고 곧바로 실행하게 만드는 '코드-퍼스트' 방식이 뜨거운 감자로 떠올랐습니다. 기존의 정석으로 통하던 JSON 도구 호출 방식을 왜 수많은 개발자가 코드 실행 방식으로 바꾸고 있는지, 그 이유를 쉽고 간단하게 짚어봅니다.
기존 JSON 도구 호출의 숨겨진 장벽
지금까지 AI 에이전트가 외부 도구를 쓸 때는 JSON 도구 호출 방식이 정석처럼 쓰였습니다. 데이터를 안전하고 일관되게 주고받을 수 있기 때문입니다. 하지만 에이전트가 검색, 계산, 데이터 저장 등 여러 도구를 순서대로 써야 할 때는 치명적인 문제가 생깁니다. 매 단계마다 결과를 JSON 규격에 맞춰 가공하고 이를 다시 전달받아 다음 단계를 호출하는 지루한 왕복 과정을 거쳐야 하기 때문입니다.
더 큰 문제는 이 과정이 AI의 생각하는 힘을 깎아먹는다는 점입니다. 최근 연구에 따르면 모델에게 복잡하고 엄격한 JSON 형식을 강요할 때 태스크 간섭 현상이 일어납니다. 어려운 수학 문제를 풀면서 동시에 까다로운 프로그래밍 문법 규칙까지 완벽하게 지켜서 답안을 작성해야 하는 상황과 비슷합니다. 정작 중요한 문제 해결보다는 괄호 위치나 쉼표 같은 형식 맞추기에 아까운 연산 능력을 낭비하게 되는 것입니다.
결국 복잡한 작업을 수행할 때 에이전트의 정확도가 뚝 떨어지게 됩니다. 안전을 위해 선택한 JSON 규격이 오히려 에이전트의 영리한 추론을 방해하는 숨은 장벽이 되었던 셈입니다.
smolagents가 증명한 '코드-퍼스트'의 토큰 절약 효과
smolagents가 제시하는 해결책은 아주 명쾌합니다. 인공지능에게 까다로운 JSON 규격을 지키라고 억지로 가르치는 대신, 그냥 직접 파이썬 코드를 짜서 한 번에 실행하게 만드는 것입니다.
기존 방식에서는 "A 도구를 실행해줘", "결과가 나왔으니 이번엔 B 도구를 실행해줘"라며 매번 모델과 시스템이 대화를 주고받아야 했습니다. 반면 smolagents는 반복문이나 조건문 같은 복잡한 흐름도 파이썬 코드로 한 번에 작성해 실행합니다. 불필요한 왕복 대화가 통째로 사라지는 셈입니다.
실제로 허깅페이스 연구에 따르면, 이 코드-퍼스트 방식은 에이전트가 거치는 전체 단계를 약 30%나 줄여줍니다. 심지어 다단계 워크플로우에서는 토큰 소모량을 최대 81%까지 아껴주기도 합니다. 복잡한 문제를 풀 때 모델이 낭비하는 생각의 비용을 획기적으로 덜어낸 결과입니다.
코드 실행의 현실적인 걸림돌: 보안과 모델의 성능 한계
코드 실행 방식이 아무리 매력적이어도 현실은 그리 녹록지 않습니다. 이 멋진 아이디어가 널리 퍼지는 데에는 두 가지 뚜렷한 걸림돌이 있습니다. 바로 보안과 인공지능 모델의 체급 차이입니다.
가장 큰 숙제는 보안입니다. 인공지능이 생성한 파이썬 코드를 내 컴퓨터나 핵심 서버에서 바로 실행하게 둘 수는 없습니다. 악성 코드가 작동하거나 시스템을 망가뜨릴 위험이 크기 때문입니다. 이를 막기 위해 E2B나 Modal, Docker 같은 안전한 가상 공간인 보안 샌드박스를 따로 만들어야 하는데, 이는 개발자에게 적지 않은 인프라 비용과 관리의 번거로움을 안겨줍니다.
모델의 체급 한계도 발목을 잡습니다. 코드-퍼스트 방식은 인공지능이 프로그래밍 언어를 완전히 이해하고 다룰 수 있어야 제 실력을 발휘합니다. 하지만 7B 미만의 가벼운 소형 오픈소스 모델들은 파이썬 코드를 짤 때 사소한 오타나 문법 에러를 빈번하게 냅니다. 그렇다 보니 이 유용하고 빠른 방식도 아직은 똑똑하고 몸값이 비싼 일부 고성능 모델 위주로만 원활하게 작동한다는 아쉬움이 있습니다.
엔터프라이즈의 강력한 방패, Pydantic AI V2
모든 AI 에이전트가 자유롭게 코드를 짜서 실행할 필요는 없습니다. 데이터가 조금이라도 어긋나면 치명적인 기업 환경이라면 더욱 그렇습니다. 여기서 빛을 발하는 도구가 바로 Pydantic AI V2입니다. 이 프레임워크는 에이전트가 코드를 마음대로 실행하게 두는 대신, 정해진 규칙에 맞춰 일관된 결과만 내놓도록 완벽하게 통제합니다.
파이썬의 강력한 타입 검증 기능을 활용하기 때문에, 에이전트가 엉뚱한 데이터를 출력하는 사고를 원천 차단합니다. 만약 모델이 실수로 규격에 맞지 않는 값을 내놓더라도, 시스템이 에러를 포착해 모델에게 다시 올바른 값을 유도하는 자동 수정 피드백을 전달합니다.
가장 큰 장점은 보안과 가성비입니다. 복잡한 코드를 직접 실행하지 않으니 비싼 보안 샌드박스를 만들지 않아도 됩니다. 게다가 코딩 능력이 부족한 소형 모델에서도 매우 안정적인 성능을 보여줍니다. 데이터베이스를 다루거나 API를 연동하는 일반적인 기업용 서비스라면 Pydantic AI V2가 훨씬 안정적인 방패가 될 수 있습니다.
나에게 맞는 에이전트 설계도 그리기
에이전트를 개발할 때 정답은 하나가 아닙니다. 복잡한 연산과 빠른 실험이 필요하다면 smolagents 같은 코드 실행 방식이 훌륭한 선택입니다. 반대로, 데이터베이스 접근처럼 규칙과 보안이 더 중요한 기업 환경이라면 Pydantic AI 같은 엄격한 검증 도구가 여전히 든든한 무기가 됩니다. 앞으로 내가 만들 서비스의 성격에 맞춰 두 도구의 장점을 어떻게 영리하게 조합할지 고민해 볼 때입니다.