안녕하세요. 새해가 밝고 벌써 보름이 지났네요.
최근 ‘1인 팀’으로서의 생산성을 고민하며 보냈는데, 그 고민의 결과물 중 하나인 나만의 가상 비서 프레임워크, ‘Sentinel’을 소개하려 합니다.
왜 가상 비서인가?
2026년 현재, 우리는 쏟아지는 정보와 수많은 협업 툴(Slack, Discord, iMessage, Notion…) 속에서 살고 있습니다. AI가 코딩은 잘 해주지만, 정작 “내 일정에 맞춰서 오늘 할 일을 브리핑해줘”라거나 “저번에 그 코드 어디에 뒀더라?” 같은 개인화된 맥락(Context)까지 파악해주는 도구는 여전히 부족했습니다.
특히 클라우드 기반의 AI 서비스들은 편리하지만, 제 개인적인 데이터나 업무 문서를 모두 올리기엔 보안과 비용 측면에서 망설여지는 부분이 있었죠. 그래서 ‘내 로컬에서 돌아가며, 필요할 때만 외부 도구를 쓰는 안전한 비서’를 직접 만들기로 했습니다.
여기까지는 거창한 포부이구요. 사실은 그냥 만들어보고 싶은거 이것저것 붙이기 위한 장난감인 목적이 커요. 이렇게하면 더 좋지 않을까 저렇게 하면 더 좋지 않을까 하는 부분들을 한데 모아놓은 모델하우스 같은 느낌이죠.
Sentinel의 핵심 설계 철학
Sentinel은 단순히 챗봇이 아닙니다. 목표를 달성하기 위해 스스로 계획을 세우고 도구를 사용하는 에이전트(Agent) 지향적 구조를 가지고 있습니다.
1. Dual-stage Tool Routing (토큰 절약을 위한 의도 분류)
모든 가능한 도구를 LLM에게 한꺼번에 알려주는 방식은 토큰 소모가 크고, 환각(Hallucination) 현상이 발생하기 쉽습니다. (저는 보통 히팅율이 낮다고 표현하는데 맞는 표현인지는 모르겠습니다.) Sentinel은 로컬에서 사용자의 질의 의도를 1차적으로 분류하여 꼭 필요한 도구만 선별합니다. 이를 통해 실제 메인 LLM으로 전달되는 토큰량을 획기적으로 줄이고 정확도를 높이는 2단계 라우팅 시스템을 채용했습니다. 다만 이 부분은 아직 실험중인 부분이라 개선의 여지가 많습니다. 일반 컴퓨터에서 돌아가려면 더 경량 모델을 써야 할 것이고, 이 방법이 옳은 방법인지도 아직 확신이 서지 않습니다.
2. Action Loop (ReAct 방식의 자율 행위)
사용자의 요청이 복잡할 경우(예: 웹에서 최신 뉴스 세 개를 요약해서 내 이메일로 보내줘), Sentinel은 한 번에 답을 내지 않습니다.
- 생각(Thought): “먼저 웹 검색을 해서 뉴스를 찾아야겠다.”
- 행동(Action):
Web Search도구 실행 - 관찰(Observation): 결과 확인 이 과정을 목표가 달성될 때까지 반복하며 문제를 해결합니다. 쉽게 말하면, MCP인거죠.
제가 MCP를 쓰지 않고 굳이 ReAct를 구현한 이유는, 좀 더 경량화 할 수 있는 방법이 있지 않을까 하는 생각 때문이었습니다. MCP는 강력한 프레임워크이지만, 그만큼 무겁기도 하니까요. 앞으로 차차 실험해볼 예정입니다.
3. 고도의 모듈화
Sentinel은 두뇌인 Server와 입/출력단을 분리해 놨습니다. 터미널에서 대화할 수도 있고, iMessage를 통해 비서에게 업무를 지시할 수도 있죠. 이렇게 분리를 해 놓은 이유는 멀티 에이전트 구조를 고려 한 부분입니다. 코어만 있는 에이전트도 만들 수 있고, 입출력을 에이전트 네트워크에 직접 붙일 수도 있게 말이죠.
또, 앞으로 일종의 모듈 허브를 만들어서 다양한 입출력기, Tool, Model을 쉽게 추가할 수 있도록 하기 위한 부분도 있습니다.
4. Swarm (멀티 에이전트 협업)
저는 개인적으로 단일 모델이 모든 것을 해결하는 것보다는, 각기 다른 전문 분야를 가진 여러 에이전트들이 협업하는 구조를 지향합니다. 복잡한 미션을 받았을 때 이를 더 작은 단위의 태스크로 나누고, 적재적소의 에이전트에게 전달하여 문제를 해결하는 것이 좀 더 환각도 줄고, 효율적일 것이라는 생각 입니다. 1인 개발자가 사실상의 ‘1인 팀’으로 기능할 수 있게 해주는 핵심 엔진인 셈입니다.
마치며
과거에 WRaThioN 같은 툴을 만들며 꿈꿨던 자동화의 로망이, 이제는 LLM의 발전 덕분에 ‘대화로 지시하는 비서’의 형태로 구체화되었습니다. (생각해보니 이 프로젝트에 대한 이야기를 안했었네요. 언젠가 기회가 된다면 한번 풀어보겠습니다. 너무 오래된 프로젝트라 손도 좀 봐야 하구요.)
아직은 껍데기 수준 이지만, 앞으로 ChromaDB를 활용한 문서 기반 RAG(Retrieval-Augmented Generation)를 고도화하고, 더 다양한 외부 API 연동 도구(Actuators)들을 추가할 계획입니다.
나아가 swarm 프로토콜 고도화, tool 호출 경량화 등 제가 해보고 싶었던것들을 하나씩 추가 해 나가려고 합니다.
관심 있으신 분들은 Sentinel GitHub 저장소를 한번 구경해 보세요!
다음 글에서는 Sentinel의 내부 구조에 대해 좀 더 자세히 다뤄보겠습니다.
감사합니다.