'에이전트(Agent)'라는 단어는 흔히 사용되지만, 그 의미는 매우 다양하다. 누군가에게는 챗봇을 의미하고, 누군가에게는 복잡한 자동화 프로그램을 뜻한다. 이처럼 모호한 에이전트 개념을 개인적인 관점에서 정리해본다.
LLM + Harness
에이전트는 크게 두 가지 구성 요소로 이루어진다. LLM(대형 언어 모델)과 이를 감싸는 Harness(하네스)이다.
- LLM: 문맥을 읽고 다음에 무엇을 해야 할지 판단하는 추론 기관이다. 하지만 LLM 자체는 단독으로 실행될 때 순수한 '텍스트 생성기'에 불과하며, 스스로 화면을 클릭하거나 파일을 수정할 수 없다.
- Harness: LLM의 텍스트 출력을 실제 '행동'으로 변환하고, 그 결과를 다시 모델에게 피드백하는 모든 인프라를 의미한다. 여기에는 실행 루프, 도구, 메모리, 샌드박스 실행 환경 그리고 종료 시점을 결정하는 규칙이 포함된다.
핵심은 에이전트들의 성능 차이는 대부분 모델 자체의 차이외에, 하네스를 얼마나 견고하고 유연하게 설계했느냐에서 갈린다. 다만, 하네스가 아무리 훌륭해도 상위 모델의 추론 능력(Reasoning)이 뒷받침되지 않으면 에이전트는 쉽게 길을 잃거나 무한 루프에 빠지게 된다.
에이전트가 살아가는 환경
에이전트는 동작되는 환경과 접근할 수 있는 권한에 따라 크게 세 가지 유형으로 나뉜다.
- 웹 에이전트: ChatGPT, Gemini, Claude 등 제한된 브라우저 환경 안에서 실행되는 에이전트이다. 정보 검색이나 일회성 질의응답에는 탁월하지만, 사용자의 실제 운영 환경이나 로컬 시스템에는 접근할 수 없다.
- 로컬 에이전트: Claude Code, Codex, Cursor, Antigravity 처럼 사용자의 로컬 파일 시스템과 터미널에 직접 접근할 수 있는 에이전트이다. 개발 및 파일 수정 작업에서 생산성을 보여주지만, 반대로 사용자의 컴퓨터 환경에 종속되는 한계가 있다.
- 프로비저닝된 환경을 가진 에이전트: 작업이 필요할 때마다 독립된 가상 머신이나 샌드박스를 할당받고, 작업이 끝날 때 까지 격리된 환경에서 독립적으로 실행되는 형태이다. 사용자가 잠을 자는 동안에도 서버나 클라우드 상에서 계속 복잡한 작업을 수행할 수 있다.
에이전트 vs 자동화 - 무엇이 다른가?
많은 사람들이 AI 기반 워크플로우를 모두 '에이전트'라고 부르지만, 둘은 명확히 다르다.
- 자동화: 정해진 일련의 워크플로우다. LLM은 이 흐름속에서 텍스트를 요약하거나 분류하는 '노드'중 하나로 쓰일 뿐, 전체적인 흐름은 개발자가 미리 그려둔다. 예외 상황이 발생하면 멈춘다.
- 에이전트: 에이전트는 자신이 마주한 상황과 데이터를 바탕으로 다음에 무엇을 할지 동적으로 결정한다. 도구를 직접 선택하고, 실행이 실패하면 스스로 재시도하거나 다른 방법을 찾으면서 계획을 수정한다.
현실에서는 완벽한 이분법보다는 하이브리드 아키텍처가 대세다. 거시적인 흐름은 안정적인 코드로 짜인 자동화로 제어하되, 각 단계내의 복잡한 예외 처리나 판단 영역만 에이전트에게 자율성을 부여한다.
도구와 스킬 - 에이전트의 무기
에이전트가 실제로 일을 수행하기 위해서는 기능적 도구들이 필요하다.
- 도구: 이메일 전송, 데이터베이스 조회, 웹페이지 스크랩 등 명확하게 정의된 단일 기능이다.
- 스킬: 도구들을 '어떤 상황에, 어떤 순서로, 어떻게 조합해서 써야 하는지'에 대한 절차적 지식과 프롬프트 그리고 관련 스크립트가 패키지 형태로 결합된 것이다.
스킬은 대부분 문서와 실행 가능한 스크립트로 구성되어 있어 다양한 플랫폼 간에 쉽게 공유될 수 있다. 최근 AI 생태계에서는 스킬을 공유하는 마켓 플레이스 개념이 빠르게 자리잡고 있다. (예: skills.sh 등)
마무리
에이전트는 단순한 챗봇의 연장이 아니라, '목표를 주면 스스로 계획하고, 도구를 써서 실행하고, 결과를 피드백 받아 완성하는 소프트웨어'이다. 모델의 성능이 발전함에 따라 하네스의 정교함도 함께 진화하고 있으며, 앞으로는 웹을 넘어 독립된 가상 환경에서 스스로 일하는 에이전트들이 우리의 일상을 더욱 깊숙이 바꾸어 나갈 것이라 생각한다.
0 Comments:
댓글 쓰기