AI 에이전트 개발 학습 로드맵: 6단계 실습 과정
AI 에이전트를 처음부터 배우기 위한 6단계 학습 경로를 제시합니다. 개념 이해부터 루프 설계, 도구 활용, 메모리 및 안전성 구축까지 각 단계별로 반드시 만들어야 할 결과물을 포함하여 실무적인 개발 역량을 쌓는 방법을 설명합니다.
6단계 학습 경로
AI 에이전트를 처음부터 배우려면 개념, 첫 번째 루프, 도구, 메모리, 루프 설계, 안전이라는 6단계를 순서대로 진행해야 합니다. 각 단계마다 직접 손으로 구축해야 하는 결과물이 하나씩 있습니다. 단계를 건너뛰는 것은 학습이 정체되는 가장 흔한 원인입니다. 프레임워크는 여러분이 반드시 이해해야 할 핵심 부분을 숨겨버리기 때문입니다.
AI 에이전트는 언어 모델을 중심으로 도구를 호출할 수 있게 만든 루프입니다. 이 문장이 주제의 전부입니다. 그 뒤에 나오는 모든 내용은 루프에 무엇이 들어가는지, 도구가 무엇을 다룰 수 있는지, 그리고 루프가 잘못되었을 때 어떻게 멈추는지에 대한 세부 사항일 뿐입니다. 루프를 다른 사람에게 설명할 수 있다면, 여러분은 이 기술을 습득한 것입니다. 프레임워크 이름만 나열할 수 있다면, 아직 배운 것이 아닙니다.
아래 계획은 직접 구축하며 배우는 것을 전제로 합니다. 단계를 읽고, 작은 결과물을 만들고, 의도적으로 고장 내본 뒤 다음 단계로 넘어가십시오. 읽기만 한 단계는 완료한 단계가 아닙니다.
1단계 이전에 실제로 필요한 것
솔직한 사전 요구 사항 목록은 짧으며, 대부분의 강의 페이지에서 제시하는 것보다 간결합니다.
- 50줄 정도의 스크립트를 작성할 수 있는 수준의 Python 또는 TypeScript 읽기 및 쓰기 능력.
- Linux 셸 사용에 대한 익숙함: 패키지 설치, 파일 편집, 로그 읽기 수행 가능.
- 호스팅된 모델을 위한 API key 보유 또는 로컬에서 모델을 실행할 수 있는 장비.
이것이 목록의 전부입니다. 머신러닝 이론은 필요하지 않으며, 모델을 직접 학습시켜 본 경험도 필요 없습니다. 에이전트 작업 중 그 어떤 것도 그래디언트(gradient)나 학습 데이터와 관련이 없습니다. 그래픽 카드는 모델을 직접 실행하기로 결정했을 때만 중요하며, 이는 LLM을 자체 호스팅하기 위해 VPS에 Ollama 설치하기를 통해 나중에 익힐 수 있는 별도의 기술입니다.
사람들이 과소평가하는 부분은 셸과 관련된 절반의 영역입니다. 에이전트는 권한, 경로, 환경 변수, 그리고 조용히 종료되는 프로세스 문제로 인해 실패합니다. PATH 관련 스택 트레이스나 파일 모드 문제로 터미널을 닫고 싶어진다면, 먼저 주말을 투자해 Linux 기초를 다지십시오. 나중에 한 달의 시간을 절약하게 될 것입니다.
1단계: 에이전트의 정의와 비정의
루프 없이 단일 API 호출로 시작하십시오. 프롬프트를 전송하고 응답을 출력한 뒤, 응답에 포함된 토큰 수를 확인하십시오. 이제 비용과 지연 시간의 단위를 이해하게 될 것입니다.
그다음에는 도구 사용을 학습한다. 이 분야에서 실질적으로 새로운 개념은 이것뿐이다. 함수는 이름, 설명, 입력에 사용할 JSON (JavaScript object notation) 스키마로 모델에 정의한다. 모델은 아무것도 실행하지 않는다. 대신 구조화된 요청을 반환한다. run_command을 이러한 인수로 호출하라는 요청이다. 사용자 측 코드가 함수를 실행하고, 그 결과를 메시지로 보내고, 모델에 다시 요청한다. 모델은 텍스트를 읽고 텍스트를 작성하는 플래너다. 실제로 동작을 수행하는 것은 사용자 측 코드다. 설계를 비교하기 시작하면 이 교환에서 사용자 측 코드에는 이름이 생긴다. 바로 에이전트 하니스다. 자체 권한이 전혀 없는 모델을 둘러싼 루프, 도구, 권한의 묶음이다.
챗봇은 한 번의 응답으로 종료됩니다. 반면 에이전트는 모델이 도구 호출을 멈출 때까지 해당 과정을 반복합니다. 이 반복 여부가 두 개념의 근본적인 차이이며, 실패 유형이 다른 이유이기도 합니다. 챗봇은 잘못된 답변을 한 번 제공하는 데 그치지만, 에이전트는 잘못된 답변을 바탕으로 여러 번 행동을 수행한 뒤에야 문제가 드러납니다.
2단계: 루프를 직접 한 번 작성하기
프레임워크로 시작하지 마십시오. 약 30줄 정도의 Python 코드를 직접 작성하여 전체적인 구조를 파악하십시오.
sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/agent
source ~/agent/bin/activate
pip install anthropic
export ANTHROPIC_API_KEY=your-key-hereimport subprocess
import anthropic
client = anthropic.Anthropic()
tools = [{
"name": "run_command",
"description": "Run a read only shell command and return its output.",
"input_schema": {
"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"],
},
}]
messages = [{"role": "user", "content": "How much disk space is free here?"}]
while True:
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
tools=tools,
messages=messages,
)
if response.stop_reason != "tool_use":
break
messages.append({"role": "assistant", "content": response.content})
results = []
for block in response.content:
if block.type == "tool_use":
done = subprocess.run(
block.input["command"], shell=True,
capture_output=True, text=True, timeout=10,
)
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": done.stdout or done.stderr,
})
messages.append({"role": "user", "content": results})
print(next(b.text for b in response.content if b.type == "text"))python3 agent.py를 사용하여 실행하십시오. 정상적으로 실행되면 파일 시스템 이름과 여유 공간을 설명하는 문단이 출력됩니다. 이는 모델이 df -h를 요청했고, 작성한 코드가 이를 실행했으며, 두 번째 패스에서 해당 테이블을 문장으로 변환했기 때문입니다. 아무것도 출력되지 않는다면 텍스트 블록이 도착하기 전에 루프가 종료된 것입니다. 루프 내부에 print(response.stop_reason)를 추가하여 값이 변하는 과정을 확인하십시오.
이제 의도적으로 코드를 고장 내 보십시오. tool_use_id 라인을 삭제하고 발생하는 오류를 확인하십시오. 일치하는 ID가 없는 도구 결과는 API에서 거부되며, 이는 초보자가 가장 흔히 겪는 버그입니다. 두 개의 명령어가 필요한 질문을 던져 루프가 두 번 실행되는 것을 확인하십시오. 불가능한 질문을 던져 모델이 포기하거나 무한 루프에 빠지는지도 확인하십시오.
이 예제와 관련하여 한 가지 주의할 점이 있습니다. 이 코드는 shell=True를 사용하여 모델의 출력을 셸로 직접 전달합니다. 이는 언제든 다시 구축할 수 있는 테스트용 머신에서는 허용되지만, 그 외의 환경에서는 위험합니다. 6단계에서 이 문제를 해결합니다. 루프 아래의 개념들은 VPS에서 나만의 AI 에이전트 구축하기에서 더 자세히 다룹니다.
3단계: 에이전트가 기본으로 갖추지 못한 도구
run_command 도구는 정상 작동하지만, 실제 에이전트는 티켓 시스템, 데이터베이스, 저장소와 같이 외부와 상호작용하는 도구가 필요합니다. 서비스마다, 에이전트마다 맞춤형 래퍼를 작성하는 방식은 확장성이 없습니다.
Model Context Protocol(MCP)은 업계가 합의한 해결책입니다. MCP 서버는 표준 전송 규격을 통해 도구 세트를 노출하며, MCP를 지원하는 에이전트라면 별도의 연결 코드 없이 즉시 사용할 수 있습니다. 파일 시스템 참조 서버는 다음 명령 한 줄로 실행됩니다.
npx -y @modelcontextprotocol/server-filesystem /home/you/projects이 명령을 실행하려면 Node가 설치되어 있어야 하며, 인자로 전달하는 디렉터리 경로가 서버가 접근할 수 있는 유일한 범위가 됩니다. 이것이 보안 모델의 축소판입니다. 모델이 아닌 서버가 접근 경계를 결정합니다. 클라이언트를 이 서버에 연결하면 에이전트는 사용자가 직접 작성하지 않은 파일 읽기 및 쓰기 기능을 갖게 됩니다. 서비스 계정 하에서 적절히 실행하는 방법과 전송 방식에 대한 설명은 AI 코딩 에이전트를 위한 VPS에서의 MCP 서버 운영에서 다룹니다. 임시 디렉터리가 아닌 실제 데이터를 참조하는 두 번째 서버의 경우, 운동 기록 도구인 openGym 셀프 호스팅에서 읽기 전용 서버를 제공하므로, 에이전트가 데이터를 손상시킬 위험 없이 자신의 훈련 기록에 대해 질문하는 연습을 할 수 있습니다.
이 단계의 교훈은 도구 설계가 핵심 작업이라는 점입니다. 모호한 설명은 모델이 추측하게 만듭니다. 4만 자를 반환하는 도구는 컨텍스트 윈도우를 오염시킵니다. 삭제 권한이 있는 도구는 결국 무언가를 삭제하게 됩니다.
단계 4: 메모리, 사실상 대부분은 파일입니다
초보자는 이 단계에서 벡터 데이터베이스를 찾으려 합니다. 최소한 지금은 그러지 마십시오.
에이전트는 호출 사이에 메모리를 유지하지 않습니다. 매번 전체 대화 내용을 다시 전송해야 하므로, 긴 세션은 짧은 세션보다 턴당 비용이 더 많이 듭니다. 따라서 메모리는 두 가지 문제로 나뉩니다. 첫 번째는 현재 컨텍스트 윈도우에 들어가는 내용으로, 이는 요약하거나 오래된 도구 출력을 잘라내고, 프롬프트의 고정된 접두사를 캐싱하여 비용을 절감하는 방식으로 관리합니다. 두 번째는 재시작 후에도 유지되는 내용으로, 이는 저장소의 문제입니다.
두 번째 문제의 경우, 거의 모든 첫 번째 프로젝트에서는 에이전트가 읽고 쓸 수 있는 일반 markdown 파일이 벡터 데이터베이스보다 낫습니다. 파일 하나를 제공하고, 형식을 지정해주고, 시작하기 전에 해당 파일을 읽고 무언가를 배울 때마다 업데이트하도록 지시하십시오. 대부분의 이점을 얻을 수 있으며, 파일을 직접 열어 에이전트가 무엇을 알고 있는지 확인할 수도 있습니다. 임베딩과 검색 기술은 메모 내용이 컨텍스트 윈도우에 더 이상 들어가지 않을 때 고려해도 충분합니다. 그전에는 필요하지 않습니다.
5단계: 루프가 곧 제품입니다
이제 지켜보는 동안 작동하는 에이전트를 만들 수 있습니다. 5단계는 지켜보지 않을 때도 작동하게 만드는 것입니다.
무인 에이전트를 그대로 두어도 안전한지 결정하는 네 가지 질문이 있습니다. 무엇이 에이전트를 트리거하여 아무 일도 하지 않는 상태에서 실행되지 않게 할 것인가? 어떤 경계 내에서 작동하게 하여 실수를 최소화할 것인가? 결과는 어떻게 검증할 것인가(스스로 채점하는 에이전트는 항상 통과하기 때문입니다)? 토큰이나 실제 시간 기준으로 어떤 예산이 에이전트를 중단시킬 것인가? 이 네 가지를 의도적으로 설계하는 것이 루프 엔지니어링과 그 정의가 다루는 범위에서 설명하는 훈련입니다.
연습: 2단계에서 만든 에이전트를 가져와 4~5단계가 필요한 작업을 부여하고 엄격한 반복 횟수 제한을 추가하십시오. 그런 다음 제한을 제거하고 제한 없는 루프가 토큰 비용에 어떤 영향을 미치는지 관찰하십시오. 이를 적은 예산으로 한 번 수행하여, 나중에 큰 예산에서 실수로 반복하는 일이 없도록 하십시오.
6단계: 안전, 보안, 비용
이 단계는 선택 사항이 아니며, 작동하는 결과물을 만든 후에야 비로소 위험을 체감할 수 있기 때문에 마지막에 배치되었습니다.
에이전트는 root나 사용자 계정이 아닌 별도의 권한 없는(unprivileged) 사용자로 실행하십시오. 그래야 문제가 발생해도 피해 범위가 시스템 전체가 아닌 특정 디렉터리로 제한됩니다. 자격 증명은 모델이 접근할 수 없는 곳에 보관하십시오. 컨텍스트 윈도우에 포함된 모든 정보는 도구 호출을 통해 외부로 유출될 수 있기 때문입니다. 이에 대한 해결책은 AI 에이전트에서 비밀 정보 보호하기에서 설명하는 것처럼 헬퍼를 통해 단기 토큰을 사용하는 것입니다. 비용에 엄격한 상한선을 설정하십시오. 무인 루프는 아무도 지켜보지 않는 상태에서 매 반복마다 비용을 발생시키기 때문입니다. 이를 제어하기 위한 제한 및 배치 처리 방법은 상시 가동 VPS에서의 AI 에이전트 비용 관리를 참조하십시오.
에이전트를 직접 작성한 스크립트가 아닌 하네스(harness) 내부에서 실행하는 경우, 이 단계의 일부는 코드가 아닌 설정의 영역입니다. 설치할 가치가 있는 DeepSeek 하네스 플러그인에서는 예산 상한, 도구 권한 규칙, 인젝션 스캔 등을 통해 동일한 문제를 다룹니다.
비용은 구체적인 수치로 이해해야 합니다. 2026년 7월 기준, Claude Opus 5는 입력 토큰 100만 개당 5달러, 출력 토큰 100만 개당 25달러를 청구합니다. 대화가 많은 에이전트가 커지는 대화 내용을 계속 다시 전송하면 단일 작업으로도 수십만 토큰을 소비할 수 있습니다. 프롬프트 캐싱과 일상적인 작업에 더 작은 모델을 사용하는 것이 프롬프트를 수정하는 것보다 비용 계산에 훨씬 큰 영향을 미칩니다.
프롬프트 인젝션 또한 여기서 다뤄야 합니다. 에이전트가 웹 페이지, 이슈 트래커, 받은 편지함을 읽는다면, 해당 텍스트를 작성한 사람은 곧 에이전트에게 명령을 내리는 것과 같습니다. 웹 검색은 보통 이 통로를 가장 먼저 여는 도구이며, 자체 SearXNG 인스턴스에 에이전트 연결하기에서는 연결 방식과 그로 인해 발생하는 인젝션 표면을 함께 보여줍니다. 방어책은 더 영리한 시스템 프롬프트가 아닙니다. 방어책은 경계 설정입니다. 저장소를 삭제할 권한이 없는 에이전트는 설득을 통해서도 저장소를 삭제할 수 없기 때문입니다.
어떤 커리큘럼을 따라야 합니까?
여러 과정을 조금씩 맛보기보다는 하나의 커리큘럼을 선택하여 끝까지 완주하십시오. Microsoft ai-agents-for-beginners 저장소는 가장 완성도 높은 무료 과정으로, 2026년 7월 기준 70,000개 이상의 별을 받았으며 위에서 언급한 단계들과 명확하게 대응됩니다. 트렌드에 있는 에이전트 저장소들을 모아놓은 목록은 어떤 프로젝트가 존재하는지 파악하는 데는 유용하지만, 학습 계획서로는 적합하지 않습니다. 별점 순으로 정렬된 목록은 학습 순서가 아닌 인기도를 기준으로 하기 때문입니다.
실습을 위한 실제 프로젝트를 찾고 있다면 코딩 에이전트가 가장 좋은 첫 번째 목표입니다. 즉각적인 피드백을 받을 수 있고, 도구가 명확하며, 실수를 되돌리기도 쉽기 때문입니다. VPS에서 코딩 AI 에이전트 실행하기는 이 과정을 처음부터 끝까지 안내합니다. 처음부터 만드는 것보다 이미 작동하는 시스템을 연구하고 싶다면 최고의 자체 호스팅 AI 에이전트에서 여러 프로젝트가 동일한 루프를 어떻게 다르게 해결하는지 비교한 내용을 확인하십시오.
소요 시간은 어느 정도입니까?
이미 프로그래밍 경험이 있는 사람이라면 1단계와 2단계는 저녁 시간 한 번으로 충분합니다. 3단계는 주말 정도가 소요되는데, 대부분의 시간은 프로토콜보다는 도구 설명서를 읽는 데 쓰입니다. 4단계와 5단계는 실제 사용하며 몇 주가 걸립니다. 에이전트가 무엇을 잊어버리는지는 직접 지켜봐야만 알 수 있기 때문입니다. 6단계는 사실상 끝이 없습니다. 새로운 기능을 추가할 때마다 다시 검토해야 하기 때문입니다.
매일 저녁 꾸준히 투자한다면 대부분 두 달 안에 작동 가능하고 유용한, 범위가 제한된 에이전트를 만들 수 있습니다. 1년이 걸리는 사람들은 대개 무언가를 만드는 대신 읽기만 반복하는 경우입니다.
FAQ
AI 에이전트를 구축하려면 머신러닝을 알아야 합니까?
아닙니다. 에이전트 구축은 API를 통해 모델을 호출하고 모델의 도구 요청을 실제 함수와 연결하는 작업이며, 이는 일반적인 애플리케이션 프로그래밍에 해당합니다. 학습, 그래디언트, 데이터셋을 직접 다룰 필요는 없습니다. 에이전트의 성능을 결정하는 핵심 기술은 도구의 스키마 설계, 오류 처리, 그리고 Linux 권한 관리입니다. 머신러닝 이론은 모델을 파인튜닝할 때만 관련이 있으며, 이는 완전히 다른 전제 조건이 필요한 별개의 작업입니다.
LangChain이나 CrewAI 같은 프레임워크로 시작해야 합니까?
먼저 원시 루프를 직접 작성해 본 뒤 프레임워크를 도입하십시오. 프레임워크는 2단계의 30줄짜리 코드를 설정 객체 하나로 대체해 주는데, 무엇을 대체했는지 모르는 상태에서는 혼란만 가중될 뿐입니다. 에이전트가 오작동할 때 메시지 목록과 도구 결과를 직접 추론해야 하는데, 이를 한 번도 본 적이 없다면 문제 해결이 훨씬 어렵습니다. 직접 루프를 한 번 작성해 보면 프레임워크는 메커니즘을 숨기는 도구가 아니라 시간을 절약해 주는 도구가 됩니다.
AI 에이전트를 배우는 데 비용이 얼마나 듭니까?
제한을 둔다면 대부분의 예상보다 적게 듭니다. 호스팅된 API 키와 작은 VPS 하나면 이 6단계를 모두 수행할 수 있습니다. 진짜 위험은 시간당 요금이 아니라, 잠든 사이에 무한 루프가 돌며 청구되는 비용입니다. 첫날 API 계정에 엄격한 지출 한도를 설정하고, 작성하는 모든 루프에 반복 횟수 제한을 추가하며, 일상적인 단계에는 더 저렴한 모델을 사용하십시오. 모델을 로컬에서 실행하면 토큰 비용이 사라지는 대신 하드웨어 사양 요구 사항이 생깁니다.
AI 에이전트와 챗봇의 차이점은 무엇입니까?
챗봇은 한 번 답변하고 끝납니다. 에이전트는 주기를 반복합니다. 모델이 도구를 요청하면 코드가 이를 실행하고, 결과가 다시 전달되면 모델이 다음 행동을 결정합니다. 이러한 반복 덕분에 에이전트는 여러 단계로 구성된 작업을 완료할 수 있으며, 이것이 바로 챗봇에는 필요 없는 에이전트만의 경계 설정이 필요한 이유입니다. 챗봇의 잘못된 답변은 나쁜 문단 하나로 끝나지만, 에이전트의 잘못된 답변은 나쁜 문단과 그 결과로 에이전트가 수행한 모든 행동을 포함합니다.