2. 챗봇 vs 에이전트
반복 루프, 상태, 도구호출 — 구조적으로 뭐가 다른가
🧒
초딩
1장에서 AI는 텍스트만 만든다고 했잖아요. 근데 Claude Code는 파일도 고치고 명령어도 실행하던데요? 모순 아니에요?🧑💻
코딩천재
모순처럼 보이지만 아니야. 질문 하나 할게 — 만약 모델이 "다음 할 일: 파일 X를 읽는다" 라는 텍스트를 출력했다고 치자. 그 텍스트를 사람이 읽고 "아 그럼 내가 파일을 읽어서 결과를 다시 알려줘야겠다"고 하면 어떻게 될까?🧒
초딩
그럼... AI가 시킨 걸 사람이 대신 해주고, 결과를 다시 AI한테 보여주는 거네요?🧑💻
코딩천재
정확해. 이제 그 "사람" 자리를 프로그램이 대신하면 어떻게 될까? 모델이 "파일 X를 읽어라"는 형식의 텍스트(도구 호출)를 출력하면, 프로그램이 그걸 감지해서 실제로 파일을 읽고, 그 내용을 다시 모델에게 텍스트로 넣어주는 거야. 모델 입장에서는 여전히 "텍스트 예측"만 하고 있는데, 그 텍스트가 우연히 "행동을 요청하는 형식"이라 프로그램이 대신 실행해주는 거지.💡 핵심
모델은 여전히 텍스트만 만듭니다. 다만 그 텍스트 중 일부를 "도구를 실행해달라"는 신호로 약속해두고, 그 신호를 감지해서 실제로 실행한 뒤 결과를 다시 모델에게 넣어주는 바깥쪽 프로그램이 있는 겁니다. 이 바깥쪽 프로그램(+반복 구조)을 에이전트 루프라고 부릅니다.
🧒
초딩
그럼 일반 챗봇(예전 챗지피티 초창기 같은)이랑 에이전트는 뭐가 다른 거예요?🧑💻
코딩천재
구조로 비교해볼까?
- 챗봇: 사용자 메시지 1개 → 모델이 텍스트 1개 생성 → 끝. 한 번 주고받으면 그 턴은 종료.
- 에이전트: 사용자 메시지 1개 → 모델이 텍스트 생성 → 그 안에 도구 호출이 있으면 프로그램이 실행 → 결과를 다시 모델에게 줌 → 모델이 또 텍스트 생성 → (도구 호출 없을 때까지 반복) → 마지막에 사람에게 진짜 답을 줌.
🧒
초딩
그럼 그 반복이 언제 끝나는지는 누가 정해요? AI가 무한히 계속 하면 어떡해요?🧑💻
코딩천재
좋은 질문이야. 모델 스스로가 "이제 도구 호출 없이 그냥 최종 답을 텍스트로만 낸다"를 선택하면 루프가 끝나. 프로그램은 "이번 출력에 도구 호출이 있는지 없는지"만 보고 판단해 — 있으면 한 바퀴 더, 없으면 종료. 그래서 이론적으로는 모델이 계속 도구를 부르면 루프가 길어질 수 있는데, 실제 시스템에는 보통 안전장치(최대 반복 횟수, 컨텍스트 윈도우 한계 등)가 있어서 무한정 돌지는 않아.🧒
초딩
Copilot 같은 자동완성이랑도 다른 거죠?🧑💻
코딩천재
맞아. Copilot 자동완성은 "다음 코드 몇 줄"을 예측만 하고 끝 — 도구 호출도, 반복 루프도 없어. 챗봇에 더 가까운 구조야 (한 번 예측하고 끝). 반면 에이전트는 "목표를 주면 스스로 여러 단계를 거쳐 끝낸다"는 게 핵심 차이야.