6. 직접 만들기: 회의록 정리 Agent
폴더와 파일 준비
이 차시를 마치면
폴더와 파일을 만들고 실행 환경을 준비합니다.
빈 폴더에서 출발합니다. 어느 폴더에 어떤 파일을 만드는지 하나도 건너뛰지 않고 짚습니다.
만들 파일
verify/
├─ sec_tools.py 읽기 도구 (4번 트랙에서 그대로 가져옴)
├─ sec_write_tools.py 쓰기 도구 ← 새로 만듭니다
├─ test_sec_write_tools.py 쓰기 도구 검증 ← 새로 만듭니다
├─ notes/
│ ├─ __init__.py
│ ├─ notes_state.py State ← 새로 만듭니다
│ ├─ notes_plan.py 쓸 내용 확정 ← 새로 만듭니다
│ ├─ notes_graph.py 그래프 ← 새로 만듭니다
│ └─ run_demo.py 전체 실행 ← 새로 만듭니다
├─ test_notes_plan.py 확정 로직 검증 ← 새로 만듭니다
└─ test_notes_graph.py 그래프 검증 ← 새로 만듭니다
읽기 도구는 새로 만들지 않습니다. 4번 트랙에서 만들어 검증한 것을 그대로 씁니다. 이유는 4차시에서 다룹니다.
폴더 만들기
mkdir -p verify/notes
touch verify/notes/__init__.py
__init__.py 는 notes 를 파이썬 패키지로 만듭니다. 이 파일이 없으면 from notes.notes_graph import ... 가 동작하지 않습니다.
실행 환경
4번 트랙 8차시와 같습니다. 호스트 파이썬이 3.10 이상이면 가상환경으로, 아니면 컨테이너로 합니다.
cd verify
docker build -t llmwiki-verify .
Dockerfile 에 langchain-openai 가 들어 있어야 합니다. 5번 트랙에서 더한 것입니다.
FROM python:3.12-slim
WORKDIR /work
RUN pip install --no-cache-dir --disable-pip-version-check langgraph langchain-openai
COPY . /work
CMD ["python", "-m", "unittest", "discover", "-p", "test_*.py", "-v"]
실행할 때 주의할 점
데모를 돌릴 때 모듈로 실행해야 합니다.
docker run --rm -v "$PWD":/work -w /work llmwiki-verify python -m notes.run_demo
python notes/run_demo.py 로 실행하면 파이썬이 notes/ 를 경로에 넣습니다. 그러면 최상위의 sec_tools 를 찾지 못해 이렇게 납니다.
ModuleNotFoundError: No module named 'sec_write_tools'
실제로 겪은 오류입니다. -m 을 쓰면 현재 폴더가 경로에 들어가 해결됩니다.
작업 폴더
Agent 가 다룰 폴더는 코드가 만듭니다. 손으로 만들지 않습니다.
workspace/
├─ meetings/ 회의록을 여기에 둡니다
├─ actions/ 결과가 여기에 생깁니다
└─ .backup/ 덮어쓸 때 자동으로 생깁니다
workspace/ 는 읽기 도구의 ALLOWED_ROOT 입니다. Agent 는 이 폴더 밖을 읽지도 쓰지도 못합니다. 그 보장이 다음 차시들의 전제입니다.
확인
docker run --rm -v "$PWD":/work -w /work llmwiki-verify \
python -c "import sec_tools; print(sec_tools.ALLOWED_ROOT)"
이렇게 나오면 준비된 것입니다.
/work/workspace
/work 는 컨테이너 안에서 현재 폴더를 가리키는 이름입니다. 위 docker run 의 -v "$PWD":/work 가 내 폴더를 거기에 붙였습니다. 그러니 /work/workspace 는 내 컴퓨터의 verify/workspace/ 와 같은 곳입니다.
위 출력은 2026-08-15 에 실제로 실행해 받은 것입니다. 다른 경로가 나오거나 ModuleNotFoundError 가 나면 verify/ 폴더에서 명령을 내렸는지 확인하세요.