요즘 AI에이전트, 제대로 배우기
프로파일(Profile)은 AI 에이전트에서 에이전트의 역할과 성형을 정의하고, LLM의 행동에 직접적인 영향을 주는 정보를 의미합니다.
에이전트가 특정 업무를 수행할 때, 예를 들면 코더, 강사, 특정 도메인의 전문가처럼 정해진 역항를 수행하도록 만드는 것이 목적입니다. 프로파일 정보는 보통 LLM의 프롬프트에 포함되며, 에이전트의 행동 전반을 좌우합니다.
정적 프로파일은 에이전트의 역할, 성격, 전문영역 등을 사전에 고정해두는 방식입니다. 처음에 시스템 프롬프트나 설정 파일에 작성되고, 이후에는 기본적으로 변경되지 않습니다.
정적 프로파일은 FAQ 처리, 단발성 태스크 등 간단하고 안정적인 구현에 적합하기 떄문에 폭넓게 사용됩니다. 한국 환경에서도 챗봇, 간단한 기업용 Q&A 시스템 등에서 많이 쓰는 방식이빈다.
예를 들면, OpenAI API 호출 시, LLM의 역할을 시스템 프롬프트로 지정하는 전형적인 패턴이 바로 정적 프로파일입니다.
하지만 Persona를 고정한 단순 프롬프트 방식에는 한계가 있습니다. 그래서 최근에는 메모리 + 이력 업데이트를 반영하는 동적 프로파일(Dynamic Profile) 프레임워크가 실무에서 주류가 되고 있습니다.
동적 프로파일은 실행 과정에서 지속적으로 이력과 외부 정보를 반영하며 업데이트되는 프로파일입니다. 에이전트의 사용기록, 도메인 전문지식, 성능지표, 응답 패턴등을 반영하도록 설게됩니다.
동적 프로파일은 3가지 주요 요소로 구성됩니다.
1. 스킬(Skills)
에이전트가 사전에 선언한 능력이나 전문 분야를 의미합니다.
2. 이력(History)
최근 작업 결과
완료율
평가 점수
등이 포함됩니다. 보통 고정길이(예: 최근 10개 작업)로 관리되며, 오케스트레이터의 동적 입력으로 사용됩니다.
3. 임베딩(Embeddings)
에이전트의 잠재적인 행동 특성을 요약한 벡터이며, 주기적으로 업데이트됩니다.
4. 가용성(Availability)
에이전트가 현재 Idle인지 Busy인지, 최근 작업량 수준 등 실시간 상태를 모델링합니다.
한국에서도 많이 쓰는 Chat 기반 워크플로우를 기준으로 LangChain을 이용해 간단한 동적 프로파일을 만들어 봅니다.
사용자의 대화 흐름과 별개로, 정보가 동적 프로파일 핸들러로 전달됩니다.
핸들러는 전다로딘 정보를 JSON, 벡터 임베딩 등으로 저장합니다.
다음 대화에서 프롬프트를 생성할 때 최신 프로파일을 반영합니다.
원래라면 비동기 처리까지 구현되는 것이 자연스럽지만, 여기서는 개념 설명을 위해 비동기 로직은 생략합니다.
실행1
그러면, profiles/안에 있는 아래와 같은 u123.json파일이 생성됩니다.
실행2
u123.json이 이렇게 변경됩니다.
실행3
u123.json은 다음과 같이 변경됩니다.
간단한 구현이지만, AI 에이전트의 동적 프로파일이 어떻게 변화하는지 감을 잡는데 충분할 것입니다.
이번에는 AI 에이전트 구성 요소 중 하나인 프로파일(profile)을 설명했습니다. 정적 프로파일은 일반적인 프롬프트 기반 방식이고 동적 프로파일은 실행 과정에서 프로파일이 자동으로 업데이트되는 메커니즘입니다.
동적으로 변화하는 구조가 잘 떠오르지 않을 수 있어서, LangChain과 가벼운 구현을 이용해 프로파일이 실제로 어떻게 변화하는지 보여주는 예제를 만들어 보았습니다.
©2024-2025 MDRULES.dev, Hand-crafted & made with Jaewoo Kim.
이메일문의: jaewoo@mdrules.dev
AI 에이전트 개발, 컨텍스트 엔지니어링 교육 컨설팅, 바이브코딩 강의 문의: https://bit.ly/4kjk5OB