AI Agent
AI Agent에 대한 생각들
최근 생성형 AI가 떠오르면서 동시에 떠오르고 있는 개념이 AI Agent이다.
모두가 에이전트를 외치는 가운데 이제 막 떠오르는 개념이라 그런지 모두가 다른 에이전트를 말할 때도 있다.
요즘 떠오르고 있는 에이전트란 LLM을 바탕으로 한 에이전트를 말하는 듯 하지만 일단은 그냥 알아서 해주는 것, 알아서 해주는 것 등의 개념으로 통용되고 있는 듯 하다 .
이렇게 산개되어있는 개념을 하나씩 정리해보려고 한다.
AI 산업에서의 Agent
AI 산업에 있어 agent
는 센서를 통해 주변 환경을 인식하고 그에 맞게 움직이는 독립적인 프로그램이나 존재이다.
에이전트는 주변을 감지
하고 생각
한 뒤 행동
하기 위해 자신의 actuator(동작 장치)를 사용한다.
에이전트의 일반적인 예시에는 다음이 포함된다.
- Software: 파일 내용, 키 입력, 수신된 네트워크 패키지를 감각 입력으로 사용하고, 그 입력에 따라 행동하여 화면에 결과를 표시
- Human: 우리 모두 에이전트이다. , 눈, 귀 및 기타 기관을 센서로 사용하고, 손, 다리, 입 등 신체 부위를 액추에이터로 사용한다.
- Robot: 로봇 에이전트는 카메라와 적외선 거리 측정기를 센서로 사용하고, 다양한 서보와 모터를 액추에이터로 사용
즉, AI에서 agent란 센서와 액추에이터를 사용하여 환경에 작용하고 목표를 달성하는 자율적인 개체이며 무인 자동차와 아이폰의 Siri 가상 어시스턴트 등이 예시이다.
환경이란?
에이전트가 상호작용하고 인지하며 그 안에서 행동을 결정하고 수행하는 모든 외부 요소와 조건이다.
e.g) 로봇 에이전트의 경우 물리적 세계, 소프트웨어 에이전트의 경우 해당 소프트웨어가 상호작용하는 데이터, 인터페이서, 네트워크 시스템 혹은 다른 소프트웨어 프로그램,
AI Agent 준수해야하는 규칙
- 환경을 인지해야한다.
- 환경 관찰은 의사 결정을 내리는데 사용한다.
- 의사 결정은 행동을 초래해야 한다.
- 행동은 합리적이어야 한다.
Agent의 기능
- 환경의 동적 조건을 인지
- 환경에 영향을 주는 행동을 함
- 인식을 해석하기 위해 추론을 사용
- 문제 해결
- 추론
- 행동과 그 결과를 결정
Agent 종류
- Reflex Agent (반사 에이전트): 현재에만 작동하며 과거를 무시.
이벤트-조건-행동
규칙을 사용한다. 에이전트는 사전에 설정된 조건과 규칙 목록으로 결과를 도출한다.- e.g) 온도 조절기: 주변 온도를 감지하고 설정된 온도에 따라 히터를 켜거나 끄는 반사 에이전트
- Model-based Agent (모델 기반 에이전트): Reflex Agent처럼 행동을 선택하지만, 환경에 더 포괄적임. 환경 모델이 내부 시스템에 프로그래밍되어 있으며, 에이전트의 히스토리에 통합됨
- e.g) 자율 주행 차량: 주변 환경의 모델을 구축하고, 이를 바탕으로 차량의 위치를 추정하며 주행 경로를 결정
- Goal-based agents (목표 기반 에이전트): Model-based Agent가 저장하는 정보를 목표 정보나 바람직한 결과 및 상황에 대한 데이터로 확장하여 구축.
- e.g) 체스 플레이어 AI: 체스의 최종 목표인 상대방의 킹을 잡는 것을 목표로 하며, 가능한 수와 그 결과를 평가하여 최선의 움직임을 결정
- Utility-based agent (유틸리티 기반 에이전트): Goal-baesd agent에서 유틸리티 측정치를 제공한다. 측정치는 가능한 시나리오를 바람직한 결과에 기반하여 평가하고 최대화하는 행동을 선택한다. 평가 기준 예시에는 성공 확률이나 필요한 자원의 양과 같은 변수가 포함됨.
- e.g) 투자 자문 로봇: 주어진 투자 선택지에서 최대의 기대 수익을 제공하는 포트폴리오를 선택하는 유틸리티 기반 에이전트. 여기서 유틸리티는 기대 수익을 최대화하는 것.
- Learning agent (학습 에이전트): 추가적인 학습 요소를 사용하여 시간이 지남에 따라 환경에 대해 점진적으로 개선되고 더 많은 지식을 얻음. 학습 요소는 피드백을 사용하여 성능 요소가 어떻게 점진적으로 변경되어야하는지 결정.
- 인터넷 검색 엔진: 사용자의 검색 기록과 클릭 패턴을 학습하여 시간이 지남에 따라 더 관련성 높은 검색 결과를 제공함
LLM-Based Agent
LLM기반 에이전트는 위에서 말했던 기존의 에이전트 행동에 더해서, LLM의 언어 이해 및 생성 능력을 결합한 에이전트이다.
단순히 환경을 인식하고 행동하는 것뿐만 아니라, 인간의 언어를 해석하고 처리하며 더욱 정교한 결정을 내릴 수 있는 것이다.
Actuator of LLM-Baed Agent
앞서 말했던 전통적인 액추에이터는 물리적인 행동을 실행하는 장치를 의미하지만, LLM 기반 에이전트에서는 물리적인 행동보다는 언어를 통한 디지털 행동
이 중심이 된다.
이러한 디지털 행동
은
- 텍스트 생성
- API 호출, 시스템 명령 실행
- DB, 파일 업데이트
등등이 있으며, LLM 및 프롬프트 엔지니어링 및 코딩으로 구현할 수 있을 것이다.
LLM-Based Agent Services
LLM기반 에이전트에 무엇이 있는지 예를 들면,
- 고객 서비스 챗봇
- 코드 생성 및 리뷰 에이전트
- 문서 답변 에이전트
등을 들 수 있다.
마치며
LLM기반 에이전트는 LLM은 생각을 하는 뇌의 역할로 두고 행동을 하는 부분을 코딩과 프롬프트 엔지니어링으로 구현을 하는 모습을 많이 볼 수 있다.
개인적으로는 이렇게 엔지니어링 측면이 강하게 들어가는 영역이기 때문에 아주 재밌게 바라보고 구현해보고 있다.
물론, 이러한 개념은 이제 피어나고 있는 개념이기 때문에 틀린 부분도 있을 수 있고 변화되는 부분이 있을 수 있다.
그래도 이 에이전트에 대한 개념에 대한 인사이트를 줄 수 있길 바라며 블로깅을 해보았다.