Home
Sangki Han
Cancel

LangChain 도입기 - LLM 에이전트 루프를 직접 짜다가 생긴 일

서버 에러 로그를 LLM이 분석해서 Slack으로 원인과 수정 코드를 보내주는 시스템을 만들고 있었다. LLM이 단순히 로그를 받아서 답을 내는 게 아니라, 필요하면 직접 소스 파일을 검색해가며 분석하는 에이전트 구조였다. 처음엔 이 루프를 직접 구현했는데, 문제가 생겼다. 직접 구현한 에이전트 루프 LLM 에이전트의 동작 방식은 단순하다. 1....

BM25를 활용한 RAG 검색 품질 향상 — 벡터 검색의 한계와 하이브리드 접근

개인 프로젝트에서 RAG(Retrieval-Augmented Generation)를 구축하면서 벡터 검색만으로는 해결되지 않는 문제를 겪었다. LLM이 에러 스택 트레이스를 분석할 때 UserService, findById 같은 정확한 클래스명·메서드명을 언급하는데, 벡터 검색이 그 파일을 상위에 올려놓지 못하는 경우가 있었다. 이 문제를 BM25와...

개인 비서 — 할 일 목록과 리마인더 구현

일정(Calendar)은 특정 날짜의 이벤트고, 할 일(Todo)은 완료해야 하는 작업이고, 리마인더(Reminder)는 특정 시간에 알림을 보내는 것이다. 세 가지가 비슷해 보이지만 실제 사용 패턴은 다르다. “다음주 화요일 오전 10시 치과” → Calendar (날짜와 시간이 있는 이벤트) “오늘 PR 리뷰해야 해” → Todo (완료...

개인 비서에 Google Calendar·Sheets 연동하기 — 서비스 계정과 삽질

일정 추가와 지출 기록을 자연어로 처리하려면 Google Calendar와 Google Sheets가 필요하다. “다음주 월요일 오후 2시 치과 예약해줘”라고 하면 실제 Calendar에 이벤트가 생기고, “스타벅스 6500원”이라고 하면 Sheets에 행이 추가되는 방식이다. 서비스 계정 방식 Google API를 쓰는 방법은 크게 두 가지다...

개인 비서에 장기 기억 달기 — ChromaDB + Ollama 임베딩

대화형 AI의 근본적인 한계가 있다. 오늘 “내 생일은 10월 27일이야”라고 말해도, 내일 다시 “내 생일 언제야?”라고 물으면 모른다. LLM의 컨텍스트는 대화 세션이 끝나면 사라지기 때문이다. 개인 비서로 쓰려면 이전에 말한 것들을 기억해야 한다. “와이프 이름 뭐라고 했지?”, “내가 선호하는 음식이 뭐야?” 같은 질문에 답할 수 있어야 한다...

Slack으로 부리는 개인 비서 — FastAPI + LangGraph로 만든 AI 에이전트

log-agent를 운영하면서 “에러 분석 에이전트를 만드는 데 쓴 구조를 일상에도 쓸 수 있지 않을까”는 생각이 들었다. 일정 관리, 지출 기록, 할 일 목록, 리마인더 같은 것들을 하나의 Slack 채널에서 말로 처리하는 개인 비서다. 이 포스트는 전체 구축 과정을 한눈에 볼 수 있는 인덱스다. 각 주제별 상세 글로 이동할 수 있다. 전체 ...

AI 오류 자동 분석 에이전트 구축기 (3) — Embedding 모델과 ChromaDB RAG 구축

에러 로그만 보고 정확한 수정 코드를 제안하려면 LLM이 소스 파일을 알고 있어야 한다. 소스 파일 전체를 매번 프롬프트에 넣을 수는 없다. RAG(Retrieval-Augmented Generation)가 필요한 이유다. 왜 RAG를 도입했나 SEMS는 수백 개의 Java 파일로 구성되어 있다. 이걸 전부 LLM 프롬프트에 넣으면: 토큰 ...

AI 오류 자동 분석 에이전트 구축기 (2) — FastAPI와 파이프라인 설계

에이전트의 뼈대가 되는 FastAPI 서버를 어떻게 설계했는지, 그리고 SEMS(Spring Boot)에서 어떻게 에러를 보내는지 정리한다. 왜 FastAPI인가 에이전트 백엔드로 Python을 선택한 이유는 LLM 생태계 때문이다. Ollama Python SDK, LangChain, ChromaDB 등 LLM 관련 라이브러리가 Python에 집...

Spring AI + Ollama로 반려동물 음식 검색 기능 구현하기

개요 PuppyNote 프로젝트에 반려동물 음식 안전 정보를 제공하는 AI 검색 기능을 추가했다. “당근은 강아지에게 먹여도 되나요?” 같은 질문을 입력하면 AI가 안전 여부와 영양 정보를 답변해주는 기능이다. AI 호출은 비용(응답 시간)이 크기 때문에 Elasticsearch를 1차 캐시로 사용해 동일한 질문이 반복될 경우 AI를 거치지 않고...

AI 오류 자동 분석 에이전트 구축기 (1) — 도입 배경과 초기 세팅

회사 SEMS 플랫폼을 운영하면서 반복적으로 겪는 불편함이 있었다. 오류가 발생할 때마다 처리 흐름이 너무 길고 소모적이었다. 왜 만들었나 SEMS 운영 중 오류가 발생하면 흐름은 항상 같았다. 콘솔을 열고 → 서버에 접속하고 → 로그를 뒤지고 → 원인을 파악하고 → 수정 후 PR을 생성하고 → 배포 후 오류가 해결됐는지 다시 확인한다. 단순히 반...