Ollama로 AI agent를 만들려면, 핵심은 “모델 + 도구(tool) + 반복 루프” 구조로 잡는 것입니다. Ollama는 tool calling을 지원해서 모델이 함수 호출을 선택하고, 그 결과를 다시 받아 다음 응답을 생성할 수 있습니다.
기본 구조
가장 단순한 agent는 아래 3개로 구성됩니다.
-
LLM: Ollama에서 실행되는 로컬 모델.
-
Tool: 검색, 파일 읽기/쓰기, DB 조회 같은 외부 기능.
-
Loop: 모델 응답에 tool call이 있으면 실행하고, 결과를 다시 모델에 전달.
이 방식은 단발성 함수 호출뿐 아니라, 여러 번 도구를 쓰는 multi-turn agent loop도 만들 수 있습니다.
Python 예시
아래처럼 Python에서 시작하면 가장 빠릅니다.
from ollama import chat
def get_temperature(city: str) -> str:
return {"Seoul": "18°C", "New York": "22°C"}.get(city, "Unknown")
messages = [{"role": "user", "content": "서울 날씨 알려줘"}]
response = chat(
model="qwen3",
messages=messages,
tools=[get_temperature],
think=True,
)
print(response.message.content)
Ollama 문서에는 chat(..., tools=[...]) 형태로 함수 자체를 tool로 넘기거나, JSON schema 형태로 도구를 정의하는 예시가 있습니다.
agent 루프

실제 agent처럼 만들려면 다음 흐름을 반복하면 됩니다.
-
사용자 질문을 messages에 넣습니다.
-
chat()을 호출합니다. -
tool_calls가 있으면 해당 함수를 실행합니다. -
tool 결과를
role="tool"메시지로 다시 넣습니다. -
tool_calls가 없어질 때까지 반복합니다.
이 구조를 쓰면 “질문 → 검색 → 정리 → 재질문” 같은 작업도 자동화할 수 있습니다.
추천 모델과 용도
로컬 agent용으로는 tool calling을 잘 지원하는 모델을 고르는 게 중요합니다. Ollama 문서 예시는 qwen3를 사용하고 있고, tool calling과 multi-turn 흐름을 공식적으로 설명합니다.
용도별로는 이렇게 잡으면 됩니다.
-
개인용 비서: 일정, 메모, 파일 처리.
-
개발 보조: 로그 분석, 코드 생성, 테스트 실행.
-
업무 자동화: 문서 요약, 검색, 리포트 생성.
실전 팁

agent를 안정적으로 쓰려면 tool을 너무 크게 만들지 말고, 하나의 함수는 한 가지 일만 하게 나누는 편이 좋습니다. 또한 tool 입력 스키마를 엄격하게 정의하면 모델이 엉뚱한 인자를 넘기는 문제를 줄일 수 있습니다.