이 글에는 쿠팡 파트너스 링크가 있으며, 구매 시 일정액의 수수료를 받습니다.
로컬 LLM 바이브 코딩 방법, 헤르메스 에이전트로 토큰 0원 개발하기
로컬 LLM 바이브 코딩 환경을 집 PC에 직접 꾸리고, 그 환경으로 실제 프로그램 하나를 EXE 빌드까지 만드는 전 과정을 옮겼습니다. llama.cpp로 모델을 띄우고 헤르메스 에이전트(Hermes Agent)를 붙인 뒤 텔레그램 봇으로 연결해 폰으로 개발을 시키는 방법, 그리고 작업 명세서와 개발 기획서를 먼저 쓰게 하는 개발 순서와 무한루프 대처법까지 담았습니다. 토큰 비용은 0원이지만 대신 전기세가 든다는 점도 함께 짚습니다.

로컬 LLM 바이브 코딩으로 실제로 만든 것
오늘의 목표 세 가지
로컬 LLM은 인터넷 서비스 대신 내 컴퓨터 그래픽카드로 직접 돌리는 AI 모델이고, 바이브 코딩은 코드를 직접 짜지 않고 말로 지시해 AI가 프로그램을 만들게 하는 방식입니다. 유튜브 채널 Soul Seeker의 1시간 26분짜리 영상은 이 둘을 엮는 과정을 보여 줍니다. 목표는 세 가지입니다.
- 헤르메스 에이전트를 설치한다
- 로컬 LLM을 연동한다
- 텔레그램과 연결해 밖에서도 모바일로 집 PC의 LLM을 쓴다
헤르메스 에이전트는 Nous Research가 만든 AI 에이전트 앱입니다. AI 모델을 연결해 두면 모델이 내 컴퓨터의 파일을 읽고 고치고 명령을 실행하게 해 주고, 텔레그램 같은 메신저로 원격 지시도 받게 해 줍니다.
환경 구축 다음이 본론이다
여기까지는 환경 구축이고, 영상의 절반 이상은 그다음입니다. 그 환경으로 프로그램을 하나 실제로 만듭니다. 결과물은 llama-server를 GUI(마우스로 누르는 창 화면)로 띄워 주는 "LLM 런처" 프로그램이고, EXE 빌드까지 끝났습니다. 침대에 누워 폰으로 텔레그램에 지시를 보내며 개발하는 식입니다.
반복해서 강조하는 원칙은 하나입니다. 기획서를 먼저 쓰게 하고, 단계별로 개발·테스트하고, 파일을 기능 단위로 쪼개라. 로컬 LLM은 "단기 기억상실증에 걸린, 그러나 빠른 개발자"이기 때문이라는 게 화자의 설명입니다. 스스로는 이 영상을 "찐 바이브 코딩이 아니라 짭 바이브 코딩", 가장 기초 단계라고 규정합니다.
미리 알아 둘 한계
아래 프롬프트 코드블록 중 일부는 말로 전한 요지를 옮긴 것이고 글자 그대로의 원문이 아닙니다. 화면에만 띄우고 읽지 않은 대목이 있기 때문입니다.
llama-server 실행 명령어와 옵션 플래그의 실제 문자열도 영상 발화에 나오지 않습니다. 화면에만 뜨고 말로는 옵션의 의미만 설명합니다. 그래서 이 글에서는 같은 의미의 옵션으로 편집자가 예시 명령을 만들어 두었습니다. 다만 AI로 만들었다는 로그 파싱 스크립트는 내용이 공개되지 않아 넣지 못했습니다.
로컬 LLM 바이브 코딩 준비물과 화자의 PC 환경
하드웨어와 프로그램
- 윈도우 PC. 영상은 윈도우 기준으로 진행합니다
- GPU(그래픽카드)가 달린 PC. 화자는 RTX 5090(최대 600W)을 씁니다
- 대안: 간단한 파일 작업 정도는 Gemma4 E2B 급 작은 모델로도 됩니다
- 대안: 로컬 모델 없이 프론티어 모델(챗GPT·클로드 같은 최상위 유료 모델)을 헤르메스에 연결해도 같은 방식으로 쓸 수 있습니다
- llama.cpp(내 PC에서 AI 모델을 돌리는 무료 프로그램). 영상에서는
C:\LLM폴더에 CUDA 12.4 버전을 풀어 둔 상태로 진행합니다. 설치법은 이 영상에 없어 아래에 정리했습니다 - 텔레그램 계정. 스마트폰 앱과 PC 데스크톱 앱
- HWiNFO(하드웨어 센서를 보여 주는 무료 프로그램). 무한루프 감시용 전력 모니터링에 씁니다. 없어도 진행은 되지만 강하게 권장됩니다
모델 파일, 무엇을 받을까
- GGUF 모델 파일(llama.cpp가 읽는 모델 파일 형식). 화자는 unsloth가 올린 Qwen3.6 27B MTP 모델의 4비트 양자화(모델 크기를 줄이는 압축) 파일을 씁니다
- Qwen3.6 27B A3B Coder 모델도 써 봤지만 별로였다고 합니다. Coder 모델은 한글 인식을 너무 못한다는 이유입니다
- 멀티모달 파일(mmproj). 이미지 입력을 쓰려면 필요합니다. 영상에서는 LM 스튜디오로 받았습니다
모델을 두고 남긴 코멘트도 있습니다. 코딩은 Gemma4보다 Qwen3.6이 낫습니다. 텍스트(명세서) 작성은 Gemma4가 더 나을 것 같지만 모델 교체가 귀찮아서 Qwen으로 밀어붙였다고 합니다.
비용 구조, 토큰 0원 대신 전기세
토큰 비용(유료 AI 서비스에 쓰는 만큼 내는 요금)은 0원입니다. 대신 전기세가 듭니다. 무한루프에 빠지면 화자 환경에서 GPU가 560W를 계속 먹습니다.
llama.cpp와 모델 받는 법 (영상 밖 정리)
영상은 이 부분을 이전 영상으로 넘기므로 일반적인 순서를 적어 둡니다.
- 구글에 "llama.cpp releases"를 검색해 깃허브의 llama.cpp 릴리스 페이지로 들어갑니다.
- 윈도우 NVIDIA 그래픽카드라면 이름에
win과cuda가 들어간 zip 파일을 받습니다. 같은 버전의 CUDA 런타임(cudart) zip이 따로 있으면 그것도 받습니다. C:\LLM같은 폴더를 만들고 두 zip을 같은 폴더에 풉니다. 그 안에llama-server.exe가 있으면 됩니다.- 허깅페이스(AI 모델 공유 사이트)에서 쓰려는 모델 이름과 "GGUF"를 함께 검색해, 내 그래픽카드 메모리에 맞는 양자화 파일을 받습니다.
- 이미지 입력을 쓸 거면 같은 저장소에서 이름에
mmproj가 들어간 파일도 받습니다. LM 스튜디오에서 모델을 받으면 이 파일이 함께 내려와 편합니다.
1단계, 기존 헤르메스 에이전트 완전히 지우기 (재설치일 때만)
처음 설치하는 분은 이 구획을 건너뛰고 설치 구획으로 갑니다.
사용자 폴더의 .hermes 지우기
- 파일 탐색기에서
C:드라이브 → 사용자 → 내 계정 폴더로 들어갑니다. - 그 안의
.hermes폴더를 통째로 삭제합니다. 폴더가 안 보이면 탐색기 보기 메뉴에서 숨긴 항목 표시를 켭니다.
제어판 확인하고 AppData의 Hermes 지우기
- 검색창에
컨트롤(control)을 쳐서 제어판을 엽니다. - 프로그램 및 기능 목록에 Hermes가 있는지 봅니다. 있으면 여기서 제거하는 게 정석입니다. 화자 PC에는 없어서 폴더째 지웠습니다.
- 탐색기 경로창을 클릭하고
appdata를 입력한 뒤Enter를 누릅니다. Local, LocalLow, Roaming 세 폴더가 보입니다. - Local 폴더로 들어가
Hermes폴더를 통째로 삭제합니다. - Roaming 폴더로 들어가
Hermes폴더도 통째로 삭제합니다. - 바탕화면의 헤르메스 바로가기도 지웁니다.
2단계, 헤르메스 에이전트 설치하기
설치 방법 고르기
- 구글에 "헤르메스 에이전트"를 검색합니다. hermes-agent.nousresearch.com 사이트가 결과에 나옵니다.
- 그 사이트에 접속합니다. 파란 화면에 운영체제별 설치 방법이 보입니다.
- 설치 방법을 하나 고릅니다. 파워셸 명령어로 설치해도 되고, 다운로드 버튼으로 받은 Setup 파일로 설치해도 됩니다. 어느 쪽이든 상관없습니다.
파워셸 명령어로 설치할 때
- 사이트에서 윈도우용 설치 명령어를 복사합니다. 명령어 문자열은 영상 발화에 없으니 사이트의 윈도우 항목에서 직접 복사해야 합니다.
- 시작 메뉴에서 PowerShell을 엽니다.
- 명령어를 붙여넣고
Enter를 누릅니다. 설치가 시작됩니다.
Setup 파일로 설치할 때
- 사이트의 Download 버튼(윈도우용 데스크톱 앱)을 눌러 Setup 파일을 받습니다.
- Setup 파일을 실행합니다. "Install Hermes" 화면이 나옵니다.
- Install 버튼을 누릅니다. 이때 UV 패키지 관리자, 파이썬, Git, Node.js가 자동으로 함께 깔립니다.
- 설치가 끝날 때까지 기다립니다. "Hermes is ready" 메시지가 뜹니다.
- Launch Hermes 버튼을 누릅니다. "Starting Hermes" 뒤에 Model Provider 선택 화면이 뜹니다.
- 아래쪽의 "나중에 선택할게요"를 누릅니다. AI 채팅창 화면이 나옵니다.
other providers로 다른 제공자를 바로 연결해도 되지만, 여기서는 로컬 모델을 쓸 거라 미룹니다.
3단계, 헤르메스에 Custom Endpoint 자리 만들기
순서가 고정입니다. llama-server를 먼저 띄워야 헤르메스에 넣을 주소와 포트를 알 수 있습니다. 그래서 입력 화면까지만 열어 두고 서버를 띄우러 갑니다.
- 헤르메스 채팅창에서 Edit Model을 누릅니다. "인증된 프로바이더가 없다"고 나옵니다.
- Add Provider를 누릅니다. 제공자 목록이 나옵니다.
- Custom Endpoint를 누릅니다. Endpoint URL 입력 화면이 나옵니다.
- 이 화면을 그대로 두고 다음 구획으로 넘어갑니다.
4단계, llama-server로 로컬 LLM 띄우기
llama-server는 llama.cpp에 들어 있는 프로그램으로, 모델을 메모리에 올리고 다른 앱이 접속할 수 있는 주소를 열어 줍니다.
모델 경로와 멀티모달 경로 넣기
- 파워셸(또는 터미널)을 엽니다.
- llama.cpp 폴더의
llama-server.exe를 실행하는 명령어를 적기 시작합니다. 영상 속 환경은C:\LLM안의 CUDA 12.4 빌드 폴더입니다. - 탐색기에서 모델 파일(GGUF)을 Shift+오른쪽 클릭해 "경로로 복사"를 누르고, 명령어의 모델 옵션 뒤에 붙여넣습니다.
- 멀티모달 파일 경로를
mmproj옵션 뒤에 적습니다. 이미지 입력을 안 쓸 거면 생략해도 됩니다.
파일명은 끝까지 정확히 복사해야 합니다. 화자는 4비트 양자화 파일 이름 끝의 _S를 빠뜨려 실행에 실패했습니다.
컨텍스트 20만, KV 캐시 양자화는 끄기
컨텍스트는 AI가 한 번에 기억하며 다룰 수 있는 글의 양입니다.
- 컨텍스트 사이즈를 20만으로 지정합니다. 최대치로 주면 그래픽카드 메모리가 모자라 일반 메모리로 넘치는 메모리 오프로드가 생기고 속도가 떨어집니다.
- KV 캐시 양자화(대화 기억 공간을 압축해 메모리를 아끼는 설정)는 걸지 않습니다.
채팅용으로는 KV 캐시 양자화가 메모리를 줄이면서 빠르게 돌려 줘서 좋았지만, 에이전트로 쓰면 단점이 너무 뚜렷하다는 게 화자의 경험입니다. 차라리 컨텍스트 사이즈를 줄이는 편이 낫다고 합니다.
로그 레벨 5와 파싱 스크립트
- 로그 레벨을 5로 지정합니다. 4로는 안 되고 꼭 5여야 무한루프를 판별할 수 있다는 것이 화자의 설명입니다.
- 로그에서 필요한 데이터만 뽑는 파싱 스크립트 옵션을 명령어 끝에 붙입니다.
에이전트는 가끔 혼자 무한루프를 돕니다. 그때 작업 중인지 루프에 빠진 건지 빨리 알아채 탈출시키지 않으면 쓸데없이 전력을 낭비합니다. 로그 레벨 5는 그 판별용인데, 불필요한 텍스트까지 잔뜩 나오므로 파싱 스크립트로 걸러 냅니다. 이 스크립트는 AI에게 시켜 만든 것이고 충분히 테스트했으니 그대로 따라 쓰면 된다고 하지만, 내용은 화면에만 나옵니다. 스크립트 없이도 서버는 돌아가고, 로그가 길게 나올 뿐입니다.
병렬 1, temp 0, alias
- 병렬 처리 수를 1로 지정합니다. 혼자 쓰니까요.
- temp(온도, 답의 창의성을 정하는 값)를 0으로 지정합니다. 코딩은 시키는 대로만 하길 원해서입니다. 다만 화면 주석에는 "0 설정 시 무한루프 가능성 증가함"이라고 적혀 있습니다.
- alias(모델 별명) 옵션을 하나 지정합니다. 에이전트에 물리려면 있는 게 좋고, 임의로 정한 것이니 바꿔도 됩니다.
기획이나 창작을 시킬 거면 temp 수치를 높이는 게 좋습니다. 이 밖에 무한루프에 덜 빠지길 바라며 넣은 옵션도 몇 개 있는데, AI가 좋다고 해서 넣었을 뿐 효과는 잘 모르겠다고 합니다.
같은 뜻의 llama-server 명령 예시 (편집자 작성)
아래는 위 설명과 같은 의미의 옵션으로 편집자가 만든 예시입니다. 화자의 원문 명령이 아니고, 파싱 스크립트는 빠져 있습니다. 대괄호 안은 내 폴더와 파일 이름으로 바꿉니다.
C:\LLM\[llama.cpp 폴더]\llama-server.exe `
-m "C:\LLM\models\[모델 파일 이름].gguf" `
--mmproj "C:\LLM\models\[mmproj 파일 이름].gguf" `
-c 200000 `
-ngl 99 `
-lv 5 `
-np 1 `
--temp 0 `
--alias local-model `
--port 8080
-c는 컨텍스트, -ngl 99는 모델을 가능한 한 전부 그래픽카드에 올리라는 뜻, -lv는 로그 레벨, -np는 병렬 수입니다. 옵션 이름은 llama.cpp 버전에 따라 달라질 수 있으니 llama-server.exe --help로 확인합니다.
실행하고 GPU 메모리로 확인하기
Enter를 눌러 서버를 실행합니다. 파싱된 짧은 로그가 올라옵니다. 실패하면 경로·파일명 오타, 특히_S부터 확인합니다.- 작업 관리자(
Ctrl+Shift+Esc) → 성능 탭 → GPU를 엽니다. GPU 메모리가 올라간 것이 보이면 모델이 다 올라온 겁니다. - 공유 GPU 메모리 그래프를 봅니다. 볼록하게 튀어나오지 않는 설정이 가장 빠른 설정이고, 볼록하면 메모리 오프로드가 조금이라도 돌고 있다는 뜻입니다.
서버 주소와 포트 찾기
- 서버가 출력한 Listening 주소(IP:포트)를 찾습니다. 포트를 따로 지정하지 않았으면 8080입니다. 포트도 옵션으로 바꿀 수 있습니다.
- 파싱 옵션 때문에 주소가 안 보이면
Ctrl+C로 서버를 멈춥니다. - 파싱 옵션만 뺀 채 한 번 실행해 주소를 확인합니다. 로그가 엄청나게 뜨는데, 원래 이렇게 나올 것을 파싱으로 날리고 있었던 겁니다.
- 주소를 복사해 둡니다.
- 다시 멈추고 파싱 옵션을 붙여 서버를 올립니다.
5단계, 헤르메스에 로컬 모델 등록하고 파일 접근 시험하기
Custom Endpoint에 주소 넣고 저장하기
- 헤르메스의 Endpoint URL 칸에 복사한 주소를 붙여넣습니다. 보통
http://127.0.0.1:8080모양입니다. 연결이 안 되면 주소 끝에/v1을 붙여 봅니다(편집자 보충). - 이름 칸에
Local Model처럼 알아볼 이름을 입력합니다. - Default Model 이름도 지정합니다.
- 나머지 칸은 비워 둡니다. API 키는 따로 필요 없습니다.
- SAVE 버튼을 누릅니다. 프로바이더가 등록됐다는 표시가 나옵니다.
- 설정 창을 닫고 채팅 화면으로 돌아옵니다.
- 모델 선택 목록에서 방금 만든 프로바이더를 고릅니다. 위쪽 모델 이름이 내가 정한 이름으로 바뀝니다.
test 보내고 하네스 로딩 기다리기
- 채팅창에
test를 보냅니다. 옆 터미널에 로그가 돌고 답변이 옵니다. - 답변 뒤에도 뭔가 계속 도는 것을 확인하고 기다립니다. 입력한 게 없는데도 컨텍스트가 17.3K 정도 잡힙니다.
헤르메스가 자기 하네스(에이전트가 쓰는 기본 설정과 도구 목록)를 잡는 과정이고, 처음 로딩 때 크게 돕니다. 로그 보기가 싫으면 서버를 멈춰도 되고, 모델을 다시 올리면 재연결됩니다.
파일 저장 시키고 직접 열어 보기
- 채팅창에 "방금 네 답변을 텍스트 파일로 저장해 줘"라고 보냅니다. 파일 편집 도구가 실행되고 저장했다는 답이 옵니다.
- 저장된 파일을 직접 열어 답변 내용이 들어 있는지 확인합니다.
C드라이브 루트는 쓰기 권한이 없어 사용자 홈 디렉터리에 저장됐습니다. 여기까지 되면 로컬 파일 읽기·수정과 셸 명령 실행이 모두 가능한 상태입니다.
6단계, 텔레그램 데스크톱 설치하고 로그인하기
헤르메스 Messaging에서 텔레그램 고르기
- 헤르메스에서 Messaging 탭을 누릅니다. 연결 가능한 앱 목록(텔레그램·디스코드·슬랙·이메일·SNS 등)이 나옵니다.
- 목록에서 텔레그램을 클릭합니다. 오른쪽에 텔레그램 셋업 가이드가 표시됩니다.
텔레그램 데스크톱 설치
스마트폰 앱만 써도 되지만, PC 화면으로 보여 주기 편해서 데스크톱을 씁니다.
- 구글에 "텔레그램"을 검색합니다. 텔레그램 데스크톱이 결과에 나옵니다.
- 윈도우 버전 텔레그램 받기를 누릅니다. 다운로드가 시작됩니다.
- 다운로드된 파일을 클릭해 설치를 시작합니다. 설치 언어 선택 창이 뜹니다.
- 언어에서 English를 고르고 OK를 누릅니다. 설치 언어에는 한국어가 없고, 설치 뒤 앱 안에서 바꿀 수 있습니다.
- 설치 위치는 그대로 두고 Next를 누릅니다.
- 시작 메뉴 폴더 화면에서 Next를 누릅니다.
- 바탕화면 바로가기 화면에서 Next를 누릅니다.
- 설치 준비 화면에서 Install을 누릅니다.
- 실행 체크박스가 켜진 상태로 Finish를 누릅니다. 텔레그램이 바로 실행됩니다.
- (원하면) 한국어 전환 버튼을 눌러 한국어로 바꿉니다.
QR 코드로 PC 텔레그램 로그인
- 시작하기를 누릅니다. 로그인용 QR 코드가 뜹니다.
- 스마트폰 텔레그램을 열어 설정 → 기기 → 기기 추가로 갑니다. QR 스캔 화면이 나옵니다.
- PC 화면의 QR을 스캔합니다. PC 텔레그램에 로그인됩니다. 전화번호로 로그인해도 됩니다.
7단계, BotFather로 텔레그램 봇 만들고 토큰 넣기
새 봇 만들기
- 텔레그램 검색창을 클릭하고
@botfather를 입력합니다. BotFather가 검색됩니다. - BotFather를 열고 시작(Start)을 누릅니다. 명령어 목록이 쭉 나옵니다.
- 목록 맨 위의
/newbot을 클릭합니다. 채팅창에 직접 입력해도 됩니다. 새 봇 이름을 정하라는 메시지가 옵니다. - 봇의 이름(name)을 입력해 전송합니다. 편한 대로 지어도 됩니다. 이번엔 username을 정하라는 메시지가 옵니다.
- 봇의 username을 입력합니다. 끝이 반드시
bot으로 끝나야 합니다.
흔한 이름은 이미 사용 중이라 여러 번 거절당했습니다. 숫자를 섞어 고유하게 만들면 됩니다. 중복이 아니면 봇 생성 완료 메시지가 옵니다.
봇 토큰을 헤르메스에 붙여넣기
- 생성 메시지에서
HTTP API라고 쓰인 줄 아래의 토큰 한 줄을 드래그해 복사합니다. - 헤르메스 텔레그램 설정의 Bot Token 칸에 붙여넣습니다.
- Save Changes를 누릅니다.
이 토큰은 공개되면 안 됩니다. 화자도 화면에서 모자이크 처리합니다.
내 봇 채팅방 열어 보기
- BotFather 채팅창 위쪽의 내 봇 링크를 클릭합니다. 봇 채팅방이 열리고 시작 버튼이 보입니다.
- 시작 버튼을 누릅니다.
- 채팅창에
test를 보내 봅니다. 아직 반응이 없습니다. 유저 ID 등록이 남았으니 정상입니다.
8단계, 텔레그램 유저 ID 등록하고 헤르메스 게이트웨이 재시작
@userinfo로 내 아이디 얻기
- 텔레그램 검색창에
@userinfo를 입력합니다. userinfo 봇이 검색됩니다. - userinfo 봇을 열고 시작 버튼을 누릅니다. 내 계정 정보가 나옵니다.
- 출력된 내용의 첫 줄(아이디 숫자)을 드래그해 복사합니다.
허용 사용자 설정 저장하기
- 헤르메스의 Telegram User ID 칸에 붙여넣습니다.
- Save Changes를 누릅니다.
- "모든 유저에게 허용" 항목에
False를 입력합니다. 나만 쓸 것이기 때문입니다. - 나머지 칸은 비워 두고 Save Changes를 누릅니다. "Saved" 메시지가 나옵니다.
다른 사람과 같이 쓸 거면 True를 넣습니다. 다만 로컬 환경에서 여러 명이 같이 쓰기는 쉽지 않다고 화자는 말합니다.
게이트웨이 stop 후 restart
- 텔레그램에서 다시
test를 보냅니다. 여전히 답이 없고, 헤르메스에 "메시징 게이트웨이가 Stop 상태"라고 표시됩니다. - 헤르메스를 끄고 파워셸을 새로 엽니다.
- 아래 명령으로 게이트웨이(헤르메스와 메신저를 이어 주는 상시 실행 프로그램)를 멈춥니다.
hermes gateway stop
- 이어서 게이트웨이를 다시 시작합니다. "게이트웨이가 시작됐다"는 메시지가 나옵니다.
hermes gateway restart
- 헤르메스를 다시 켜고 Messaging을 누릅니다. Connecting 상태로 바뀝니다.
- 텔레그램에서 다시
test를 보냅니다. "Hello, 오늘 내가 어떻게 도와줄까?" 같은 답장이 옵니다. 한글로라고 보냅니다. LLM 서버 쪽 로그가 뜨면서 한국어 답변이 옵니다.- 헤르메스 데스크톱 앱을 완전히 종료해 봅니다. 앱을 꺼도 텔레그램에서 대화가 계속됩니다.
헤르메스 왼쪽 아래 "텔레그램" 항목에서 대화 내역을 볼 수 있지만, 대화 내용이 빠지는 경우가 있으니 맹신하지 말라는 당부가 있습니다.
9단계, 텔레그램으로 웹 검색·파일·이미지 시험하기
웹 검색
- 웹 검색이 필요한 질문을 보냅니다. 시연에서는 "5800 X3D 10주년 에디션"을 물었습니다.
- 셸 명령이 실행되며 덕덕고와 야후에서 검색한 뒤 답을 줍니다.
MCP(AI가 외부 도구를 쓰게 하는 연결 규격)를 따로 연결하지 않아도 헤르메스가 웹 검색용 도구를 자동으로 연동합니다.
바탕화면 파일 읽고 고치기
- 바탕화면에 아무 텍스트 파일 하나를 만들어 둡니다.
- 텔레그램에서 "바탕화면에 있는 텍스트 파일 리스트를 불러줘"라고 보냅니다. 파일 목록과 내용까지 읽어서 답합니다.
- "이 파일을 수정해서 저장해 줘"라고 보냅니다. 저장했다는 답이 오고, 실제 파일을 열면 수정돼 있습니다.
이미지 붙여넣어 질문하기
멀티모달 파일을 함께 올렸을 때만 됩니다.
- 이미지를 클립보드에 복사합니다.
- 텔레그램 입력창에서
Ctrl+V로 붙여넣습니다. 파일로 저장할 필요가 없습니다. - 이미지와 함께 질문을 적어 전송합니다. 이미지 내용을 분석한 답이 옵니다.
음성 메시지는 실패했다
음성 메시지는 시도하지 않아도 됩니다. Qwen에서도, 음성 멀티모달이 된다는 Gemma4로 바꿔서도 실패했습니다. 화자의 진단은 헤르메스가 LLM으로 음성을 넘기는 단계의 문제이고, 영상 안에서 끝내 해결되지 않았습니다. 전달 전에 음성을 텍스트로 바꾸면 성공할 것 같다는 추측만 남습니다.
바이브 코딩 1단계, 작업 명세서부터 쓰게 하기
여기부터가 본론입니다. 순서가 고정입니다. 작업 명세서 → 개발 기획서 → 개발.
요구사항을 생각나는 대로 길게 쓰기
- 만들 프로그램의 요구사항을 생각나는 대로 길게 타이핑합니다.
프로그램 개발은 기획이 반이라 할 정도로 기획을 잘 해 주는 게 정말 중요하다는 것이 화자의 지론입니다. 실제로 넣은 요구사항은 이렇습니다.
- 무엇을 만들지: llama-server를 실행해 주는 GUI 프로그램, EXE로 빌드
- 동작:
C:\LLM안에서llama로 시작하는 폴더 중 최상위 버전을 자동으로 찾아 그 안의llama-server를 실행 - CUDA / VULKAN / HIP 각 폴더 경로를 알려 주고 GUI에서 고르게
- 모델 경로와 멀티모달 경로를 선택하거나 직접 입력할 수 있게
- 입력 타입 명세: 숫자 칸은 숫자만, 선택은 셀렉트 박스, 체크박스, temp는 0~1을 0~100%의 수평 스크롤바로
- 로그 레벨 5를 고른 경우에만 파싱 스크립트 코드가 명령어 끝에 붙도록, 0~4면 붙지 않도록
- 듀얼 GPU 테스트 옵션
- 실행 버튼을 누르면 GUI 창을 닫고 파워셸을 열어 실행
C:\LLM폴더 경로 자체도 바꿀 수 있게- 실행한 값을 저장했다가 재실행하면 자동 세팅
- 모델 경로 히스토리를 기억해 클릭으로 고를 수 있게, 멀티모달 경로도 세트로 기억
명세서만 쓰고 멈추게 하는 두 문장
- 프롬프트 끝에 아래 문장을 넣습니다. 내가 눈으로 검수하는 절차가 필요하기 때문입니다.
당장 만들지 말고 작업 명세서를 먼저 작성해라
- 작업 폴더를 지정합니다. "바탕화면에
LLM 구동기폴더를 만들고 그 안에 작업 명세서 마크다운 파일을 만들어라"처럼 폴더와 파일 경로를 적어 줍니다. - 아래 문장도 넣습니다.
개발 기획서는 나중에 내가 따로 시킬 테니 지금은 작성하지 말고 대기해라
이 문장을 안 적어 두면 AI가 작업 명세서를 끝내고 개발 기획서까지 제멋대로 써 버립니다. 세 부분을 합친 프롬프트는 아래 모양이 됩니다. 요구사항 목록을 붙여 편집자가 정리한 예시입니다.
llama-server를 실행해 주는 GUI 프로그램을 만들고 EXE로 빌드하려고 한다.
요구사항: [위 요구사항 목록을 생각나는 대로 길게]
바탕화면에 "LLM 구동기" 폴더를 만들고 그 안에 작업 명세서 마크다운 파일을 만들어라.
당장 만들지 말고 작업 명세서를 먼저 작성해라.
개발 기획서는 나중에 내가 따로 시킬 테니 지금은 작성하지 말고 대기해라.
- 프롬프트를 전송합니다. 폴더가 만들어지고 작업 명세서 파일이 생깁니다.
사람이 명세서를 끝까지 읽고 고치기
- 생성된 작업 명세서를 처음부터 끝까지 직접 읽고 고칠 점을 적습니다.
- 고칠 점을 모아 "이걸 반영해서 작업 명세서를 구체적으로 디벨롭해라"라고 보냅니다. 명세서가 업데이트됩니다.
- 업데이트된 명세서를 다시 읽고, 필요하면 수정 지시를 반복합니다.
실제로 지적한 유형은 이렇습니다.
- 내가 적은 내용을 빠뜨린 부분은 명시하거나 디벨롭하라고 지시
- 구체적 내용이 아래에만 있고 위에 없으면 위에 "몇 항 참조"라고 적으라고 지시
- "선택사항이지만 권장"이라고 써 놓은 것은 내가 결정해서 필수로 변경
- "코드에 주석을 작성하자"를 추가
반복하다 보면 명세서에 "로그 레벨 5 선택 시 명령어 맨 끝에 이 파워셸 스크립트를 정확히 붙여라" 같은 예시까지 들어갑니다. 기획 단계에서 품을 많이 들여야 나중에 고생을 덜합니다.
명세서가 충분한지 판단하는 기준
판정 기준은 하나입니다. 이 봇이 아니라 다른 AI가 이 명세서만 보고도 개발할 수 있어야 합니다. 그래야 세션의 컨텍스트가 오염됐을 때 새 세션에서 이어 갈 수 있습니다.
이렇게까지 하는 이유는 세 가지입니다. 컨텍스트가 차면 LLM이 멍청해집니다. 수정 개발은 코드를 오염시킵니다. A는 정상인데 B를 고치라고 하면, B의 목적을 이루려고 A를 마음대로 건드립니다. 그리고 문서가 있으면 세션을 통째로 버리고 새 세션에서 "명세서 두 개만 읽고 개발해라"로 이어 갈 수 있습니다.
바이브 코딩 2단계, 개발 기획서 쓰게 하기
기획서 프롬프트에 넣을 여섯 가지
- "개발 기획서를 작성해라"라고 지시하면서 아래 조건을 함께 넣습니다.
- 어느 기능부터 개발할지 단계별로 명시하라
- 각 기능에 어떤 로직이 들어갈지 적어라
- 하나의 파일에 누적하지 말고 기능 단위로 쪼개라. 파일이 크면 매번 다 읽느라 컨텍스트를 낭비한다
- 단, 파일끼리의 상호 의존성은 최소화하라. A를 고치고 B를 안 고치는 사고를 막기 위해서다
- 절대 경로(C:\부터 적는 경로)는 절대 쓰지 말고 상대 경로로 써라. 프로그램을 옮기면 동작하지 않는다
위 조건을 한 번에 붙여 쓰면 아래와 같습니다. 편집자가 정리한 예시입니다.
작업 명세서를 바탕으로 개발 기획서를 작성해라.
어느 기능부터 개발할지 단계(Step)별로 명시하고, 각 기능에 들어갈 로직을 적어라.
하나의 파일에 누적하지 말고 기능 단위로 파일을 쪼개되, 파일 간 상호 의존성은 최소화해라.
절대 경로는 절대 쓰지 말고 상대 경로만 써라.
작업 명세서만 있으면 기획서는 다른 봇이나 새 세션에 시켜도 됩니다.
파일별 역할과 테스트 계획 보강하기
- 나온 개발 기획서를 읽고 검수합니다. 소스 파일 개수(화자 사례 7개), 빌드 산출물(EXE·config·로그 3개), 의존성 다이어그램 등이 보입니다.
- "파일별 역할 및 의존성을 더 구체적으로 명시해라"라고 지시합니다. 각 파일의 용도·호출 위치·로직이 자세해집니다. 내가 보려는 게 아니라 다음 타자가 오해하지 않게 남기는 겁니다.
- "각 단계가 끝나면 바로 테스트 가능하도록 수정하고, 테스트 계획까지 수립해라"라고 지시합니다. 스텝별 테스트 계획이 추가됩니다.
- "스텝 순서를 바꾸는 것까지 고려하라"를 덧붙입니다. AI가 순서를 유연하게 재배치합니다.
- "테스트는 개발 지식 없는 제3자가 진행한다. 그 사람도 알아먹게 방법과 기대 결과를 구체적으로 써라"라고 지시합니다. "더블클릭 → 파일 내용 확인" 수준으로 테스트 절차가 구체화됩니다.
스텝별 테스트를 고집하는 이유가 있습니다. AI는 "Step 1~4를 한 번에 개발하고 빌드해서 테스트하겠다"고 하는데, 그러면 Step 2 에러를 고치다 Step 1과 3을 건드립니다. 순서 재배치를 허용하는 것도 같은 이유입니다. 로그 기능부터 만들면 눌러 볼 GUI가 없어 테스트가 불가능합니다.
바이브 코딩 3단계, 새 세션에서 개발 시작하기
/new로 세션 비우기
- 채팅창에
/를 입력하고/new명령을 클릭합니다. "현재 대화 내역을 버리고 새 세션을 시작한다"는 확인이 나옵니다. - 승인합니다. "세션이 리셋되었다"고 뜹니다.
명세서 맨 앞에 지시 프롬프트 붙이기
- 맨 처음 쓴 지시 프롬프트 전문을 복사합니다.
- 작업 명세서 맨 앞에 "0. 지시 프롬프트"라는 항목을 만들어 붙여넣고 저장합니다.
- 그 위에 아래 설명 문구를 달아 둡니다. 개발을 맡을 다음 AI의 이해를 돕기 위해서입니다.
최고 지시자에 의해서 작성된 지시 프롬프트로, 본 작업 명세서는 이걸 기반으로 작성되었다.
전문 개발자 역할 주고 개발 지시하기
- 새 세션에 작업 폴더 경로를 붙여넣고, 이 폴더 안에 작업 명세서와 개발 기획서가 있다고 알립니다.
- "너는 전문 개발자다"라고 역할을 줍니다.
- "프로그램 개발을 진행해라"라고 지시합니다. 전력 소비가 올라가고, 먼저 파일을 읽은 뒤 개발이 시작됩니다.
세 줄을 합치면 이렇습니다.
[작업 폴더 경로]
이 폴더 안에 작업 명세서와 개발 기획서가 있다.
너는 전문 개발자다. 프로그램 개발을 진행해라.
툴 콜링(AI가 도구를 쓰려는 요청) 승인 창이 뜰 수 있습니다. 판단해서 "이번만 승인"이나 "항상 승인"을 누릅니다.
에이전트는 로컬 파일에 자동으로 접근하는 권한을 가진 채 돕니다. 잘못 건드리면 파일을 다 지울 수도 있어서, 보통은 도커(프로그램을 격리된 상자 안에서 돌리는 도구)로 격리된 작업 환경을 만들어 그 안에서 돌린다는 경고가 나옵니다. 화자는 망가져도 OS를 다시 깔면 되는 PC라서 전부 승인했습니다. 중요한 파일이 있는 PC라면 따라 하지 않는 편이 낫습니다.
스텝별 개발, 테스트, 수정 루프 돌리기
한 스텝 개발 → 빌드 → 테스트 → 수정 반영 → 다음 스텝. 여러 스텝을 한 번에 시키지 않습니다.
AI가 테스트까지 해 버릴 때
- AI가 테스트까지 제멋대로 해 버리면 즉시
/stop을 보냅니다. 한 번에 안 멈추면 한 번 더 보냅니다. 시연에서도 두 번 보냈습니다. - 잘못 만들어진 소스 코드를 삭제합니다.
- 아래처럼 역할을 다시 못박습니다.
개발 소스 코드는 내가 삭제했다. 명세서에 따르면 너는 Step 1을 개발하고
테스트 대기를 해야 한다. 너는 개발자지 테스터가 아니다.
개발이 완료되면 대기해라. 테스트 결과는 내가 전달해 주겠다.
AI가 규칙을 이해하고 다시 시작합니다.
사람이 직접 테스트하기
- 개발이 끝났다는 보고를 받으면 AI가 알려 준 테스트 방법대로 직접 테스트합니다. 명세서에 적힌 생성 파일(로그·config 등)이 실제로 생기는지 봅니다.
- 테스트용
.py파일이 더블클릭으로 실행되지 않으면 "파이썬 파일 실행을 배치 파일로 만들어 달라"고 지시합니다.
시연에서도 .py 파일은 더블클릭으로 열리지 않았고 파이썬 경로로 실행해야 했습니다. "네가 다 해 줘야지, 내가 그걸 알아서 하는 건 말이 안 되지 않냐"는 것이 화자의 태도입니다.
결과 전달하고 다음 스텝으로
- 테스트 결과(성공·실패·에러 메시지)를 그대로 AI에게 전달하고 수정을 요구합니다.
- 수정이 끝나면 아래 문장을 붙여 다음 스텝으로 넘어갑니다. 매번 같은 문장을 덧붙였습니다.
테스트 생성 파일은 삭제하고 스텝 N으로 넘어가자.
테스트 준비까지 끝나면 보고해라. 앞으로도 쭉 그렇게 작업해라.
에러 전달 요령과 할루시네이션 대처
- 에러 로그는 통째로 복사하되, 맨 위에 "에러 나는데?" 한 줄을 붙입니다. 그래야 AI가 빨리 파악합니다
- AI가 없는 폴더를 있다고 우기면(할루시네이션, AI가 사실이 아닌 것을 지어내는 현상) 실제 경로를 알려 주고 따끔하게 지적합니다
- 검수를 AI에게 맡기려면 같은 세션이 아니라 다른 세션이나 다른 AI에게 시킵니다. 같은 세션은 자기 말이 맞다고 생각합니다
- 원인을 못 찾으면 "원인 파악 방법부터 제안해라"라고 시킵니다. 헛손질할수록 코드가 망가집니다
빌드하고 EXE 결과물 검증하기
앞 루프를 다 돌고 GUI 테스트까지 통과한 뒤에 합니다.
빌드 지시에 반드시 넣을 네 가지
- "개발이 완료된 것 같으니 테스트 파일을 지우고 빌드를 진행해라"라고 지시합니다.
- 같은 지시에 "경로 체크를 한 번만 더 해 달라"를 반드시 덧붙입니다. AI가 경로 관련 소스를 다시 읽습니다.
- "개발 기획서에서 추가로 수정한 내용까지 반영해 완료보고서를 작성해 둬라"라고 지시합니다. 나중에 기능을 더하거나 오류를 고칠 때 무엇이 바뀌었는지 알 수 있습니다.
- "기존 소스 코드는 삭제하지 말고 유지해라"라고 덧붙입니다. 유지 보수를 위해서입니다.
한 번에 보내면 이렇습니다. 편집자가 합친 예시입니다.
개발이 완료된 것 같으니 테스트 파일을 지우고 빌드를 진행해라.
빌드 전에 경로 체크를 한 번만 더 해 달라.
개발 기획서에서 추가로 수정한 내용까지 반영해 완료보고서를 작성해 둬라.
기존 소스 코드는 삭제하지 말고 유지해라.
경로 체크 한 줄 덕분에 로그 파일 경로 생성 버그를 잡아냈습니다. 마지막에 경로를 한 번 더 확인해 달라고 하지 않았으면 못 잡았을 거라는 것이 화자의 회고입니다.
다른 폴더로 옮겨 실행해 보기
- 빌드 폴더 안에 실행 파일이 생겼는지 확인합니다.
- 빌드된 실행 파일을 전혀 다른 폴더로 복사해 거기서 실행합니다. 다른 위치에서도 정상 실행되면 상대 경로가 제대로 적용됐다는 뜻입니다.
"절대 경로 쓰지 마라"라는 지시의 최종 검증이 이 단계입니다.
명령어 확인과 생성 파일 3개 점검
- 모델을 하나 세팅하고 로그 레벨을 5로 둔 뒤 "명령어 확인"을 누릅니다. 명령어 끝에 파싱 스크립트가 붙어 있어야 합니다. 이거 중요합니다.
- 실행 버튼을 누릅니다. llama-server가 정상 실행됩니다.
- 창을 닫고 생성된 파일 3개를 확인합니다. 실행 로그, config.json(히스토리 저장됨), LLM Launcher 로그입니다.
로그 내용이 많아 오래 쓰면 파일이 커질 수 있으니 한 번씩 지워 주면 됩니다.
로컬 LLM 무한루프 감시와 탈출법
이건 순서대로 한 번 하고 끝나는 단계가 아닙니다. 개발 루프 내내 상시로 하는 일입니다.
HWiNFO로 GPU 전력 그래프 띄우기
- HWiNFO를 실행합니다. 센서 화면이 뜹니다.
- 그래픽카드 항목에서 GPU 전력 소모 항목을 찾습니다.
- 그 항목을 더블클릭합니다. 그래프 창이 열립니다.
- 최대값을 내 GPU의 최대 전력으로 설정합니다. 5090은 600이라 창이 600W 스케일로 열립니다.
그래프와 로그로 무한루프 판별하기
- 그래프가 올라와 있고 로그의 핵심 키워드가 계속 바뀐다: 정상 작업 중입니다. 기다립니다
- 올라와 있는데 같은 문장이 계속 반복된다("I will use ~", "I will make sure ~"): 무한루프 의심입니다
- 그래프가 쭉 내려간다: 작업이 끝났습니다. 텔레그램을 열어 결과를 확인하고 테스트합니다
판별 기준이 하나 더 있습니다. 평소 1분도 안 걸릴 작업이 5~10분 넘게 안 끝나면 딴짓이거나 무한루프이거나 대기 중입니다. 방치하면 화자 환경에서 560W를 계속 먹으며 밤새 전기세를 낭비합니다.
무한루프 탈출 순서
- 아무 메시지나 하나 보냅니다. 헤르메스에 인터럽트가 걸리며 제정신으로 돌아와 하던 작업을 이어 갑니다.
- 1~3번 반복해도 안 되면
/stop명령을 보냅니다. 한 번에 안 멈추면 한 번 더 보냅니다. - 그래도 안 되면 llama-server 창에서
Ctrl+C로 강제 종료하고 다시 실행합니다. - 멈춘 뒤 "문제를 찾았다. 다시 실행해라"라고 지시합니다. 작업이 재개됩니다.
아직 없는 근본 해결책
근본 해결책은 영상에 없습니다. 모니터링하고 있지 않으면 무한루프인지 알 방법이 없다는 것을 화자 스스로 인정하고, 댓글로 해결책을 구합니다. 검토 중인 아이디어는 로그를 메신저로 전달하거나, Gemma4 E2B 같은 작은 모델을 로그 감시용 서브 에이전트로 하나 더 올리는 것입니다.
개발 중 실제로 터진 문제들
겪은 순서 그대로입니다.
- Step 1 테스트를 AI가 제멋대로 해 버림:
/stop두 번, 소스 삭제, "너는 개발자지 테스터가 아니다" 재지시 - config.json의 컨텍스트 사이즈가 4096으로 바뀌고 값이 2개에서 4개로 늘어남: 지적해서 수정. AI의 답은 "테스트 로직상 변경된 것"
- 파이썬 파일이 더블클릭으로 실행 안 됨: 배치 파일을 만들어 달라고 지시
- Step 2 테스트 중 무한루프,
--temp 0.2가 반복 출력됨: 인터럽트 - AI가 없는 폴더 경로를 있다고 답함: 실제 경로를 알려 주고 에러 지점을 명시
- GUI를 개발해 놓고도 CLI(명령어 창)로 대충 넘어가려 함: "빌드해서 테스트 준비하라" 지시, GUI 실행 배치 파일 생성
- main-gpu 값이 0이면 명령어에 안 나옴(그래픽카드 번호는 0부터 시작): 수정 지시
- 실행하면 GUI가 꺼져 명령어를 볼 수 없음: 실행 로그(날짜·시간·폴더·명령어) 남기기 기능 추가
- 모델과 mmproj의 히스토리 세트 저장이 계속 틀림: 여러 번 테스트·수정. 원인은 기존 중복 제거 로직이 공백을 지우는 것이었음
- 빌드 직전 "경로 한 번만 더 확인" 지시: 로그 파일 경로 생성 버그를 잡아냄
경로 구분 기호로 /를 쓸 때도 \를 쓸 때도 있는데, 그냥 동작하는 쪽을 쓰면 된다는 조언도 곁들여집니다.
로컬 LLM 바이브 코딩에서 자주 막히는 곳과 해결
- llama-server가 안 뜬다: 모델 파일 경로·파일명 오타입니다. 4비트 양자화 파일의
_S접미사까지 정확히 복사했는지 봅니다 - GPU 공유 메모리가 볼록하게 튀어나온다: 메모리 오프로드가 생겼습니다. 컨텍스트 사이즈를 줄입니다. 화자는 20만
- 서버 주소(포트)를 못 찾겠다: 로그 파싱 옵션이 로그를 다 지운 겁니다. 파싱 옵션을 뺀 채 한 번 실행해 주소를 확인하고 다시 붙여 재실행합니다
- 파일 저장을 시켰는데 엉뚱한 위치에 저장됐다: 그 폴더에 쓰기 권한이 없어 사용자 홈 디렉터리로 갔습니다. 권한을 주거나 다른 경로를 지정합니다
- 텔레그램에 보내도 반응이 없다(1): 유저 ID 미등록입니다. @userinfo로 ID를 얻어 Telegram User ID에 넣고 Save Changes
- 텔레그램에 보내도 반응이 없다(2): 메시징 게이트웨이가 Stop입니다.
hermes gateway stop뒤hermes gateway restart - 봇 username이 계속 거부된다: 이미 사용 중인 이름입니다. 숫자를 섞고, 끝은 반드시
bot - 음성 메시지에 답을 못 한다: 헤르메스에서 LLM으로 넘기는 단계의 문제로 보이며 영상 안에서 해결되지 않았습니다. Gemma4로 바꿔도 실패했습니다
- 로그에 같은 문장이 반복된다: 무한루프입니다. 아무 메시지나 보내 인터럽트, 안 되면
/stop, 그래도 안 되면 llama-server 재기동 - 로그가 반복 같은데 핵심 키워드가 바뀐다: 무한루프가 아니라 작업 중입니다. 기다립니다
- AI가 시키지도 않은 테스트까지 해 버린다: 역할을 못박지 않았습니다.
/stop뒤 소스 삭제, 역할 재지시 - 테스트용
.py가 더블클릭으로 안 열린다: 배치 파일을 만들어 달라고 지시합니다 - 고칠수록 코드가 더 망가진다: "원인 파악 방법부터 제안해라"라고 시켜 로그 같은 디버깅 수단을 먼저 만들게 합니다
- 같은 세션에 검수를 시켰더니 다 맞다고 한다: 다른 세션이나 다른 AI에게 검수를 맡깁니다
- 작업이 점점 느려진다: 컨텍스트가 꽉 찼습니다.
/new로 새 세션을 열고 명세서 두 개만 읽혀서 이어 갑니다 - 프로그램을 옮기면 동작하지 않는다: AI가 절대 경로를 썼습니다. 기획서에 "상대 경로만"을 명시하고 빌드 전 경로 체크를 지시합니다
- 히스토리 값이 저장되지 않는다: 시연에선 기존 중복 제거 로직이 공백 값을 지우고 있었습니다. 테스트 절차를 그대로 전달하고 config.json을 확인시킵니다
헤르메스와 작업물 되돌리는 법
- llama-server 정지: 실행 중인 터미널에서
Ctrl+C - 헤르메스 게이트웨이 정지: 파워셸에서
hermes gateway stop - 헤르메스 완전 제거: 이 글 1단계가 곧 제거 절차입니다.
.hermes, Local의Hermes, Roaming의Hermes, 바로가기를 지웁니다. 제어판 목록에 있으면 거기서 먼저 제거합니다 - 프로젝트 정리: 바탕화면
LLM 구동기폴더를 지웁니다. 다만 기존 소스 코드는 남겨 둬야 유지 보수가 가능합니다 - 로그 파일 정리: LLM Launcher 로그는 오래 쓰면 커지므로 한 번씩 지웁니다
결과물 크기와 개발 시간, 화자의 총평
스텝당 1~3분, 빌드 파일 10MB
단일 스텝 개발은 1~3분, 오래 걸린 수정이 6분 수준이었습니다. 빌드 산출물은 EXE 실행 파일, config 파일, 로그 파일 세 개이고, 빌드 파일 크기는 10MB입니다.
비교 대상이 있습니다. 화자가 예전에 하나의 파일로 만들었던 버전은 63MB였고, 고칠 때마다 그 큰 파일을 전부 읽느라 너무 느렸습니다. 파일을 기능 단위로 쪼개라는 지시가 여기서 나왔습니다.
전문 개발자라면 하루에서 일주일
화자의 추정으로는 전문 개발자가 직접 만들었다면 빠르면 하루, 늦으면 3일, 막히면 일주일 걸릴 일입니다. 그런데 주력 언어도 아닌 파이썬으로, 코드를 자세히 보지도 않고 끝냈습니다. 본인이 한 일은 전체 개발 프로젝트를 관리한 것, 개발자가 헛손질하지 않도록 최대한 도와준 것이라고 정의합니다.
전기세 반론과 다음 방향
토큰 비용은 0원이고 대신 전기세가 나갑니다. "그 정도 전기세면 프론티어 모델을 구독한다"는 반론이 있을 수 있다고 화자도 인정하면서, 로컬에서만 되는 것도 있다고 덧붙입니다. 다음 방향으로 제시한 조합은 검증은 프론티어 모델(코덱스)에게, 개발은 로컬 모델에게 맡기는 것입니다.
후속으로 예고한 주제는 GitHub 연동(코드 오염 방지), 도커 샌드박스로 에이전트 격리, VS Code 같은 IDE(코드 편집 프로그램) 연동, 디스코드·슬랙 협업 세팅, 시청자가 댓글로 제안한 프로그램 만들기입니다. IDE 연동을 두고는 "그게 찐 바이브 코딩"이라고 말합니다.
자주 묻는 질문
로컬 LLM 바이브 코딩은 정말 비용이 0원인가요?
토큰 비용은 0원이지만 전기세가 듭니다. 영상의 RTX 5090 환경에서는 무한루프에 빠지면 GPU가 560W를 계속 쓰므로, 전력 그래프로 감시하며 쓰는 것이 좋습니다. 그래픽카드 구매비도 따로 생각해야 합니다.
그래픽카드가 약해도 헤르메스 에이전트를 쓸 수 있나요?
쓸 수 있습니다. 간단한 파일 작업 정도는 Gemma4 E2B 급 작은 모델로도 되고, 로컬 모델 없이 유료 프론티어 모델을 헤르메스에 연결해도 같은 방식으로 쓸 수 있습니다. 다만 작은 모델로 영상 수준의 프로그램 개발이 되는지는 영상에서 확인되지 않았습니다.
헤르메스 텔레그램 봇이 답을 안 하면 어떻게 하나요?
먼저 @userinfo로 얻은 내 유저 ID를 헤르메스의 Telegram User ID 칸에 넣고 저장했는지 확인합니다. 그래도 안 되면 메시징 게이트웨이가 Stop 상태일 가능성이 크니, 파워셸에서 hermes gateway stop 뒤 hermes gateway restart를 실행합니다.
로컬 LLM이 무한루프에 빠졌는지 어떻게 아나요?
GPU 전력이 높게 유지되는데 로그에 같은 문장이 계속 반복되면 무한루프를 의심합니다. 평소 1분 안에 끝날 작업이 5~10분 넘게 걸리는 것도 신호입니다. 아무 메시지나 보내 인터럽트를 걸고, 안 되면 /stop, 그래도 안 되면 llama-server를 재시작합니다.
AI에게 바로 코딩을 시키면 안 되나요?
로컬 LLM은 컨텍스트가 차면 앞 내용을 잊고, 수정을 거듭하면 멀쩡한 코드까지 건드리기 쉽습니다. 작업 명세서와 개발 기획서를 먼저 쓰게 해 두면 세션이 오염돼도 새 세션에서 문서만 읽혀 이어 갈 수 있습니다. 그래서 영상은 명세서 → 기획서 → 스텝별 개발 순서를 고정합니다.
이 글은 Soul Seeker 채널 영상(1시간 26분 46초)의 자막만 근거로 정리했고(빠른 모드), 화면은 대조하지 못했습니다. llama-server 명령 예시와 합쳐 둔 프롬프트 예시는 편집자가 만든 것이며, 화자의 로그 파싱 스크립트는 공개되지 않아 넣지 못했습니다. 헤르메스 에이전트 사이트 주소는 자막에 "hermes-agent.nosresearch.com"으로 찍혀 있어 제작사 이름에 맞게 바로잡았습니다.
출처: youtu.be/…