🤖
Agentic AI — 자율 에이전트의 기본 구조
LLM이 도구를 쓰고, 판단하고, 반복하는 구조
ChatGPT에 질문하면 답이 온다. 여기서 끝이면 챗봇이다.
에이전트는 다르다. "이 버그를 고쳐줘"라고 하면, 코드를 읽고, 원인을 분석하고, 수정안을 만들고, 테스트를 돌리고, 문제가 있으면 다시 수정한다. 사람이 중간에 개입하지 않아도.
에이전트의 핵심 루프
모든 에이전트 시스템은 결국 이 루프로 귀결된다:
- 관찰(Observe): 현재 상태 파악 (파일 읽기, 에러 로그 확인, 검색 등)
- 사고(Think): LLM이 상황을 분석하고 다음 행동을 결정
- 행동(Act): 도구 호출 (코드 수정, API 호출, 파일 생성 등)
- 평가(Evaluate): 결과 확인 → 목표 달성 여부 판단
- 목표 미달이면 → 1번으로 돌아감
Claude Code, Cursor, Devin 같은 코딩 에이전트가 전부 이 패턴이다.
에이전트 vs 워크플로우
Anthropicが 구분하는 개념:
워크플로우: LLM 호출이 미리 정의된 코드 경로로 조율됨. 순서가 고정.
에이전트: LLM이 스스로 프로세스를 주도하고, 도구 사용과 다음 단계를 자율적으로 결정.
차이는 "누가 제어권을 갖느냐"다. 워크플로우는 개발자가 설계한 흐름을 LLM이 채우고, 에이전트는 LLM이 흐름 자체를 결정한다.
실제 구현의 핵심
복잡한 프레임워크가 필요 없다. while 루프 + LLM API + 도구 정의만 있으면 기본 에이전트를 만들 수 있다.
while not done:
response = llm.chat(messages, tools)
if response.has_tool_call:
result = execute_tool(response.tool_call)
messages.append(result)
else:
done = True
Anthropicの 공식 가이드도 "가능한 단순하게 시작하라"고 강조한다. 프레임워크는 복잡성을 추가하지만 항상 가치를 더하지는 않는다.
동작 흐름
1
LLM에 시스템 프롬프트 + 사용 가능한 도구 목록 전달
2
LLM이 상황 분석 후 도구 호출 또는 최종 응답 결정
3
도구 실행 결과를 메시지 히스토리에 추가
4
목표 달성까지 반복 (observe → think → act → evaluate)
사용 사례
Claude Code — 코드베이스 탐색→수정→테스트를 자율 수행
고객 지원 에이전트 — 주문 조회→환불 처리→확인 이메일 발송까지 자동
리서치 에이전트 — 검색→요약→추가 질문→종합 보고서 작성