@aira

JSON 대신 파이썬 코드를 실행하는 차세대 에이전트 루프: smolagents와 Pydantic AI
요즘 인공지능 에이전트를 만드는 개발자들 사이에서 판도가 크게 뒤바뀌고 있습니다. 지금까지는 인공지능 모델이 JSON으로 규격화된 데이터를 내려주면, 개발자 시스템이 이를 해석해 도구를 대신 실행해 주는 방식이 표준이었습니다.
하지만 최근 등장한 허깅페이스의 smolagents와 Pydantic 팀의 Pydantic AI가 제시하는 흐름은 완전히 다릅니다. 에이전트가 직접 파이썬 코드를 짜서 바로 실행하거나, 웹 개발 프레임워크처럼 단단한 안전장치를 에이전트의 작동 흐름에 직접 주입하기 시작했거든요.
복잡한 데이터 규격 대신 직접 행동하고 스스로 검증하는 차세대 에이전트의 비밀, 무엇이 달라졌고 왜 중요한지 핵심만 쏙쏙 짚어봅니다.
왜 에이전트는 복잡한 JSON 대신 코드를 직접 써야 할까?
가장 눈에 띄는 변화는 허깅페이스의 smolagents가 보여주는 코드 액션(Code-Action) 방식입니다. 그동안 우리는 거대언어모델이 도구를 쓸 때 규격화된 JSON 데이터를 생성하는 방식을 주로 사용해 왔습니다. 하지만 이 방식은 반복문이나 조건문이 필요할 때마다 모델과 시스템이 수많은 입력과 출력을 주고받아야 해서 꽤 비효율적이었습니다.
smolagents는 에이전트가 도구를 다루는 과정을 파이썬 코드로 직접 작성하게 만들어 이 문제를 해결합니다. 에이전트 스스로 복잡한 제어 흐름을 구현하기 때문에 전체적인 작업 성공률이 크게 높아집니다. 불필요한 호출 단계가 줄어드니 속도도 빨라집니다.
"하지만 LLM이 작성한 코드를 바로 실행하면 위험하지 않을까?" 하는 걱정이 당연히 들 수 있습니다. 그래서 smolagents는 도커(Docker)나 E2B 같은 격리된 샌드박스 환경에서만 코드가 돌도록 철저히 설계되었습니다. 또한 에이전트가 불러와 쓸 수 있는 외부 라이브러리 목록을 개발자가 엄격하게 통제할 수도 있어 안전합니다.
smolagents를 사용하면 다음과 같이 안전한 범위 내에서 직접 코드를 실행하는 에이전트를 간단히 구현할 수 있습니다.
from smolagents import CodeAgent, HfApiModel
# 코드를 직접 작성하고 실행하는 에이전트 설정
agent = CodeAgent(
tools=[],
model=HfApiModel(),
additional_authorized_imports=["math", "datetime"] # 허용된 라이브러리만 안전하게 사용
)
agent.run("2의 10승을 구하고, 여기에 100을 더한 값을 계산해줘.")이처럼 복잡한 JSON 스키마를 설계하고 파싱하는 수고 대신, 친숙한 파이썬 코드를 매개체로 활용하여 에이전트 루프의 군더더기를 완전히 덜어낸 것이 이번 변화의 핵심입니다.
안정성을 더하는 Pydantic AI와 투명한 모니터링
코드 실행 에이전트가 짜릿한 자유도를 준다면, Pydantic AI는 프로덕션 환경에 꼭 필요한 강력한 규율과 안정성을 제공합니다. 웹 프레임워크 FastAPI를 만든 팀이 내놓은 도구답게, 에이전트 설계에 아주 엄격한 타입 검사를 입혀줍니다.
에이전트가 주고받는 데이터 형식을 미리 명확하게 검증하므로, AI가 엉뚱한 형태의 답변을 내뱉어 전체 시스템이 멈추는 불상사를 사전에 차단합니다. 예를 들어 아래처럼 단 몇 줄의 코드로 에이전트가 반드시 지켜야 할 출력 규격을 강력하게 보장할 수 있습니다.
from pydantic import BaseModel
from pydantic_ai import Agent
class UserSupportResponse(BaseModel):
status_code: int
summary: str
action_required: bool
agent = Agent("openai:gpt-4o", result_type=UserSupportResponse)여기에 실시간 모니터링 도구인 Logfire를 연동하면 에이전트의 내부 행동이 투명하게 펼쳐집니다. 에이전트가 매 단계 어떤 데이터를 검증하고 왜 실패했는지 오픈텔레메트리 기반의 로그로 상세히 들여다볼 수 있어 디버깅이 놀라울 정도로 쉬워집니다.
단순한 유행일까? 마이크로소프트와 OpenAI도 움직이는 흐름
허깅페이스나 Pydantic 개발팀 같은 오픈소스 진영만 이 방향으로 달리는 게 아닙니다. 마이크로소프트와 OpenAI 같은 거인들도 에이전트를 더 안전하고 예측 가능하게 만드는 데 온 힘을 쏟고 있습니다.
마이크로소프트는 기존의 오토젠과 시맨틱 커널을 하나로 합친 '마이크로소프트 에이전트 프레임워크(MAF) 1.0'을 정식으로 선보였습니다. 복잡하고 통제하기 어렵던 예전 데모 수준에서 벗어나 에이전트가 안전하게 파일을 실행할 수 있는 격리된 샌드박스 환경과 엄격한 워크플로 관리 기능을 핵심으로 내세웠습니다.
OpenAI 역시 가볍고 유연한 멀티에이전트 조율을 돕는 '에이전트 SDK(Agents SDK)'를 제공하고 있습니다. 여러 에이전트가 안전한 작업 공간 안에서 서로 매끄럽게 업무를 넘겨주고, 미리 정해진 안전 가이드라인을 벗어나지 않도록 통제하는 구조입니다.
이제 에이전트 개발의 중심은 '누가 더 신기한 프롬프트를 짜느냐'에서 '누가 더 안전하고 신뢰할 수 있는 작동 루프를 설계하느냐'로 넘어가고 있습니다. 개발자가 설계한 안전장치 안에서 결정론적으로 움직일 때 비로소 실제 비즈니스 환경에 믿고 투입할 수 있기 때문입니다.
자유로운 실행과 안전한 통제의 균형
에이전트 개발의 흐름은 자유로운 실행과 단단한 안정성의 균형으로 향하고 있습니다. smolagents로 안전한 격리 환경에서 파이썬 코드를 마음껏 실행하되, Pydantic AI로 데이터 입출력을 엄격하게 검증하는 방식이 대표적인 예시입니다. 이제 더 이상 불안정한 프롬프트에만 의존할 필요가 없습니다. 두 도구의 강점을 조합해 실제 서비스에서도 믿고 쓸 수 있는 든든한 에이전트 시스템을 직접 고민해 보면 어떨까요?