서론: 모놀리식(Monolithic) 모델의 벽을 넘어서
소프트웨어 공학의 역사는 거대한 모놀리식 애플리케이션이 마이크로서비스 아키텍처(MSA)로 해체되는 과정으로 요약될 수 있습니다. 단일 코드베이스에 모든 기능이 얽혀있던 구조는 특정 기능의 수정이 시스템 전체에 예측 불가능한 영향을 미치는 경직성을 낳았습니다. 이러한 한계는 독립적으로 개발, 배포, 확장이 가능한 작은 서비스들의 집합으로 시스템을 재구성하는 패러다임 전환을 촉발했습니다.
현재 대규모 언어 모델(LLM) 기반의 인공지능은 유사한 변곡점에 서 있습니다. 방대한 파라미터를 가진 거대 모델은 그 자체로 경이로운 언어 능력을 보이지만, 본질적으로는 모놀리식 구조의 한계를 내포합니다. 새로운 능력을 추가하기 위해서는 막대한 비용의 재학습(Re-training)이나 파인튜닝(Fine-tuning)이 필요하며, 특정 작업에 대한 신뢰성이나 사실 기반 추론(Fact-based Reasoning)을 보장하기 어렵습니다.
이러한 배경 속에서 ‘에이전트 스킬(Agent Skills)’이라는 개념은 LLM을 단순한 언어 생성기를 넘어, 특정 목표를 달성하기 위해 자율적으로 계획하고 도구를 사용하는 ‘에이전트 시스템(Agentic Systems)’으로 진화시키는 핵심 열쇠로 부상하고 있습니다.
AI 에이전트 스킬의 개념적 정의와 구조
에이전트 스킬이란, 특정 하위 목표(Sub-goal)를 해결하기 위해 정의된 재사용 가능한 절차 또는 계획의 단위(Unit of Procedure)를 의미합니다. 이는 프로그래밍에서의 ‘함수(Function)’나 ‘라이브러리(Library)’와 유사한 개념으로, 복잡한 문제를 해결하기 위해 호출되고 조합될 수 있는 모듈화된 능력입니다. 스킬은 단순한 API 호출을 넘어, 명확한 입력(Input), 출력(Output), 그리고 실행 조건(Pre-conditions)을 갖춘 구조화된 작업 명세입니다.
AI 에이전트 패러다임의 핵심은, 하나의 거대 지능이 모든 것을 해결하는 것이 아니라, 잘 정의된 ‘스킬’들을 오케스트레이션(Orchestration)하는 ‘추론 엔진(Reasoning Engine)’으로서의 LLM을 상정하는 것입니다. 이는 모델의 지식과 행동을 분리하여 시스템의 예측 가능성과 확장성을 극대화하는 설계 철학입니다.
스킬의 기술적 구현: 계획, 실행, 접지
에이전트 스킬이 실제 작동하기 위해서는 몇 가지 핵심적인 기술 구성요소가 요구됩니다. 첫째는 계획(Planning) 능력입니다. 사용자의 고차원적 목표가 주어지면, 에이전트는 이를 달성 가능한 하위 작업들로 분해하고, 각 작업에 적합한 스킬을 스킬 라이브러리(Skill Library)에서 선택하여 순서를 정해야 합니다. 이 과정에서 LLM이 스스로 추론하고(Reason) 행동하는(Act) 패턴을 활용하는 접근법들이 중요하게 사용됩니다. 이러한 방식은 LLM의 내부 독백(Internal Monologue)을 통해 추론 과정을 명시적으로 생성하고 행동을 결정하도록 유도합니다.
둘째는 실행(Execution)과 접지(Grounding)입니다. 선택된 스킬은 외부 도구(Tool), 예를 들어 검색 엔진 API, 코드 실행기, 데이터베이스 쿼리 등을 통해 실제로 실행됩니다. 일례로, Google의 ‘Harness²’와 같은 프레임워크에서 논의된 접근법은 언어 모델이 생성한 결과물의 사실적 정확성을 검증하기 위해 외부 도구를 체계적으로 활용하는 방향성을 시사하며, 이는 스킬 실행의 결과를 다시 모델의 추론 과정에 ‘접지’시키는 중요한 흐름을 보여줍니다.
셋째는 스킬 라이브러리(Skill Library)의 관리입니다. 에이전트가 사용할 수 있는 스킬의 목록은 동적으로 추가, 수정, 검색될 수 있어야 합니다. 이는 단순한 목록을 넘어, 각 스킬의 기능, 파라미터, 의존성을 설명하는 메타데이터를 포함하며, 에이전트가 자연어 쿼리를 통해 가장 적합한 스킬을 의미적으로 검색(Semantic Search)할 수 있도록 벡터 데이터베이스(Vector DB)에 저장되는 경향이 있습니다.
스킬의 획득: 정적 정의에서 동적 학습으로
현재 논의되는 많은 에이전트 스킬은 개발자에 의해 사전에 정적으로 정의(Pre-defined)됩니다. 특정 API를 감싸는 래퍼(Wrapper) 함수를 만들고, 그 기능을 자연어로 설명하는 방식이 일반적입니다. 이는 시스템의 초기 안정성을 확보하는 데는 효과적이지만, 에이전트가 예상치 못한 문제에 직면했을 때 유연하게 대처하는 능력에는 한계가 있습니다.
궁극적인 연구 방향은 에이전트가 경험을 통해 스스로 스킬을 획득하고 개선하는 동적 학습(Dynamic Skill Learning)입니다. 이는 시행착오(Trial and Error) 과정에서 성공적인 행동 시퀀스를 새로운 스킬로 추상화하여 라이브러리에 저장하는 방식으로 구상될 수 있습니다. 예를 들어, ‘특정 형식의 보고서를 이메일로 전송’하는 복잡한 작업을 여러 번 성공적으로 수행했다면, 에이전트는 이 일련의 과정을 ‘`send_report_email`’이라는 단일 스킬로 압축하고 재사용할 수 있다는 가설입니다. 이는 AI 에이전트가 단순한 도구 사용자를 넘어, 시간이 지남에 따라 스스로의 능력을 확장하는 ‘자기 진화 시스템’으로 발전할 가능성을 시사합니다.
한계 및 검증되지 않은 부분
본고에서 제시된 ‘에이전트 스킬’의 개념은 AI 분야의 중요한 진전이지만, 몇 가지 근본적인 도전과제와 아직 검증되지 않은 가설에 기반하고 있음을 명확히 할 필요가 있습니다.
- 스킬의 조합성(Compositionality) 문제: 개별 스킬이 완벽하게 작동하더라도, 이를 새롭게 조합했을 때 항상 의도대로 작동한다는 보장은 없습니다. 한 스킬의 출력이 다른 스킬의 입력 형식과 맞지 않거나, 스킬 간의 숨겨진 의존성으로 인해 예기치 않은 오류가 발생할 수 있으며, 이는 아직 해결되지 않은 주요 연구 주제입니다.
- 자율적 스킬 획득의 실효성: 에이전트가 경험으로부터 의미 있고 강건한(robust) 스킬을 ‘스스로’ 학습하는 능력은 현재 매우 제한된 환경에서만 실험적으로 보고되고 있습니다. 복잡하고 동적인 실제 환경에서 인간의 개입 없이 유의미한 스킬 라이브러리를 구축하는 것은 아직 가설의 영역에 가깝습니다.
- 대규모 스킬 관리의 복잡성: 수천, 수만 개의 스킬이 라이브러리에 존재할 경우, 주어진 문제에 가장 적합한 스킬(들)을 효율적으로 검색하고 선택하는 것은 그 자체로 매우 어려운 문제입니다. 스킬 간의 충돌, 중복, 버전 관리 등은 시스템의 복잡도를 기하급수적으로 증가시킬 수 있습니다.