# 단일 SQLite 테이블과 소수의 크론 작업을 사용하는 해킹 가능한 AI 비서

> Clean Markdown view of GeekNews topic #20333. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20333](https://news.hada.io/topic?id=20333)
- GeekNews Markdown: [https://news.hada.io/topic/20333.md](https://news.hada.io/topic/20333.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-04-15T10:28:51+09:00
- Updated: 2025-04-15T10:28:51+09:00
- Original source: [geoffreylitt.com](https://www.geoffreylitt.com/2025/04/12/how-i-made-a-useful-ai-assistant-with-one-sqlite-table-and-a-handful-of-cron-jobs)
- Points: 2
- Comments: 1

## Topic Body

- Stevens는 SQLite 테이블과 cron 작업을 사용하여 구축된 간단한 AI 비서임
- Stevens는 매일 아침 사용자에게 일정, 날씨, 우편물 등의 정보를 제공함
- Stevens의 구조는 Val.town 플랫폼에 호스팅되며, SQLite 저장소와 HTTP 요청 처리, 이메일 송수신을 지원함
- Stevens는 다양한 데이터 소스를 통해 정보를 수집하고, 이를 통해 사용자에게 맞춤형 정보를 제공함
- Stevens는 개인 프로젝트로, 사용자가 코드를 포크하여 자신만의 AI 도구를 만들 수 있음

---

### Stevens: 해킹 가능한 AI 비서

- Stevens는 **Ishiguro**의 소설 "Remains of the Day"의 집사 이름에서 따온 AI 비서임
- 매일 아침 Telegram을 통해 사용자에게 일정, 날씨, 우편물 등의 정보를 제공함
- 사용자는 Telegram 채팅을 통해 Stevens와 소통할 수 있음

### Stevens의 구조

- Stevens는 **Val.town** 플랫폼에 호스팅되며, SQLite 테이블과 cron 작업을 사용함
- Stevens의 "노트북"은 SQLite 테이블로, 일정 및 배경 정보를 저장함
- cron 작업을 통해 **Claude API**를 호출하여 아침 브리프를 작성하고 Telegram으로 전송함

### 데이터 수집 방법

- Google Calendar API를 통해 일정 데이터를 수집함
- 날씨 API를 통해 지역 날씨 예보를 확인함
- USPS Informed Delivery를 통해 우편물 정보를 OCR 처리함
- Telegram 및 이메일 메시지를 통해 로그 항목을 추가함
- 매주 "재미있는 사실"을 추가하여 일일 업데이트에 색다른 요소를 더함

### 프로젝트에 대한 반성

- 개인 AI 도구는 다양한 정보 소스에 대한 접근이 중요함
- "메모리"는 간단하게 시작할 수 있으며, 필요에 따라 확장 가능함
- Stevens는 사용자에게 재미를 주기 위해 형식적인 집사처럼 말하도록 설정됨

### 직접 시도해보기

- Stevens는 상용 제품이 아닌 개인 프로젝트임
- 사용자는 코드를 포크하여 자신만의 유용한 도구를 만들 수 있음
- Val Town CLI를 사용하여 로컬 파일 시스템과 동기화 가능함

## Comments



### Comment 37183

- Author: neo
- Created: 2025-04-15T10:28:51+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43681287) 
- 이 기능의 유용성 때문인지, 아니면 "영국 신사 집사" 같은 표현 때문인지 모르겠음
  - 왜 이 기능이 Apple이나 Google의 제품 출시가 아닌, 한 엔지니어의 블로그에서 읽히는지 궁금함
  - 이 두 회사가 AI 기술을 요약이나 질문-답변 같은 '해결된 문제' 영역에 적용하지 않는 것은 실망스러움
  - AI와 관련된 기회가 있다면, 이 독점적인 두 회사에 위협이 될 수 있을 것임

- 내 유틸리티 프로그램이 메일박스에 접근할 수 있다면 어떨까 생각해 봄
  - 날씨를 확인하거나 시스템 명령을 실행하는 작은 유틸리티 프로그램이 있음
  - 메일박스가 있다면 정보를 보내고 AI가 이를 분석해 이메일을 보내거나 새로운 메시지를 생성할 수 있음
  - 이메일을 분석하고 내부 저장소에 추가한 후 메시지를 삭제함으로써 유용하게 사용할 수 있음

- 비슷한 오픈 소스 프로젝트에 대한 아이디어를 생각 중임
  - 백엔드를 사용자가 접근할 수 있는 LLM으로 구성하고 싶음
  - 터치스크린과 연결하여 Alexa 같은 기기로 사용할 수 있는지 궁금함
  - 캘린더, 날씨, 홈브리지, Spotify 등과의 통합을 확장 가능하게 만들고 싶음
  - 현재 프로젝트에 많은 시간을 할애할 수는 없지만, 이 방향으로 나아가는 사람들과 함께하고 싶음

- 실용적인 AI 해킹을 보고 싶음
  - 복잡한 구조나 벡터 DB 없이 기존 데이터 소스와의 실용적인 통합을 선호함

- "컨텍스트 토큰 스위트 스팟"을 해결하기 위한 방법을 실험 중임
  - LLM이 데이터베이스와 협력하여 정보를 저장하고 요약하는 방식으로 작동함
  - 요약 문서를 생성하여 컨텍스트를 유지하면서도 데이터베이스를 통해 중요한 세부사항을 보완할 수 있음

- sqlite DB를 다음 토큰 예측에 사용한다고 생각했음
  - 다른 사람들은 Claude를 사용함

- mcp.run과 태스크를 사용하여 비슷한 것을 구축했음
  - 대화가 존재하는지 확인하고 결과를 저장하는 방식으로 프롬프트를 수정함
  - 레지스트리에 서블릿을 추가하여 봇의 기능을 확장할 수 있음

- Stevens는 처음에는 Apple이나 Google 제품처럼 건조한 톤으로 말했지만, 포멀한 집사처럼 말하는 것이 더 재미있었음
  - 개인 비서 세계에서 LLM이 너무 많은 말을 하는 것이 가장 큰 불만 중 하나임
  - 부자가 되어 음성 비서와 친구가 될 시간이 생기기 전까지는 J.A.R.V.I.S.가 아닌 LCARS가 필요함

- 이러한 도구는 앞으로 몇 년간 해커들에게 비옥한 토양이 될 것임
  - 스택의 많은 부분이 OSS 배관으로 상품화되어 있으며, 호스팅 추론은 이미 저렴하고 쉬움
  - 이메일과 캘린더에 에이전트를 연결하는 데 보안 문제가 있지만, 많은 사람들이 Apple이나 Google에 통제권을 넘기는 것보다 전체 스택을 제어하는 것을 선호할 것임

- 메모리 가지치기나 요약에 대해 생각해 본 적이 있는지 궁금함
  - 오래된 항목을 삭제하는 대신 LRU를 사용하거나 응답을 요약하여 같은 테이블에 저장하는 방법을 고려할 수 있음
  - 원시 데이터는 사라지지만 압축된 버전은 남아 있어 메모리를 가볍게 유지하면서도 컨텍스트를 보존할 수 있음
