
LLM을 비롯한 AI 기술이 굉장히 경쟁적으로 발전하고 있습니다. 이제는 LLM의 역할이 점점 커지는 느낌인데, 이에 대두된 개념이 하나 있습니다. 바로 "Agent"인데요. Agent에 대한 정의는 하는 사람마다 다르긴 합니다. 대표적으로 AWS에서는 이런 정의를 내렸습니다. '인공 지능 에이전트는 환경과 상호 작용하고, 데이터를 수집하고, 데이터를 사용하여 사전 결정된 목표를 달성하기 위해 필요한 작업을 스스로 결정해서 수행할 수 있는 소프트웨어 프로그램입니다' 즉, AI가 주변과 상호작용해서 필요한 데이터를 직접 얻어서 이를 활용할 수 있는 프로그램이라고 간단하게(?) 정의해볼 수 있을 것 같습니다.
Agent의 역사는 생각보다 이른 시기에 시작되었다고 합니다. John McCarthy의 1959년 논문 《Programs with Common Sense》에서 “Advice Taker”라는 프로그램을 제안하며, 외부로부터의 조언(‘advice’)을 받아들여 이를 논리 추론에 활용하는 일종의 자율 시스템(즉, 에이전트의 초기 개념)을 처음으로 구체화했습니다. 이 시스템은 당시로서는 획기적이었으나, 모든 행동이 미리 정의된 논리 규칙(rule)에 의존했기 때문에 환경 변화에 적응하거나 학습할 수 없다는 한계가 있었습니다.
이후 Oliver G. Selfridge는 1959년 “Pandemonium” 아키텍처 논문에서 여러 “demons”가 병렬로 패턴을 인식하도록 하는 모델을 소개하며, 이때부터 “agent”라는 용어가 본격적으로 사용되기 시작했습니다.
1973년 Carl Hewitt는 Actor Model을 제안하며 “actor”라는 계산 단위가 비동기 메시지로 상호작용하도록 설계했습니다. 이 모델은 분산·병렬 시스템 구현에 강력한 아이디어를 제공했으나, 에이전트 수가 늘어날수록 메시지 오버헤드와 상태 동기화 문제가 발생했고, 상호운용성(interoperability)과 보안(auth/authz) 측면에서도 해결 과제가 많았습니다.
1990년대에는 Stuart Russell과 Peter Norvig가 『Artificial Intelligence: A Modern Approach』에서 “지능형 에이전트(intelligent agent)” 개념을 중심 축으로 삼으며, 지각(percept)→행동(action) 주기를 강조했습니다. 이 시기 에이전트는 학습, 계획, 의사결정, 협업 등 다양한 기능을 갖추려 했으나, 미들웨어 계층에서의 복잡성 증가와 실시간 반응성(real‑time responsiveness) 보장, 그리고 복합 환경에서의 신뢰성 유지가 큰 도전이었습니다.
2010년대 이후에는 GPT-4 등 대형 언어 모델(LLM)을 활용한 AutoGPT 같은 자율 에이전트가 등장했고, Google Cloud Vertex AI Agent Builder 등 클라우드 기반의 멀티에이전트 플랫폼이 발전했습니다. 이러한 현대 에이전트는 자연어 이해·생성, 외부 API 호출, 도구 사용(tool integration) 능력을 갖추었으나, 여전히 환각(hallucination), 신뢰성 부족, 높은 운영 비용, 윤리·보안 이슈 등 해결해야 할 과제를 안고 있습니다.
이제는 LLM을 활용한 Agent를 표준화하고자 하는 노력이 꾸준히 이어지고 있습니다. 대표적으로 AI Agent를 구현하기 위한 Tool이었던 Crew AI 와 MicroSoft의 AutoGen등이 이었습니다. 하지만 이를 활용한 Agent들이 한계가 존재했습니다.( LLM 자체 성능) ~~ 그러나 최근 굉장히 뛰어난 성능의 LLM 출시에 enthropic 에서 제안한 AI와 도구간의 상호작용 통신 표준인 MCP(multi context protocol) 이제는 여기서 더 나아가 Agent간 통신 표준인 A2A(Agent to Agent)를 제안하기에 이르렀습니다.
LangChain은 Python/JavaScript 라이브러리로, LLM을 다양한 외부 도구(API나 데이터베이스 등)에 연결해 주는 에이전트 실행기 프레임워크입니다. 복잡한 워크플로우를 코드로 미리 짜야 했던 기존 Chain 방식 대신, 언어 모델이 스스로 어떤 도구를 호출해야 할지 판단하도록 설계되었으나, 각 도구마다 별도의 래퍼(wrapper)를 직접 구현해야 하고 팀 간에 통일된 Tool 인터페이스가 없어 재사용성이 낮다는 한계를 드러냈습니다 .
AutoGPT는 자연어 목표를 입력받아 이를 하위 과제로 분해한 뒤 인터넷 검색·파일 관리·API 호출을 반복 수행하는 루프 구조로 복합 워크플로우 자동화를 시연했습니다 . 하지만 실제 사용 과정에서는 모델의 환각(hallucination)과 무한 루프 현상이 빈번히 발생했고, 연속적인 API 호출로 비용이 기하급수적으로 증가하며 상태 동기화나 장애 복구 기능이 부실해 실용화에 큰 어려움을 겪었습니다.
BabyAGI는 AutoGPT보다 더 단순화된 “자가 구축(self‑building)” 프로토타입으로, 에이전트가 스스로 도구를 만들고 업데이트하도록 함으로써 최소한의 코드로 자율성 개념을 탐구할 수 있는 실험 장을 제공했습니다 . 그러나 영구 저장(persistence) 기능이 없어 세션 간 지식 공유가 불가능했고, 에러 핸들링 및 오케스트레이션 기능이 거의 없어 복잡한 태스크로 확장하기엔 한계가 명확했습니다.
Microsoft의 AutoGen은 대화형 에이전트(AgentChat)와 이벤트 드리븐 워크플로우(Core) 컴포넌트를 결합한 멀티에이전트 시스템 연구 프레임워크로, 에이전트 간 핸드오프(hand‑off)와 장기 태스크 관리를 지원했습니다 . 다만 주로 연구용으로 개발돼 안정성·운영성 측면에서 성숙도가 낮았고, .NET 같은 특정 언어·플랫폼 종속 요소 때문에 벤더 락인(vendor lock‑in) 우려가 있었습니다.
CrewAI는 GUI와 코드 양쪽에서 “Crew(에이전트 팀)”과 “Flow(워크플로우)”를 정의해 대규모 멀티에이전트 자동화를 지원하는 상용 플랫폼입니다 . 그러나 초기 버전은 LangChain 등 기존 툴과 독립적으로 구현되면서 표준화된 Tool 인터페이스가 없어, 외부 시스템 연동 시 여전히 각종 커스텀 커넥터를 직접 관리해야 하는 불편을 남겼습니다.
Microsoft Semantic Kernel은 C#, Python, Java용 경량 SDK로 “에이전트 스킬(Agent Skill)”과 메모리 기능을 제공하며, 프로덕션 환경에서의 확장성과 보안을 중시합니다 . 하지만 Azure 환경에 특화되어 있어 비(Azure) 환경으로의 이식성이 떨어졌고, 에이전트 간 통신 표준이 없어 대규모 멀티에이전트 시스템 설계 시 상호운용성(interoperability)에 제약이 있었습니다.
이처럼 MCP 이전의 초기 에이전트 툴들은 각기 다른 API 연결 방식을 요구하는 N×M 커넥터 문제, 프레임워크 간 상호운용성 부재, 분산 시스템 특유의 관찰성·디버깅 기능 미흡, 보안·프라이버시 관리 부족 등의 공통 과제를 안고 있었습니다. 이를 바로잡기 위해 Anthropic은 Model Context Protocol(MCP)을 제안해 LLM과 도구 간 상호작용을 표준화했고 , Google은 Agent‑to‑Agent(A2A) 프로토콜을 발표해 에이전트 간 안전하고 일관된 통신 방식을 정의하며 에이전트 생태계의 성숙을 가속화하고 있습니다 .
'AI > Agent' 카테고리의 다른 글
| Anthropic Sandbox Runtime (srt): AI 에이전트를 안전하게 실행하는 샌드박스 도구 (0) | 2026.01.13 |
|---|---|
| AI Models Need a Virtual Machine (2) | 2025.09.04 |
| 구글 A2A(Agent to Agent) 발표 (0) | 2025.04.12 |
| MCP 업데이트 (0) | 2025.03.29 |