AI 에이전트 초보자 가이드: 첫 번째 AI 에이전트 구축
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능
대상자
- 초보 개발자 및 AI에 관심 있는 학습자
- Python 기초 지식, OpenAI API 키, Yahoo Finance API 사용 경험 필요
- 난이도: 중간 이하 (단계별 코드 예제 제공)
핵심 요약
- AI 에이전트는 자율성과 동적 의사결정을 기반으로 작동
- "작업 흐름(Workflow)"과 "에이전트(Agent)"의 차이점: 작업 흐름은 고정 경로, 에이전트는 유연한 경로 선택 가능
- 필요한 도구: OpenAI SDK, Yahoo Finance API,
.env
파일을 통한 API 키 관리 - 에이전트 핵심 기능:
- 실시간 주가 정보 (get_stock_price
)
- CEO 정보 추출 (get_company_ceo
)
- 회사명 → 주식 코드 매핑 (find_ticker_symbol
)
- 불확실성 처리 (ask_user_for_clarification
)
섹션별 세부 요약
1. AI 에이전트의 정의와 목적
- 에이전트(Agent): 자율적으로 판단하고 행동하는 시스템 (예: 주식 정보 제공 시스템)
- 작업 흐름(Workflow): 고정된 경로만 따라가는 자동화 시스템 (예: 간단한 질문-답변 시스템)
- 에이전트의 장점: 복잡하고 동적인 쿼리 처리 가능
2. 환경 설정 및 의존성 설치
- 필요한 도구:
- Python 3.7 이상
- OpenAI API 키 (platform.openai.com
)
- yfinance
, python-dotenv
패키지 설치
.env
파일 생성:
```env
OPENAI_API_KEY=your_api_key_here
```
3. 에이전트 클래스 구조 및 주요 메서드
StockInfoAgent
클래스:
- __init__
: OpenAI API 클라이언트 초기화 및 대화 기록(conversation_history
) 관리
- get_stock_price
: Yahoo Finance API를 통해 실시간 주가 정보 가져오기
- get_company_ceo
: 주식 코드로 회사 CEO 정보 추출 (Yahoo Finance의 비표준 데이터 구조 처리)
- find_ticker_symbol
: 회사명 → 주식 코드 매핑 (예: "BYD" → "BYDDF")
- ask_user_for_clarification
: 사용자에게 명확성 요청 (예: "NIO, XPeng 중 어디를 의미하십니까?")
4. 에이전트의 의사결정 루프
process_user_query
메서드:
- OpenAI API를 통해 사용자 질문 분석
- tool_call
을 통해 적절한 도구 선택 (예: 주가 정보 → get_stock_price
)
- 무한 루프(while True
): 사용자 질문에 대한 완전한 답변 도출까지 반복
- 결과 합성: 여러 도구 실행 결과를 기반으로 최종 응답 생성 (예: "BYD의 CEO는 왕춘후, 주가는 $59.50")
5. 실습 예제 및 실행 방법
- 사용자 질문 예시:
```plaintext
Who is the CEO of the EV company from China and what is its stock price?
```
- 에이전트 동작:
- "EV company from China" → 불확실성 인식
- 사용자에게 명확성 요청 (NIO, XPeng 중 선택)
- 사용자 응답 ("BYD") → 주식 코드 추출 (
find_ticker_symbol
) - CEO 정보 (
get_company_ceo
) 및 주가 정보 (get_stock_price
) 수집 - 최종 응답 생성: "BYD의 CEO는 왕춘후, 주가는 $59.50"
결론
- 실무 적용 팁:
- 에이전트 자율성 강화를 위해 tool_choice="auto"
설정 필수
- 예외 처리 (try-except
)를 통해 API 실패 시 대응 가능
- .env
파일 사용으로 API 키 보안 관리
- OpenAI 모델 선택: gpt-4-turbo-preview
사용 권장 (최신 기능 지원)