Ai Agent
개념
Agent란 단순한 질의응답을 넘어 주어진 목표를 달성하기 위해 스스로 계획을 세우고, 도구를 사용하며, 자율적으로 행동하는 지능형 소프트웨어이다.
Agent구성 4가지 핵심 요소
- 두뇌(LLM): 상황을 인지하고 논리적으로 추론하며, 다음 행동을 결정하는 판단의 주체
- 계획 및 추론: 복잡한 문제가 주어졌을 때 이를 작은 Task로 쪼개고, 실행 순서를 스스로 계획
- 기억: 현재 진행중인 작업의 맥락 혹은 DB에 저장된 정보를 불러와 활용
- 도구사용: 에이전트는 텍스트 생성에 머물지 않고 외부 환경과 상호작용한다.
사용자 입력부터 시작하는 에이전트 작동 순서도
1. 사용자의 명령 입력 (사용자 ➔ 애플리케이션) 사용자가 에이전트의 채팅창이나 인터페이스에 “오늘 서울 날씨 어때?”라는 텍스트(Prompt)를 입력하고 전송한다.
2. 컨텍스트 및 도구 명세서 조립 (애플리케이션 ➔ LLM) 애플리케이션은 사용자의 질문만 덜랑 보내지 않는다. 시스템 프롬프트(에이전트의 역할), 대화 기록, 그리고 ‘현재 사용할 수 있는 도구들의 명세서(JSON 스키마)’를 하나의 패키지로 묶어 LLM의 API로 전송한다.
3. LLM의 추론 및 도구 호출 결정 (LLM ➔ 애플리케이션)
데이터를 받은 LLM은 “실시간 날씨 정보가 필요하므로 get_current_weather 도구를 사용해야겠다”고 스스로 판단한다. 일반적인 자연어 대답을 생성하는 대신, {"name": "get_current_weather", "arguments": "{\"location\": \"서울\"}"} 형태의 기계적인 호출 명령(JSON)을 애플리케이션으로 반환한다.
4. 애플리케이션의 실제 도구 실행 (애플리케이션 ➔ 외부 API)
LLM의 응답을 가로챈 애플리케이션은 이 JSON 명령을 분석한다. 지정된 함수명과 파라미터(서울)를 추출하여, 실제로 기상청 API나 날씨 서비스 서버로 HTTP 요청을 보내고 날씨 데이터를 받아온다.
5. 실행 결과를 LLM에 다시 전달 (애플리케이션 ➔ LLM)
애플리케이션은 외부 API로부터 받아온 데이터({"temperature": 22, "condition": "맑음"})를 방금 전의 대화 맥락에 추가한다. “네가 요청한 도구를 실행했더니 이런 결과가 나왔어”라는 메시지와 함께 이 데이터를 다시 LLM에게 전송한다.
6. LLM의 최종 답변 생성 (LLM ➔ 애플리케이션 ➔ 사용자) 도구의 실행 결과를 전달받은 LLM은 그제서야 정보를 바탕으로 “오늘 서울의 현재 날씨는 맑음이며, 기온은 22도입니다”라는 자연어 문장을 완성하여 애플리케이션에 반환하고, 애플리케이션은 이를 사용자 화면에 출력한다.
요약
“AI 에이전트란, ‘두뇌(LLM)’에게 물리적으로 행동할 수 있는 ‘손발(Tools)’을 달아주고, ‘표준 어댑터(MCP)’를 통해 세상의 모든 데이터와 연결하여 스스로 생각하고 일하게 만든 실무형 소프트웨어(애플리케이션)이다.”
각각의 역할을 짧은 키워드로 다시 묶어보면 다음과 같다.
- LLM: “어떻게 해결할까?”를 고민하고 지시를 내리는 두뇌
- Tools: 터미널을 열고 코드를 고칠 수 있는 도구
- MCP: 수많은 종류의 콘센트를 아무런 충돌 없이 끼울 수 있게 해주는 표준 플러그
- Application: 이 모든 것을 한데 모아 실제로 전원을 켜고 돌아가게 만드는 몸통
Leave a comment