Slack과 SQLite로 시작한 Personal Trainer Agent의 첫 MVP

Slack과 SQLite로 시작한 Personal Trainer Agent의 첫 MVP의 핵심 문제와 해결 흐름을 보여주는 ai-life-agents Episode 1 개념 이미지

작성자

카테고리:

프로젝트:

AI를 활용한 실제 사례를 하나 만들어보고 싶었습니다. 개인 프로젝트를 자동화하고, 그 과정을 사례로 공유해보고 싶었어요.

그런데 막상 시작하려니 해결하고 싶은 문제가 처음부터 하나로 정해져 있지는 않았습니다. 에이전트마다 필요한 기능도 다르고, 부딪히게 될 문제도 다를 테니까요. 먼저 어떤 기능과 문제가 필요한지 확인하는 과정이 필요했습니다.

그래서 1차 목표를 Personal Trainer Agent로 잡았습니다. 운동·식단·체중 기록을 받아서 쌓고, 그 기록을 바탕으로 간단한 피드백을 돌려주는 에이전트예요. 거창한 코칭 시스템이라기보다는, 일단 기록이 들어오고 다시 꺼내볼 수 있는 흐름부터 만드는 쪽에 가까웠습니다.

ai-life-agents Episode 1에서 문제 발견부터 초안 검토까지 이어지는 작업 흐름 도식
문제 발견 후 AI와 논의하고, 구현한 뒤 draft에서 다시 확인하는 흐름.

구성은 짧았습니다. Slack에서 운동, 식단, 체중 기록을 받습니다. 텍스트뿐 아니라 이미지 기록도 대상으로 잡았습니다. 체중만 보낼 수도 있고, 운동과 식단을 같이 보낼 수도 있고, 식단이나 운동 이미지를 여러 장 보낼 수도 있게 요구사항을 정리했습니다. 매일 꼭 정해진 장수를 보내야 하는 방식은 아니었어요.

그 기록은 SQLite에 저장하고, 현재 기록이나 주간 리포트를 규칙 기반으로 반환합니다. Slack 메시지 하나는 흩어진 답변 여러 개가 아니라 통합 피드백 하나를 주는 형태로 잡았습니다. 없는 항목은 짧게 기록 없음으로 표시하고요.

ai-life-agents Episode 1에서 초안 검토 후 수정 또는 WordPress draft로 이어지는 판단 흐름 도식
초안은 바로 공개하지 않고, 근거와 문맥을 다시 확인한 뒤 draft 상태로 넘긴다.

이 정도가 처음 만든 MVP의 범위였습니다.

실행 환경은 Dell Ubuntu Server였고, Slack 앱을 통해 기록을 받도록 구성했습니다. 데이터베이스는 우선 SQLite를 사용했습니다. 나중에 PostgreSQL이나 다른 자동화 도구를 붙일 여지는 남겨뒀지만, 첫 단계부터 범위를 넓히지는 않았습니다. 일단 기록이 들어와 저장되고, 저장된 내용을 기준으로 피드백이 나오는지가 먼저였으니까요.

Hermes Agent용 memory와 skill 문서도 준비해뒀습니다. 다만 초기 MVP에서 Slack Bot과 Hermes 실시간 호출을 바로 연결하지는 않았습니다. 현재 동작하는 쪽은 텍스트·이미지 건강 기록을 SQLite에 저장하고, 규칙 기반 로직으로 최근 기록과 주간 리포트를 반환하는 흐름입니다. Hermes PT context는 다음 연결을 위한 준비 상태에 가깝습니다.

처음부터 완성된 개인 코치를 만들었다고 말하기는 어렵습니다. 실제로 초기 구현을 사용해보니 생각보다 멍청한 대답이 많이 나왔고, 원하는 결과를 얻으려면 에이전트가 어떤 순서와 구조로 대답해야 하는지 더 고민해야 했습니다. 기록을 받는 것과 기록을 잘 해석하는 것은 역시 다른 일이더라고요.

그래도 출발점은 만들어졌습니다. Slack에서 기록을 받고, SQLite에 남기고, 규칙에 따라 피드백을 돌려주는 짧은 흐름입니다. 먼저 에이전트에게 판단을 맡기기 전에, 판단할 재료가 쌓이는 흐름부터 구현했습니다.

다음 편에서는 분석 품질이나 Personal Trainer의 전체 기능을 다루지 않습니다. 같은 건강 기록이 반복해서 들어오거나 재처리될 때, 데이터베이스에 같은 기록이 두 번 남을 수 있었던 문제 하나만 이어서 보겠습니다. 에이전트가 같은 기록을 두 번 받으면, 데이터베이스에도 두 번 남아야 할까요?

이 프로젝트의 글

이 글과 같은 프로젝트의 기록을 이어서 보려면 프로젝트 태그를 선택해 주세요.