사고 모드·멀티모달 입력을 활용한 실전 에이전트 구축
들어가며: "에이전트"가 가능해진 오픈 모델
GPT-4o나 Claude를 에이전트로 사용하면 API 비용이 빠르게 쌓인다.
에이전트는 단일 요청이 아니라 수십 번의 함수 호출과 반복 추론으로 이루어지기 때문이다.
젬마 4는 이 문제를 근본적으로 바꿨다.
- 전 모델에서 네이티브 함수 호출을 지원하고,
- 사고 모드(Thinking Mode)로 다단계 추론을 수행하며,
- τ2-bench 에이전틱 점수가 전 세대 대비 +1,200% 향상되었다.
- 그리고 이 모든 것이 로컬에서 무료로 실행된다.
이 글은 젬마 4로 실제 동작하는 에이전트를 만드는 실전 방법 중 첫 번째로
나만의 코딩 어시스턴트를 만들어본다.
1. 젬마 4의 에이전트 핵심 기능
사고 모드 (Thinking Mode)
복잡한 추론이 필요할 때 사고 모드를 활성화하면
모델이 최대 4,000+ 토큰의 내부 추론을 거친 후 최종 답변을 제공한다.
AIME 수학 문제에서 89.2%를 달성한 것도 이 기능 덕분이다.
# Ollama에서 사고 모드 활성화
import ollama
response = ollama.chat(
model="gemma4:e4b",
messages=[
{"role": "user", "content": "이 알고리즘의 시간 복잡도를 단계별로 분석해줘: [코드]"}
],
"think": True # ✅ thinking 모드 활성화
)
print(response["message"]["content"])
2. 실전 예제: 로컬 멀티모달 코딩 어시스턴트
젬마 4 + Ollama + Gradio 코딩 어시스턴트 구현이다.
모든 처리가 로컬에서 이루어진다.
특징:
- 왼쪽 코드 에디터 + 오른쪽 AI 채팅 분할 화면
- 이미지·코드 파일 첨부 입력 지원
- 에디터의 현재 코드를 컨텍스트로 자동 주입
- 스트리밍 응답
핵심 코드 구조:
import gradio as gr
import requests
import json
import base64
OLLAMA_URL = "http://localhost:11434/api/chat"
MODEL = "gemma4:e4b"
def chat_with_agent(message, history, editor_code, files):
history = history or []
message = message or ""
editor_code = editor_code or ""
files = files or []
if not message.strip():
yield history
return
if editor_code.strip():
text_prompt = f"현재 에디터 코드:\n```\n{editor_code}\n```\n\n질문: {message}"
else:
text_prompt = message
payload = {
"model": MODEL,
"messages": [{"role": "user", "content": text_prompt}],
"think": True, # thinking 모드 활성화
"stream": True
}
# 이미지 처리
images = []
for file in (files or []):
try:
with open(file.name, "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()
images.append(img_b64)
except Exception as e:
print("이미지 오류:", e)
if images:
payload["messages"][0]["images"] = images
new_history = history + [
{"role": "user", "content": message},
{"role": "assistant", "content": ""}
]
try:
with requests.post(OLLAMA_URL, json=payload, stream=True, timeout=120) as r:
r.raise_for_status()
for line in r.iter_lines():
if line:
chunk = json.loads(line)
if "message" in chunk:
delta = chunk["message"].get("content", "")
new_history[-1]["content"] += delta
yield new_history
except requests.exceptions.ConnectionError:
new_history[-1]["content"] = "❌ Ollama 서버에 연결할 수 없습니다."
yield new_history
except Exception as e:
new_history[-1]["content"] = f"❌ 에러 발생: {str(e)}"
yield new_history
# Gradio 6.x: theme은 Blocks가 아닌 launch()로 이동
with gr.Blocks() as demo:
gr.Markdown("## 🤖 Gemma4 Dev Chat")
with gr.Row():
code_editor = gr.Code(
language="python",
label="코드 에디터",
lines=20
)
with gr.Column(scale=1):
# Gradio 6.x: type 파라미터 없음, messages 형식이 기본값
chatbot = gr.Chatbot(height=500)
msg_input = gr.Textbox(
placeholder="메시지를 입력하세요 (Enter 전송 / Shift+Enter 줄바꿈)",
lines=2
)
file_input = gr.File(file_count="multiple", file_types=["image"])
msg_input.submit(
chat_with_agent,
inputs=[msg_input, chatbot, code_editor, file_input],
outputs=chatbot
).then(
lambda: "",
None,
msg_input
)
# theme은 여기로
demo.launch(theme=gr.themes.Soft())
실행 방법:
# 1. Ollama에서 모델 실행
ollama serve
ollama pull gemma4:e4b
# 2. Gradio 앱 실행
pip install gradio requests
python app.py
# → http://localhost:7860 접속
# 3. 코드 에디터에 다음과 같이 입력(일부러 틀린 코드)
print(hello)
# 4. Textbox에 다음과 같이 입력
hello라고 출력하고 싶어. 뭐가 문제야?
# 5. File에 파일을 올리고 관련된 질문도 가능

▲ 실행 화면
사례: 의료 영상 분석
PACS 시스템에 연동되는 로컬 AI 리포트 보조 도구를 젬마 4 E4B 기반으로 구축할 수 있다.
의료 이미지는 보안상 클라우드 전송이 불가능한 경우가 많다.
젬마 4의 이미지 입력 기능으로 X-ray 이미지와 환자 기록 텍스트를 함께 처리하고,
함수 호출로 내부 의료 DB를 조회하는 에이전트를 만들 수 있다.
모든 처리가 병원 내 서버에서 완결되어 규정 준수 문제가 해소되었다.
마치며
젬마 4는 에이전트 구축에 있어 처음으로 "오픈 소스이면서 실제로 쓸 만한" 선택지가 되었다.
τ2-bench 에이전틱 점수 86.4%는 단순한 숫자가 아니라,
모델이 실제 도구를 호출하고 다단계 작업을 자율적으로 처리할 수 있다는 뜻이다.
- 데이터를 외부에 보내지 않고,
- API 비용 없이,
- 자신의 하드웨어에서 동작하는 에이전트.
이것이 젬마 4가 열어주는 새로운 가능성이다.
젬마 4 설치 및 프로젝트 생성에 대해 알고 싶으면 다음 글을 참고하기 바란다.
구글 젬마 4(Gemma 4) 무작정 따라하기 - 초보자용 AI 스튜디오부터 로컬 구동까지
'AI' 카테고리의 다른 글
| 구글 젬마 4(Gemma4) 완전분석 벤치마크 모델선택 — 31B 모델이 400B 라이벌을 이기는 방법 (1) | 2026.04.17 |
|---|---|
| 구글 젬마 4(Gemma 4) 무작정 따라하기 - 초보자용 AI 스튜디오부터 로컬 구동까지 (2) | 2026.04.15 |
| AGENTS.md 실전전략 - 헤매지 않는 에이전트를 만드는 컨텍스트 설계 (0) | 2026.04.14 |
| Codex Agent Skills 완전분석 스킬 구조와 동작 원리부터 실전 활용까지(2026년 4월 최신판) (0) | 2026.04.13 |
| 2026년 4월 Codex 요금제 완전 분석 — 바뀐 요금이 내 비용에 미치는 진짜 영향 (0) | 2026.04.11 |