Agents From Scratch - AI智能체 처음부터 구축 가이드
프로젝트 개요
이 저장소는 처음부터 지능형 에이전트(agents)를 구축하는 가이드입니다. Gmail API를 통해 이메일을 관리할 수 있는 "환경 인식" 에이전트를 단계별로 구축합니다. 이 프로젝트는 LangChain AI 팀에서 개발했으며, AI 에이전트 개발을 배우고 실습하기에 훌륭한 리소스입니다.
프로젝트 구조
핵심 구성 요소
프로젝트는 4개의 주요 부분으로 나뉘며, 각 부분은 Jupyter notebook과 해당 코드 구현을 포함합니다.
- 에이전트 기초 - 기본적인 에이전트 기능 구축
- 에이전트 평가 - 에이전트 성능 평가 메커니즘 구현
- 인간-기계 협업 - 인공 개입 및 검토 프로세스 통합
- 기억 시스템 - 장기 기억 및 학습 능력 추가
디렉토리 구조
notebooks/- 교육용 Jupyter notebooks 포함src/email_assistant/- 이메일 도우미의 핵심 구현 코드eval/- 평가 관련 데이터 세트 및 도구tests/- 자동화 테스트 스위트
기술 요구 사항
환경 요구 사항
- Python 버전: 3.11 이상 (LangGraph와의 최적 호환성을 위해)
- 주요 종속성: LangGraph, OpenAI API, LangSmith
API 키 구성
다음 API 키를 구성해야 합니다.
- OpenAI API 키 (언어 모델 호출용)
- LangSmith API 키 (추적 및 평가용)
환경 설정
# Python 버전 확인
python3 --version
# 가상 환경 생성
python3 -m venv .venv
source .venv/bin/activate
# pip 업그레이드
python3 -m pip install --upgrade pip
# 프로젝트 설치 (편집 가능한 모드)
pip install -e .
환경 변수 구성
# 환경 변수 템플릿 복사
cp .env.example .env
.env 파일에 다음을 구성합니다.
LANGSMITH_API_KEY=your_langsmith_api_key
LANGSMITH_TRACING=true
LANGSMITH_PROJECT="interrupt-workshop"
OPENAI_API_KEY=your_openai_api_key
상세 기능 모듈
1. LangGraph 기초 입문
- 파일:
notebooks/langgraph_101.ipynb - 내용: 채팅 모델, 도구 호출, 에이전트와 워크플로의 차이점, LangGraph 노드/에지/기억 시스템, LangGraph Studio 사용을 포함한 LangGraph의 기본 개념 소개
2. 이메일 도우미 구축
- Notebook:
notebooks/agent.ipynb - 코드:
src/email_assistant/email_assistant.py - 기능:
- 이메일 분류 단계와 에이전트 응답 처리 결합
- 완전한 이메일 처리 워크플로 구현
- 이메일 자동 회신 기능 제공
3. 에이전트 평가 시스템
- Notebook:
notebooks/evaluation.ipynb - 데이터 세트:
eval/email_dataset.py - 기능:
- Pytest 및 LangSmith evaluate API를 사용하여 평가
- LLM을 평가자로 사용하는 평가 메커니즘 구현
- 도구 호출 및 분류 결정의 정확성 평가
4. 인간-기계 협업 (HITL)
- Notebook:
notebooks/hitl.ipynb - 코드:
src/email_assistant/email_assistant_hitl.py - 기능:
- 인공 검토 메커니즘 통합
- 특정 도구 호출에 대한 인공 확인 지원 (예: 이메일 보내기, 회의 예약)
- Agent Inbox를 인간-기계 상호 작용 인터페이스로 사용
5. 기억 시스템
- 코드:
src/email_assistant/email_assistant_hitl_memory.py - 기능:
- 사용자 피드백에서 학습하고 적응
- LangGraph Store를 사용하여 기억 지속
- 개인화된 기본 설정 지원
6. Gmail 통합
- 코드:
src/email_assistant/email_assistant_hitl_memory_gmail.py - 기능:
- 실제 Gmail API 연결
- 완전한 이메일 관리 기능
- LangGraph Platform에 배포 지원
테스트 시스템
자동화 테스트 스위트
프로젝트에는 이메일 도우미 구현의 정확성을 검증하기 위한 완전한 자동화 테스트 시스템이 포함되어 있습니다.
# 기본 구현 테스트 실행
python tests/run_all_tests.py
# 특정 구현 테스트 실행
python tests/run_all_tests.py --implementation email_assistant_hitl
# 모든 구현 테스트 실행
python tests/run_all_tests.py --all
# 실험 이름 지정하여 LangSmith 추적
python tests/run_all_tests.py --experiment-name "Custom Test Run"
테스트 가능한 구현 버전
email_assistant- 기본 이메일 도우미email_assistant_hitl- 인간-기계 협업 버전email_assistant_hitl_memory- 기억 기능이 있는 HITL 버전email_assistant_hitl_memory_gmail- Gmail 통합 버전
평가 지표
- 에이전트 추적의 시각적 검사
- 상세한 평가 지표
- 다양한 에이전트 구현의 비교 분석
배포 설명
LangGraph Platform 배포
프로젝트는 LangGraph Platform에 배포하여 생산 환경의 에이전트 서비스를 구현할 수 있습니다.
Gmail 도구 설정
src/email_assistant/tools/gmail/README.md의 지침에 따라 Google API 자격 증명을 설정해야 합니다.
학습 경로 제안
- 초보자: LangGraph 101 notebook부터 시작하여 기본 개념 이해
- 실무자: 네 개의 주요 notebook을 순서대로 완료하여 완전한 기능 구축
- 개발자: src 디렉토리의 구현 코드를 연구하여 엔지니어링 실습 이해
- 배포자: Gmail API를 구성하고 생산 환경에 배포
기술 특징
- 점진적 학습: 기초에서 고급으로, 단계별 진행
- 실제 응용: 실제 이메일 처리 시나리오
- 완전한 엔지니어링: 테스트, 평가, 배포를 포함한 완전한 솔루션
- 확장성: 원리를 다른 에이전트 작업에 적용 가능