오늘 끝나면
코딩 에이전트의 원리
- ✓코딩 에이전트의 원리의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 코딩이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
LLM + 도구(읽기·쓰기·실행) 루프가 전부임 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
바이브코딩 · 02
코딩 에이전트의
원리
에이전트는 LLM에 도구 루프를 붙인 것이다.
생각하고, 도구를 호출하고, 결과를 보고, 다시 반복한다.
이 한 바퀴가 코딩 에이전트의 전부다.
LLM은 다음 토큰 예측기다
에이전트의 뇌는 LLM이다. LLM이 하는 일은 딱 하나다.
지금까지의 글을 보고 다음 토큰을 예측한다.
토큰은 글자 조각이다. 단어보다 작은 단위로 글을 쪼갠 것이다.
LLM은 “포트를 8080으로” 다음에 뭐가 올지 확률로 고른다. 그걸 한 토큰씩 이어 붙여 문장을 만든다.
그래서 LLM 혼자서는 파일을 읽지도 못하고 코드를 돌리지도 못한다. 글만 이어 쓴다.
파일을 진짜 만지려면 손이 필요하다. 그 손이 다음 칸에서 다룰 도구다.
포트를 8080으로 ▮
가장 확률 높은 토큰 1개를 골라 이어 붙인다. 이걸 반복한다.
에이전트 = LLM + 도구 루프
LLM에 손을 달면 에이전트가 된다. 그 손이 도구(tool)다.
파일 읽기, 파일 쓰기, 셸 실행 같은 기능이다.
작동은 한 바퀴를 계속 돈다.
먼저 생각하고(think), 도구를 호출하고(act), 결과를 보고(observe), 다시 생각한다.
이 루프가 핵심이다. 한 번에 끝내는 게 아니라, 결과를 보고 다음 행동을 정한다.
틀리면 다시 읽고 고친다. 다 됐다 싶으면 루프를 멈추고 답을 적는다.
채팅 LLM과 코딩 에이전트의 차이가 바로 이 도구 루프다.
포트를 보려면 파일을 읽자
read(config.json)
port: 3000
루프를 직접 돌려보자
시킨 일은 “config.json 포트를 8080으로”다.
에이전트는 곧장 답을 적지 못한다. 지금 파일이 어떤 상태인지 모르기 때문이다.
그래서 먼저 read로 읽고, write로 고치고,run으로 확인한다.
한 박자씩 진행하면 도구를 부른 결과(observe)가 다음 생각의 재료가 된다.
할 일을 다 하면 루프가 DONE으로 멈춘다.
config.json의 포트를 8080으로 바꿔줘
에이전트는 곧장 답을 못 적는다. 파일을 읽고·고치고·확인하는 도구 루프를 돌아야 한다. 아래 → 다음을 눌러 한 박자씩 돌려 보자.
아직 호출 없다
컨텍스트 창에 다 담아 추론한다
에이전트는 컨텍스트 창에 쌓인 글을 보고 다음 토큰을 고른다.
컨텍스트 창은 모델이 한 번에 읽을 수 있는 글의 공간이다.
시킨 일과 읽은 코드, 방금 도구가 돌려준 결과가 전부 여기에 글로 쌓인다.
그래서 도구로 파일을 읽으면, 그 내용이 컨텍스트에 들어가 추론의 재료가 된다.
창은 무한하지 않다. 너무 많이 쌓이면 넘친다. 그래서 무엇을 담느냐가 품질을 정한다.
이 맥락 관리가 다음 강(컨텍스트와 프롬프트)의 주제다.
포트를 8080으로 바꿔줘
{ "port": 3000 }
write → 1 line changed
run grep → "port": 8080
창엔 한계가 있어 너무 쌓이면 넘친다. 그래서 무엇을 담을지가 품질을 정한다.
스킬 · 하네스 · 멀티에이전트
기본 루프는 하나다. 여기에 장치를 더하면 에이전트가 더 멀리 간다.
스킬(skill)은 자주 쓰는 절차를 패키지로 묶어 재사용한다. 매번 설명하지 않아도 된다.
하네스(harness)는 에이전트를 감싸는 실행 환경이다. 어떤 도구를 줄지, 권한을 어디까지 줄지 정한다.
멀티에이전트는 큰 일을 쪼개 여러 서브에이전트에 나눠 돌린다. 각자 자기 루프를 돈다.
전부 다음 강들에서 하나씩 다룬다. 지금은 한 가지만 챙기면 된다. 바닥엔 늘 think와 act와 observe 루프가 있다.
Q. LLM은 글만 이어 쓰는데, 에이전트는 어떻게 파일 수정과 코드 실행까지 하나?
정답은 도구(셸·파일)를 호출하는 루프를 돌기 때문이다.LLM 혼자서는 다음 토큰만 예측할 뿐 실제 동작은 못 한다.
에이전트는 think로 행동을 정하고, act로 read·write·run 같은 도구를 호출한다.
그 결과를 observe로 받아 다시 생각한다. 이 루프가 글을 실제 행동으로 바꾼다.
전부 다음 강에서 하나씩 다룬다