1. AI 에이전트란 무엇인가?
주요 내용:
- AI 에이전트의 구성 요소:
- 대규모 언어 모델(LLM): 사용자의 요청을 이해하고, 작업 계획을 세우며, 이를 실행.
- 메모리:
- 단기 메모리: 사용자와 에이전트 간의 대화 맥락.
- 장기 메모리: 데이터를 축적하여 작업 성능을 지속적으로 개선.
- 도구: API, 데이터 서비스, 함수 등을 통해 작업 수행.
인상 깊은 대사:
"우리가 매일 하는 간단한 예로는 이를 닦는 것이 있습니다. 칫솔과 치약이라는 도구를 사용하고, 현재 상태를 기억하며, 장기적으로는 선호하는 치약 맛을 기억합니다."
코드 예제:
- Microsoft의 Semantic Kernel과 Agentic Framework를 사용하여 간단한 여행 계획 에이전트를 구축.
- 사용자가 "하루 여행을 계획해줘"라고 요청하면, 랜덤한 도시를 추천하고, 사용자가 마음에 들지 않으면 다른 도시를 제안.
2. Agentic Framework란 무엇인가?
주요 내용:
- Agentic Framework는 AI 에이전트의 작업 관리와 협업을 더 효과적으로 제어할 수 있도록 돕는 도구.
- 주요 기능:
- 작업 관리.
- 컨텍스트 이해.
- 에이전트 간 협업.
- 성능 관찰 및 평가.
인상 깊은 대사:
"Azure AI Agent Service는 단일 에이전트 작업에 적합하며, Semantic Kernel과 Autogen은 다중 에이전트 작업에 적합합니다."
코드 예제:
- Semantic Kernel: 여행지 추천 플러그인을 사용하여 랜덤 여행지를 반환.
- Autogen: JSON 출력 형식을 사용해 사용자 요청에 맞는 맞춤형 여행 계획 생성.
- Azure AI Agent Service: Python 코드를 생성해 바 차트를 시각화.
3. 좋은 AI 에이전트를 만드는 원칙
주요 내용:
- 공간: 에이전트가 작업하는 환경. 사용자가 에이전트를 쉽게 발견하고, 필요에 따라 전환 가능해야 함.
- 시간: 에이전트가 사용자와의 상호작용을 통해 지속적으로 개선.
- 핵심: 불확실성을 수용하고, 사용자에게 투명성과 제어권 제공.
인상 깊은 대사:
"사용자가 과거 프롬프트와 상호작용을 UI에서 볼 수 있도록 설계하면, 에이전트가 장기적인 맥락을 기반으로 작동하는 것을 보여줄 수 있습니다."
코드 예제:
- Semantic Kernel을 사용해 사용자에게 에이전트의 기능과 한계를 명확히 설명.
- 사용자 요청에 따라 여행 계획을 세우고, 대화 맥락을 기반으로 대안을 제안.
4. 도구 사용 디자인 패턴
주요 내용:
- 도구 사용 디자인 패턴은 LLM이 외부 도구(예: 계산기, API, 데이터베이스)와 상호작용할 수 있도록 함.
- 사용 사례:
- 데이터베이스 쿼리 생성.
- CRM 시스템과 통합하여 고객 예약 정보 제공.
- 이메일 분석 및 자동화된 워크플로우 실행.
인상 깊은 대사:
"AI 에이전트는 자연어를 해석하고, 적절한 도구를 호출하여 작업을 수행할 수 있습니다."
코드 예제:
- Semantic Kernel을 사용해 여행지와 예약 가능 여부를 확인.
- LLM이 유럽 외의 여행지를 추천하도록 설계.
5. Agentic RAG (Retrieval-Augmented Generation)
주요 내용:
- 기본 RAG: 사용자 쿼리를 데이터베이스에서 검색한 정보로 보완.
- Agentic RAG: 쿼리를 분석해 소작업으로 나누고, 필요한 도구와 데이터를 활용해 답변 생성.
인상 깊은 대사:
"Agentic RAG는 단순히 정보를 검색하는 것을 넘어, 복잡한 질문을 해결하기 위해 여러 단계를 거칩니다."
코드 예제:
- Azure Search와 Semantic Kernel을 사용해 여행 문서를 검색하고, 날씨 정보를 플러그인으로 보완.
6. 신뢰할 수 있는 AI 에이전트 구축
주요 내용:
- 시스템 메시지 프레임워크:
- 에이전트의 역할, 책임, 상호작용 방식을 명확히 정의.
- 반복 가능한 방식으로 프롬프트를 개선.
- Human-in-the-Loop:
- 특정 작업에 대해 인간의 승인이나 개입을 요구.
인상 깊은 대사:
"프롬프트를 처음부터 완벽하게 작성하는 것은 드뭅니다. 시스템 메시지 프레임워크는 이를 반복적으로 개선할 수 있도록 돕습니다."
코드 예제:
- 간단한 시스템 메시지를 기반으로 더 구체적이고 세부적인 프롬프트 생성.
7. 계획 디자인 패턴
주요 내용:
- 계획 디자인 패턴은 복잡한 작업을 소작업으로 나누고, 이를 다른 에이전트나 프로세스가 처리하도록 설계.
- 구조화된 출력을 통해 다른 시스템이 정보를 처리할 수 있도록 지원.
인상 깊은 대사:
"3일간의 따뜻한 휴가 계획은 항공편 예약, 호텔 예약, 교통수단, 개인 활동 등으로 나눌 수 있습니다."
코드 예제:
- Pydantic을 사용해 여행 계획의 데이터 구조를 정의하고, 이를 기반으로 작업을 분배.
8. 다중 에이전트 디자인 패턴
주요 내용:
- 다중 에이전트 협업:
- 그룹 채팅: 모든 에이전트가 메시지를 공유.
- 핸드오프: 작업을 단계별로 다른 에이전트에게 전달.
- 협업 필터링: 각 에이전트가 특정 작업을 전문적으로 수행.
인상 깊은 대사:
"컨시어지 에이전트는 로컬 경험을 추천하고, 프론트 데스크 에이전트는 이를 기반으로 제안을 개선합니다."
코드 예제:
- 컨시어지와 프론트 데스크 에이전트가 협력해 여행 추천을 개선.
9. 메타인지(Metacognition)
주요 내용:
- 메타인지는 에이전트가 자신의 계획과 응답을 분석하고 개선할 수 있도록 함.
- 사용자 피드백과 선호도를 반영해 지속적으로 학습.
인상 깊은 대사:
"메타인지는 에이전트가 왜 특정 결정을 내렸는지 투명하게 설명할 수 있도록 합니다."
코드 예제:
- 사용자의 비행 시간 선호도를 저장하고, 이를 기반으로 향후 추천을 개선.
10. AI 에이전트의 프로덕션 배포
주요 내용:
- 평가 지점 설정:
- 초기 요청, 도구 호출, 응답 시간, 사용자 피드백 등.
- 에러 처리:
- 외부 서비스가 다운되었을 때 백업 도구를 사용.
인상 깊은 대사:
"에이전트가 사용할 수 있는 도구가 다운되었을 때, 백업 도구를 통해 작업을 계속 수행할 수 있어야 합니다."
코드 예제:
- HTTP 404 에러 발생 시 백업 도구를 호출해 작업을 지속.
마무리
이 10개의 레슨은 AI 에이전트의 기본 개념부터 코드 구현, 디자인 패턴, 프로덕션 배포까지 포괄적으로 다룹니다. 각 레슨은 실습 가능한 코드와 함께 제공되어, 초보자도 쉽게 따라할 수 있습니다. AI 에이전트의 세계로의 여정을 시작해보세요! 🚀