- LLM: Ollama + Llama 3.1 (로컬)
- Embedding: nomic-embed-text (로컬)
- Vector DB: ChromaDB (로컬 파일 기반)
- Graph Orchestration: LangGraph
git clone <YOUR_REPO_URL>
cd agent-sandbox-mainpython -m venv .venv
.\.venv\Scripts\Activate성공 시 터미널 앞에 ( .venv ) 표시가 나타납니다.
pip install -r requirements.txt주요 패키지:
- langgraph
- chromadb
- ollama
Ollama 설치: https://ollama.com/download
설치 후 아래 명령 실행:
ollama pull llama3.1
ollama pull nomic-embed-textpython -m src.build_vector_db정상 실행 시:
✅ Vector DB built: X documents inserted.
프로젝트 루트에 chroma_db/ 폴더가 생성됩니다.
python -m src.main실행 시 콘솔에 다음과 같이 벡터 DB 검색 로그가 출력됩니다:
🔎 [VectorDB] query: RAG에서 청크 중복 제거가 중요한 이유
- doc1 | ...
- doc2 | ...
- doc3 | ...
이는 Writer Agent가 실제로 벡터 DB에서 Evidence를 조회하고 있음을 의미합니다.
프롬프트는 역할 / 출력 구조 / 전략별 지시로 분리되어 있으며,
아래 파일들에서 수정할 수 있습니다.
📄 파일 위치:
src/prompts.py
SYSTEM_PROMPT = """
너는 데이터 기반 브랜드 콘텐츠를 만드는 작가 에이전트(MELT)다.
주어진 토픽과 Evidence를 바탕으로,
브랜드 인사이트 리포트 같은 형식의 글을 작성한다.
"""같은 파일(src/prompts.py)의:
USER_PROMPT_TEMPLATE = """
# {topic} 인사이트 리포트
## 1. Summary
## 2. 토픽 중심 정리
## 3. 시사점 및 활용 아이디어
"""📄 파일 위치:
src/writer_node.py
extra_instruction = (
"직접 인용을 최소화하고, 내용을 통합·재서술하여 작성하라."
)extra_instruction = (
"중요한 문장은 Markdown 인용 블록 형태로 그대로 인용하라."
)Evidence 개수에 따라 글 생성 스타일을 다르게 주고 싶을 때 수정합니다.
토픽 입력
↓
Vector DB 검색 (Chroma + nomic-embed-text)
↓
전략 결정 (Evidence 개수 기반)
↓
paraphrase 또는 quote 전략
↓
Markdown 리포트 생성
LangGraph 조건부 그래프 구조:
Start → decide_strategy → write_paraphrase / write_quote → End