Agno 지식 베이스(Knowledge)로 RAG 구현하기
Agno 지식 베이스(Knowledge)로 RAG 구현하기
모델은 훈련 데이터 밖의 정보(회사 문서, 최신 자료)를 모르기 때문에, 그때그때 필요한 지식을 주입해 주는 게 중요해요. Agno에서 Knowledge는 에이전트가 훈련 데이터를 넘어 정보에 접근하게 해 줘요. 파일·URL·원본 텍스트를 로드하면, 에이전트가 검색한 콘텐츠에 응답을 근거(ground)시킬 수 있어요.
출처: Agno 지식 공식 문서
기본 예시
from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.chroma import ChromaDb
# Create a knowledge base
knowledge = Knowledge(
vector_db=ChromaDb(
collection="docs",
path="tmp/chromadb",
persistent_client=True,
),
)
# Load content
knowledge.insert(url="https://docs.agno.com/introduction.md")
# Create an agent that searches the knowledge base
agent = Agent(knowledge=knowledge, search_knowledge=True)
agent.print_response("What is Agno?")
Knowledge에 벡터 DB(ChromaDb)를 연결하고, knowledge.insert(url=...)로 콘텐츠를 넣어요. 에이전트에 knowledge=knowledge, search_knowledge=True를 주면 에이전트가 지식 베이스를 검색하고 그 내용에 응답을 근거지워요.
어떻게 동작하나
Knowledge는 세 가지 구성 요소가 합쳐진 것이에요.
- 콘텐츠 수집(Content ingestion) — 파일, URL, 클라우드 저장소, 원본 텍스트에서 문서를 읽어요. Agno는 PDF, DOCX, CSV, Markdown 등을 위한 리더를 기본 제공해요.
- 청킹·임베딩(Chunking and embedding) — 문서를 검색 가능한 청크로 나누고, 의미를 담은 벡터 임베딩으로 변환해요.
- 검색·검색 결과 활용(Search and retrieval) — 에이전트가 정보가 필요할 때 벡터 DB에서 관련 청크를 검색해 컨텍스트에 포함해요.
RAG 방식은 두 가지예요. 에이전틱 RAG(에이전트가 언제 검색할지 결정)와 전통적 RAG(항상 컨텍스트 주입)가 있는데, 에이전틱 RAG가 기본값이며 대부분의 사용 사례에 잘 맞아요.
왜 지식이 중요한가
언어 모델은 폭넓은 일반 지식을 갖고 있지만 우리 도메인의 맥락은 모르죠. 자체 콘텐츠로 시작하는 게 핵심이에요. 회사 문서, DB 스키마, 제품 스펙, 지원 FAQ, 연구 논문을 로드하면 에이전트가 관련 구절을 검색해 응답의 컨텍스트로 써요.
그리고 에이전트가 학습하게 두세요. 에이전트는 지식을 검색할 뿐 아니라 쓸 수도 있어요. 발견한 통찰을 저장하고 나중에 다시 꺼내 쓰는 식으로 대화를 넘어 전문성을 쌓아요.
def save_learning(title: str, insight: str) -> str:
"""Save a reusable insight to the knowledge base."""
knowledge.insert(name=title, text_content=insight)
return f"Saved: {title}"
agent = Agent(
knowledge=knowledge,
search_knowledge=True,
tools=[save_learning], # Agent can write to knowledge
)
tools에 지식 베이스에 쓰는 함수를 넣어, 에이전트가 배운 내용을 직접 저장하게 만들 수 있어요. 지속되는 컬렉션 덕분에 저장된 통찰은 이후 실행에서도 사용할 수 있어요.
벡터 스토어
Agno는 19개의 벡터 데이터베이스를 지원해요. LanceDB·ChromaDB 같은 로컬 옵션부터 Pinecone·Weaviate 같은 관리형 서비스까지 다양해요. 사용 환경에 맞는 걸 고르면 돼요.
더 알아보기
- 지식 빠른 시작: Knowledge Quickstart
- 벡터 DB 개념: Vector Databases
- 검색·검색 결과 활용: Search & Retrieval