개요
Knowledge in CrewAI는 AI 에이전트가 작업 중에 외부 정보 소스에 접근하고 이를 활용할 수 있게 해주는 강력한 시스템입니다. 이는 에이전트에게 작업할 때 참고할 수 있는 참조 도서관을 제공하는 것과 같습니다.Knowledge를 사용함으로써 얻는 주요 이점:
- 에이전트에게 도메인 특화 정보를 제공
- 실제 데이터를 통한 의사 결정 지원
- 대화 전체의 맥락 유지
- 응답을 사실 기반 정보에 근거
빠른 시작 예제
기본 문자열 지식 예제
Code
웹 콘텐츠 지식 예시
다음 예시가 작동하려면
docling을 설치해야 합니다: uv add doclingCode
지원되는 Knowledge Sources
CrewAI는 다양한 유형의 knowledge source를 기본적으로 지원합니다:텍스트 소스
- 원시 문자열
- 텍스트 파일 (.txt)
- PDF 문서
구조화된 데이터
- CSV 파일
- 엑셀 스프레드시트
- JSON 문서
텍스트 파일 지식 소스
PDF 지식 소스
CSV 지식 소스
Excel 지식 소스
JSON 지식 소스
반드시 ./knowledge 폴더를 생성해 주세요. 모든 소스 파일(예: .txt, .pdf, .xlsx, .json)은 중앙 집중식 관리를 위해 이 폴더에 보관해야 합니다.
Agent vs Crew Knowledge: 완벽 가이드
Knowledge 레벨 이해하기: CrewAI는 agent와 crew 두 가지 레벨의 knowledge를 지원합니다. 이 섹션에서는 각각이 어떻게 동작하는지, 언제 초기화되는지, 그리고 dependency에 대한 일반적인 오해를 명확히 설명합니다.
지식 초기화가 실제로 작동하는 방식
다음은 지식을 사용할 때 실제로 발생하는 일입니다:에이전트 수준 지식 (독립적)
crew.kickoff() 중에 일어나는 일
crew.kickoff()를 호출하면 다음과 같은 순서로 동작합니다:
스토리지 독립성
각 knowledge 수준은 독립적인 스토리지 컬렉션을 사용합니다:전체 작동 예제
예시 1: Agent-Only Knowledge
예시 2: 에이전트 및 크루 지식 모두
예제 3: 서로 다른 지식을 가진 다중 에이전트
Knowledge 구성
crew 또는 agent에 대해 knowledge 구성을 할 수 있습니다.Code
지원되는 Knowledge 매개변수
저장 및 쿼리할 콘텐츠를 제공하는 knowledge source들의 리스트입니다. PDF, CSV, Excel, JSON, 텍스트 파일 또는 문자열 콘텐츠를 포함할 수 있습니다.
knowledge가 저장될 컬렉션의 이름입니다. 서로 다른 knowledge 세트를 식별하는 데 사용됩니다. 제공하지 않을 경우 기본값은 “knowledge”입니다.
knowledge가 저장되고 검색되는 방식을 관리하기 위한 커스텀 저장소 구성입니다. 별도로 제공하지 않는 경우 기본 storage가 생성됩니다.
지식 저장 투명성
지식 저장 이해하기: CrewAI는 ChromaDB를 사용하여 벡터 저장소에 지식 소스를 플랫폼별 디렉토리에 자동으로 저장합니다. 이러한 위치와 기본값을 이해하면 프로덕션 배포, 디버깅, 저장소 관리에 도움이 됩니다.
CrewAI가 Knowledge 파일을 저장하는 위치
기본적으로 CrewAI는 memory와 동일한 저장 시스템을 사용하여, knowledge를 플랫폼별 디렉터리에 저장합니다.플랫폼별 기본 저장 위치
macOS:지식 저장 위치 찾기
CrewAI가 지식 파일을 저장하는 위치를 정확히 확인하려면:지식 저장 위치 제어
옵션 1: 환경 변수 (권장)
옵션 2: 사용자 지정 Knowledge 저장소
옵션 3: 프로젝트별 Knowledge 저장소
기본 임베딩 제공자 동작
기본 임베딩 제공자: CrewAI는 다른 LLM 제공자를 사용할 때도 지식 저장을 위해 기본적으로 OpenAI 임베딩(
text-embedding-3-small)을 사용합니다. 설정에 맞게 쉽게 이 옵션을 커스터마이즈할 수 있습니다.기본 동작 이해하기
지식 임베딩 공급자 사용자 정의
Azure OpenAI 임베딩 구성
Azure OpenAI 임베딩을 사용할 때:- 먼저 Azure 플랫폼에 임베딩 모델을 배포했는지 확인하세요.
- 그런 다음 다음과 같은 구성을 사용해야 합니다:
고급 기능
쿼리 리라이팅
CrewAI는 지식 검색을 최적화하기 위해 지능형 쿼리 리라이팅 메커니즘을 구현합니다. 에이전트가 지식 소스를 검색해야 할 때, 원시 태스크 프롬프트는 자동으로 더 효과적인 검색 쿼리로 변환됩니다.쿼리 재작성 방식
- 에이전트가 knowledge 소스를 사용할 수 있을 때 작업을 실행하면
_get_knowledge_search_query메서드가 트리거됩니다. - 에이전트의 LLM을 사용하여 원래 작업 프롬프트를 최적화된 검색 쿼리로 변환합니다.
- 이 최적화된 쿼리는 knowledge 소스에서 관련 정보를 검색하는 데 사용됩니다.
쿼리 리라이트(Query Rewriting)의 이점
향상된 검색 정확도
주요 개념에 집중하고 불필요한 내용을 제거함으로써, 쿼리 리라이트는 보다 관련성 높은 정보를 검색할 수 있게 도와줍니다.
컨텍스트 인식
리라이트된 쿼리는 벡터 데이터베이스 검색을 위해 더욱 구체적이고 컨텍스트를 인식할 수 있도록 설계되어 있습니다.
예시
Knowledge 이벤트
CrewAI는 knowledge 검색 과정에서 이벤트를 발생시키며, 이벤트 시스템을 사용하여 이를 감지할 수 있습니다. 이러한 이벤트를 통해 에이전트가 knowledge를 어떻게 검색하고 사용하는지 모니터링, 디버깅, 분석할 수 있습니다.사용 가능한 Knowledge 이벤트
- KnowledgeRetrievalStartedEvent: 에이전트가 소스에서 knowledge를 검색하기 시작할 때 발생
- KnowledgeRetrievalCompletedEvent: knowledge 검색이 완료되었을 때 발생하며, 사용된 쿼리와 검색된 콘텐츠를 포함
- KnowledgeQueryStartedEvent: knowledge 소스에 쿼리를 시작할 때 발생
- KnowledgeQueryCompletedEvent: 쿼리가 성공적으로 완료되었을 때 발생
- KnowledgeQueryFailedEvent: knowledge 소스에 대한 쿼리가 실패했을 때 발생
- KnowledgeSearchQueryFailedEvent: 검색 쿼리가 실패했을 때 발생
예시: Knowledge Retrieval 모니터링
맞춤형 지식 소스
CrewAI를 사용하면BaseKnowledgeSource 클래스를 확장하여 모든 유형의 데이터에 대한 맞춤형 지식 소스를 만들 수 있습니다. 이제 우주 뉴스 기사를 가져오고 처리하는 실용적인 예제를 만들어보겠습니다.
최근 우주 탐사 동향은 다음과 같습니다. 최신 우주 뉴스 기사들을 기반으로 정리하였습니다:
- SpaceX가 2023년 11월 17일 오전에 예정된, 두 번째 Starship/Super Heavy 통합 발사를 위한 최종 규제 승인을 받았습니다. 이는 SpaceX의 우주 탐사 및 우주 식민화에 대한 야심찬 계획에서 중요한 단계입니다. 출처: SpaceNews
- SpaceX는 미국 연방통신위원회(FCC)에 1세대 차세대 Starlink Gen2 위성의 첫 발사를 시작할 계획임을 알렸습니다. 이는 전 세계에 고속 인터넷을 제공하는 Starlink 위성 인터넷 서비스의 주요 업그레이드입니다. 출처: Teslarati
- AI 스타트업 Synthetaic이 시리즈 B 펀딩에서 1,500만 달러를 유치했습니다. 이 회사는 인공 지능을 사용하여 우주 및 공중 센서에서 데이터를 분석하며, 이는 우주 탐사와 위성 기술에 큰 응용 가능성이 있습니다. 출처: SpaceNews
- 미 우주군(Space Force)은 미국 인도-태평양 사령부(Indo-Pacific Command) 내에 부대를 공식적으로 창설하여 인도-태평양 지역에 항구적인 존재감을 확보하였습니다. 이는 우주 안보 및 지정학에 중대한 영향을 미칠 수 있습니다. 출처: SpaceNews
- 우주 추적 및 데이터 분석 기업 Slingshot Aerospace는 저지구 궤도(LEO) 커버리지를 확대하기 위해 지상 광학 망원경 네트워크를 확장하고 있습니다. 이는 저지구 궤도의 위성 및 우주 잔해 추적과 분석 능력을 향상시킬 수 있습니다. 출처: SpaceNews
- 중국 국가자연과학기금위원회는 연구자들이 초대형 우주선 조립을 연구하기 위한 5개년 프로젝트를 발표했습니다. 이는 우주선 기술과 우주 탐사 역량의 비약적인 발전을 가져올 수 있습니다. 출처: SpaceNews
- 스탠포드 대학교의 AEroSpace Autonomy Research 센터(CAESAR)는 우주선 자율성에 초점을 맞추고 있습니다. 센터는 2024년 5월 22일에 업계, 학계, 정부 간 협력을 촉진하기 위한 시작 행사를 개최하였습니다. 이는 자율 우주선 기술의 발전에 중대한 기여를 할 수 있습니다. 출처: SpaceNews
Knowledge 저장 위치 확인
테스트 지식 검색
지식 컬렉션 검사하기
지식 처리 확인
일반적인 Knowledge Storage 문제
“파일을 찾을 수 없음” 오류:지식 초기화 명령어
지식 초기화
CrewAI에 저장된 지식을 초기화해야 하는 경우,crewai reset-memories 명령어를 --knowledge 옵션과 함께 사용할 수 있습니다.
Command
베스트 프랙티스
콘텐츠 구성
콘텐츠 구성
- 콘텐츠 유형에 맞는 적절한 청크 크기를 유지하세요
- 컨텍스트 보존을 위해 콘텐츠 중복을 고려하세요
- 관련 정보를 별도의 지식 소스로 체계화하세요
성능 팁
성능 팁
- 콘텐츠의 복잡성에 따라 청크 크기를 조정하세요
- 적절한 임베딩 모델을 설정하세요
- 더 빠른 처리를 위해 로컬 임베딩 프로바이더 사용을 고려하세요
원타임 지식
원타임 지식
- CrewAI에서 제공하는 일반적인 파일 구조에서는 kickoff가 트리거될 때마다 knowledge 소스가 임베딩됩니다.
- knowledge 소스가 크면, 매번 동일한 데이터가 임베딩되어 비효율성과 지연이 발생합니다.
- 이를 해결하려면 knowledge_sources 파라미터 대신 knowledge 파라미터를 직접 초기화하세요.
- 전체 아이디어를 얻으려면 이 이슈를 참고하세요 Github Issue
지식 관리
지식 관리
- 역할별 정보에는 agent 레벨의 knowledge를 사용하세요
- 모든 agent가 필요로 하는 공유 정보에는 crew 레벨의 knowledge를 사용하세요
- 서로 다른 임베딩 전략이 필요하다면 agent 레벨에서 embedder를 설정하세요
- agent 역할을 설명적으로 유지하여 일관된 콜렉션 이름을 사용하세요
- kickoff 후 agent.knowledge를 확인하여 knowledge 초기화를 테스트하세요
- 지식이 저장되는 위치를 모니터링하여 storage 위치를 파악하세요
- 올바른 명령 유형을 사용하여 적절하게 knowledge를 초기화(리셋)하세요
프로덕션 환경 베스트 프랙티스
프로덕션 환경 베스트 프랙티스
- 프로덕션에서는
CREWAI_STORAGE_DIR를 지정된 위치로 설정하세요 - LLM 구성과 맞도록 임베딩 프로바이더를 명확히 선택하고, API 키 충돌을 방지하세요
- 문서가 추가될수록 knowledge storage 용량을 모니터링하세요
- 도메인 또는 목적에 따라 knowledge 소스를 콜렉션 이름으로 체계화하세요
- 지식 디렉터리를 백업 및 배포 전략에 포함시키세요
- knowledge 파일과 storage 디렉터리에 적절한 파일 권한을 부여하세요
- API 키와 민감한 설정에는 환경 변수를 사용하세요
