거북이와 Gemma로 풀어보는 AI 에이전트의 원리
요약
Turtle-Gemma 프로젝트는 Google의 Gemma 모델을 활용하여 사용자의 음성이나 텍스트 명령을 Logo 코드로 변환하고 실행하는 AI 에이전트 시스템입니다. 이 프로젝트는 복잡한 도구 호출(Tool Calling) 과정을 시각적인 거북이 그래픽으로 구현하여 에이전틱 워크플로우의 원리를 직관적으로 이해할 수 있게 돕습니다.
핵심 포인트
- Gemma 모델을 에이전트로 활용하여 자연어를 실행 가능한 코드로 변환
- 도구 호출(Tool Calling) 과정을 시각화하여 AI의 추론 및 실행 과정을 직관적으로 파악 가능
- Gradio, Gemma, Python 기반의 심플한 파이프라인 아키텍처 구성
- 단순한 명령 수행을 넘어 AI가 문제를 해결하기 위해 단계를 계획하는 에이전틱 워크플로우의 실례 제공
🐢 캔버스에 말을 걸다
만약 당신이 저와 비슷한 세대라면, 첫 '프로그래밍 (Programming)' 경험은 눈부신 브라운관 (CRT) 모니터 위의 작은 삼각형이었을지도 모릅니다. FORWARD 100
이라고 입력하면 작은 거북이가 화면 위에 선을 그려 나가는 것을 지켜보던 그 시간. 그것은 그야말로 마법이었습니다. 스스로 컴퓨터를 움직이고 있다는 실감이 있었기 때문입니다. (참조: LOGO)
최근 저는 Turtle-Gemma라는 AI 프로젝트를 통해 이 마법과 재회했습니다. 현대의 AI 세계에서 그 시절의 설렘을 그대로 되살려 주는 프로젝트입니다.
명령어를 굳이 입력하는 대신, 브라우저에서 마이크 버튼을 클릭해 "빨간 별을 그려줘"라고 말하기만 하면 됩니다. 불과 몇 초 후, AI 에이전트 (AI Agent)가 Logo 코드를 작성하고 이를 실행하여 디지털 캔버스에 당신의 요청을 그려냅니다.
단순히 즐거운 장난감 프로젝트일 뿐만 아니라, 이것은 현대의 AI "에이전트"가 실제로 어떻게 작동하는지 이해하기 위한 가장 효과적인 방법이기도 합니다. 등껍질 속을 살짝 들여다봅시다.
🛠️ 모든 것을 하나로 연결하기
몇 가지 서로 다른 기술을 조합하여 매끄러운 하나의 루프로 연결할 때의 그 독특한 성취감. Turtle-Gemma가 하고 있는 것이 바로 그것입니다.
아키텍처 (Architecture)를 살펴보면 매우 아름답고 심플한 파이프라인 (Pipeline)으로 되어 있습니다.
입력: Gradio 웹 인터페이스가 음성이나 텍스트 요청을 받습니다. -
사고: Google의 Gemma 모델이 해당 입력을 받아 에이전트로 기능합니다. -
그리기: 커스텀 빌드된 "헤드리스 (Headless)" 거북이 엔진 (turtle_engine.py)이 에이전트로부터 지시를 받아, PIL (Python Imaging Library) 이미지 위에 그림을 그립니다.
한 명의 크리에이터로서 저는 이 접근 방식이 정말 마음에 듭니다. 미래를 느끼게 하는 무언가를 만드는 데 거창한 엔터프라이즈용 스택 (Enterprise Stack) 따위는 필요 없다는 것을 상기시켜 주기 때문입니다. 깨끗한 Python 환경, 오픈 모델 (Open Model), 그리고 심플한 UI 라이브러리. 이것만 있으면 입 밖으로 낸 생각을 한 장의 이미지로 변환할 수 있습니다.
💭 AI가 생각하는 모습을 지켜보며, "도구 호출 (Tool Calling)"의 수수께끼를 풀다
최근 AI 업계를 체크하고 있는 분이라면 "에이전틱 워크플로우 (Agentic Workflows)"나 "도구 호출 (Tool Calling)"이라는 단어를 들어본 적이 있을 것입니다. 왠지 무겁고 어려워 들리죠. 보통 이것들은 AI가 데이터베이스에 쿼리 (Query)를 던지거나, JSON을 분석하거나, 날씨 API를 가져오는 등 강력하지만 눈에 보이지 않는 작업들을 가리키는 경우가 많습니다.
Turtle-Gemma는 그런 도구 호출 과정을 시각화해 주는 최고의 비주얼라이저 (Visualizer)입니다.
Gemma에게 "빨간 별을 그려줘"라고 부탁했을 때, 모델은 단순히 생(raw) 이미지 파일을 출력하는 것이 아닙니다. 필요한 절차를 생각하고, 주어진 "도구"를 사용해야 합니다. 여기서 도구란 말 그대로 move_turtle(), turn_turtle(), set_pen_state(), set_pen_color() 이 4가지뿐입니다 (참조: turtle-gemma/config.py).
AI가 소리 내어 추론 (Inference)해 나가는 모습을 관찰할 수 있습니다.
"사용자는 터틀 그래픽스를 사용하여 빨간 별을 그리고 싶어 하는 것 같다. 별은 다각형이며, 보통 전진과 특정 각도로의 회전을 반복함으로써 그려진다."
도구 호출 1: set_pen_color("red")
도구 호출 2: move_turtle(100)
도구 호출 3: turn_turtle(144)
(이를 5회 반복)
LLM에 캔버스 위에서의 물리적이고 연속적인 절차를 출력하게 함으로써, 추상적이었던 AI 추론의 "블랙박스 (Black Box)"가 완전히 시각화됩니다. 만약 AI가 환각 (Hallucination)을 일으키거나 논리적 오류를 범하더라도, 아무 말 없이 코드가 충돌(Crash)하는 것이 아닙니다. 대신 완벽한 별이 아닌, 조금 뒤틀린 기묘한 별이 만들어집니다. 그야말로 모델이 실시간으로 생각하고 있는 모습을 목격하는 것입니다.
😋 행복한 사고를 즐기기
물론, 이것은 2D 공간을 탐색(navigate)하려고 시도하는 AI이기 때문에 항상 모든 것이 완벽하게 흘러가지는 않습니다. 하지만 바로 그 점이 재미있는 부분이죠.
프롬프트: draw a x-mas tree
(크리스마스 트리를 그려줘)
크리스마스 트리를 그려달라고 요청해도, AI가 줄기를 그리는 것을 잊어버려 아래에서 초록색 선 하나만 툭 튀어나온 기묘한 삼각형이 되어버릴 때도 있습니다. 또 어떤 때는 자신의 현재 방향을 조금 착각하여 이상한 선을 긋기도 합니다.
이러한 작은 "실수"들이 왠지 모르게 무척 사랑스럽게 느껴집니다. LLM(대규모 언어 모델)은 결코 틀리지 않는 마법의 두뇌가 아니라, 언어를 기하학(geometry)으로 매핑(mapping)하려고 열심히 노력하는 추론 엔진(reasoning engine)이라는 사실을 깨닫게 해줍니다.
🏖️ 모래사장에서 놀아보기
우리는 이메일을 쓰거나, 서버를 디버깅(debugging)하거나, 스프레드시트(spreadsheet)를 분석하는 것과 같은 진지한 작업에 AI를 사용하는 데 많은 시간을 소비합니다. Turtle-Gemma는 AI를 이용한 프로그래밍이 그저 즐거운 놀이여도 괜찮다는 것을 알려주는 멋진 리마인더(reminder)입니다.
프롬프트: draw a gangnam style
(강남스타일을 그려줘)
도구 호출(tool calling)이 실제로 어떻게 작동하는지 보고 싶은 분, 혹은 단순히 언어로부터 형태가 탄생하는 기쁨을 체험해보고 싶은 분은 꼭 리포지토리(repository)를 클론(clone)하여 Gradio 앱을 실행하고 시도해 보세요. 강력히 추천합니다.
자, 거북이에게 별을 그려달라고 말하듯 말을 걸어보세요. 분명 당신을 미소 짓게 만들 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기