
TAKT로 토큰 부족 문제 해결: OpenCode를 통해 Ollama 로컬 LLM 사용하기
요약
TAKT 프레임워크에서 발생하는 클라우드 LLM의 토큰 비용 문제를 해결하기 위해, OpenCode와 Ollama를 활용하여 coder 페르소나를 로컬 LLM으로 전환하는 방법을 설명합니다. Ollama 설치부터 도구 호출(Function Calling)이 가능한 모델 선정 및 설정 과정을 다룹니다.
핵심 포인트
- TAKT의 페르소나별 프로바이더 할당을 통한 비용 절감
- OpenCode를 Ollama의 프론트엔드로 설정하는 절차
- 에이전트 동작을 위한 Tools(Function Calling) 지원 모델 필수
- Llama 3.3 70B 모델을 활용한 로컬 코딩 환경 구축
서론
TAKT를 사용하기 시작한 지 얼마 지나지 않아, 클라우드 LLM의 토큰 소비가 예상보다 크다는 것을 깨닫게 됩니다. 특히 토큰을 많이 소비하는 것은 리뷰를 담당하는 supervisor,
・architecture-reviewer,
・ai-antipattern-reviewer,
이 세 가지 페르소나(persona)입니다. 하지만 이들은 고도의 추론 능력이 요구되기 때문에, 현시점의 로컬 LLM(Local LLM)으로는 대체할 수 없습니다.
그래서 비교적 로컬 LLM으로 대응 가능한 coder 페르소나를 로컬로 전환함으로써, 일부 토큰 소비를 절감하는 방침을 세웠습니다.
이 기사에서는 TAKT → OpenCode → Ollama라는 연결 경로로 로컬 LLM을 도입하여, coder 페르소나를 부분적으로 오프로드(offload)한 절차를 공유합니다.
이 기사에서 알 수 있는 것
- Ollama 및 OpenCode의 셋업 방법
- OpenCode를 Ollama의 프론트엔드(frontend)로 설정하는 방법
- TAKT의
persona_providers에서 로컬 LLM을 할당하는 방법
전제 환경
| 항목 | 내용 |
|---|---|
| OS | Windows 11 Pro |
| ... |
TAKT의 도입 및 기본 설정에 대해서는 'AI 오케스트레이션 도구의 선택 방법: TAKT 채택까지의 검토 프로세스'를 참조해 주세요.
1. 구성의 전체상
TAKT
└─ persona: coder
└─ provider: opencode
...
TAKT는 페르소나마다 서로 다른 프로바이더(provider)를 할당할 수 있습니다. coder 페르소나에 OpenCode를 지정하고, OpenCode 측에서 Ollama로의 접속을 설정함으로써 로컬 LLM을 사용할 수 있게 됩니다.
2. Ollama 셋업
2.1 설치
Windows 환경에서는 PowerShell에서 다음을 실행합니다:
irm https://ollama.com/install.ps1 | iex
2.2 모델 취득
이번에는 llama3.3:70b-instruct-q5_K_M을 사용합니다. ollama pull 명령을 실행하면 Ollama가 기동되어 모델 다운로드가 진행됩니다.
ollama pull llama3.3:70b-instruct-q5_K_M
다운로드 후, Ollama는 http://localhost:11434에서 API 요청을 수락합니다.
모델 선정 시 주의점: tools 대응이 필수
TAKT는 에이전트(agent)로서 동작하기 때문에, LLM에 도구 호출 (function calling) 기능이 필요합니다. Ollama의 모델 라이브러리에서 "Tools" 필터를 사용하면 대응 모델을 좁힐 수 있습니다.

tools 미대응 모델은 에이전트로 기능하지 않으므로 주의하십시오.
llama3.3:70b-instruct-q5_K_M을 선택한 이유:
- tools 대응 모델 중에서 코딩 태스크에 대한 적합성과 2026년 5월 시점에서의 실적으로 선택
- 업무 이용을 상정하여, 중국 제품(Qwen3-Coder 등)을 제외한 결과로 선택 (Llama3.3은 Meta 제품)
VRAM과 RAM에 대하여:
q5_K_M 양자화(quantization)된 70B 모델은 약 48 GB의 메모리를 필요로 하므로, VRAM 16 GB에는 들어가지 않습니다. Ollama는 GPU/CPU 하이브리드 추론을 지원하며, VRAM 분량은 GPU로 처리하고 나머지는 메인 RAM으로 오프로드합니다. 이번 환경(VRAM 16 GB + RAM 96 GB)에서는 문제없이 동작하지만, 순수 GPU 추론보다는 속도가 저하됩니다.
3. OpenCode 셋업
3.1 설치
curl -fsSL https://opencode.ai/install | bash
3.2 Ollama용 프로바이더 설정
OpenCode 설정 파일에 Ollama 프로바이더를 추가합니다.
설정 파일 위치: ~/.config/opencode/opencode.jsonc
{
"$schema": "https://opencode.ai/config.json",
"provider": {
...
설정 포인트:
npm
: OpenCode가 내부적으로 사용하는 AI SDK 패키지를 지정합니다. Ollama는 OpenAI 호환 API를 제공하므로 @ai-sdk/openai-compatible를 사용합니다.
baseURL: Ollama의 API 엔드포인트 (기본값:http://localhost:11434/v1)models: 사용할 모델을 나열합니다. 키 이름(llama3.3:70b-instruct-q5_K_M)이 TAKT 측에서의 모델 참조명이 됩니다.
4. TAKT 설정
persona_providers에서 로컬 LLM을 할당할 페르소나(Persona)를 지정합니다.
설정 파일 위치: .takt/config.yaml (프로젝트 루트)
language: ja
provider: claude
branch_name_strategy: romaji
...
coder만 로컬 LLM으로 설정한 이유:
가장 많은 토큰을 소비하는 것은 supervisor, architecture-reviewer, ai-antipattern-reviewer의 3종이지만, 이들은 설계상의 모순 검출이나 품질 판단 등 고도의 추론을 필요로 하기 때문에 현재의 로컬 LLM으로는 대체할 수 없습니다.
반면, coder는 주어진 사양에 기반한 코드 생성 및 변환이 중심이므로, 로컬 LLM으로도 일정 수준의 품질을 내기 쉬운 역할입니다. 따라서 비용을 절감할 수 있는 범위로서 coder를 선택했습니다.
모델 참조 형식:
ollama/llama3.3:70b-instruct-q5_K_M
^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
| opencode.jsonc에서 정의한 모델 키
...
5. 동작 확인
Ollama가 실행 중인지 확인한 후 TAKT를 실행합니다:
# Ollama 실행 확인
curl http://localhost:11434/api/tags
# TAKT 실행 (예)
...
coder 페르소나의 태스크가 OpenCode를 통해 llama3.3:70b-instruct-q5_K_M로 전달되어, 로컬에서 추론이 수행되는 것을 확인할 수 있습니다.
요약
| 컴포넌트 | 역할 |
|---|---|
| Ollama | 로컬 LLM 실행 환경 · OpenAI 호환 API 서버 |
| ... |
TAKT → OpenCode → Ollama의 3계층 구조를 통해, 클라우드 LLM과 로컬 LLM을 역할에 따라 구분하여 사용할 수 있습니다. 완전한 대체는 불가능하지만, coder의 처리를 일부 로컬로 분산함으로써 클라우드 LLM의 소비를 부분적으로 제어할 수 있게 되었습니다.
시리즈 기사
- Claude Code 입문: 빌트인 기능의 전체 모습
- Claude Code 하네스(Harness) 기능 상세 해설: CLAUDE.md · SKILLS · HOOK으로 개발을 제어하기
- AI 오케스트레이션 도구 선택 방법: TAKT 채택까지의 검토 프로세스 ← 지난 회차
TAKT로 토큰 부족 문제 해결: OpenCode를 통해 Ollama 로컬 LLM 사용하기 ← 이번 회차
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기