Observer
무엇인가
Observer는 화면·카메라·마이크 입력을 일정 간격으로 로컬 LLM에 넣어 판정시키고, 조건이 성립하면 메시징·알림·녹화 같은 동작을 실행하는 마이크로 에이전트 플랫폼이다. 클라우드 비전 API에 화면을 업로드하는 대신 사용자 기기에서 추론을 돌리는 감시·트리거 계층에 해당하며, "X일 때 Y" 형태의 규칙을 모델 판단으로 평가한다.
어떻게 동작하나
에이전트는 Sensors → Models → Tools 세 부분으로 구성된다. 센서가 루프마다 입력을 모으고($SCREEN, $SCREEN_OCR, $CAMERA, $CAMERA_OCR, $CLIPBOARD, $MICROPHONE, $SCREEN_AUDIO, $ALL_AUDIO, $MEMORY, $IMEMORY, $IMEMORY_OCR), 모델이 시스템 프롬프트와 함께 그 입력을 판정한 뒤 Code 탭의 JavaScript가 도구를 호출한다. Code 탭은 response, decision, agentId, screen, camera, imemory, images, prompt, microphone, screenAudio, allAudio 변수를 컨텍스트로 받고, JavaScript는 브라우저 샌드박스에서 실행된다. 메모리 도구(getMemory, setMemory, appendMemory, getImageMemory 등)로 에이전트별 상태를 축적하고, startAgent·stopAgent로 다른 에이전트를 제어한다.
무엇과 다른가
화면 감시를 클라우드 비전 API에 위임하는 도구와 달리 추론이 로컬에서 일어나 화면·카메라 프레임이 외부 서버로 전송되지 않는다. Zapier·IFTTT 계열 자동화가 명시적 이벤트나 API 훅을 트리거로 요구하는 것과 달리, 여기서 조건은 모델이 픽셀과 전사 텍스트를 보고 내리는 판단이다. 알림 경로도 Discord 웹훅, Telegram 봇, 이메일, Pushover, 자동 전화, SMS, Whatsapp, 로컬 사운드까지 도구 호출로 통일돼 있다.
어떻게 쓰나
Agent Dashboard에서 Create New Agent를 누르고 Configuration 탭에 이름·설명·모델·루프 간격을 채운다. 시스템 프롬프트에 $SCREEN 같은 센서 토큰을 넣고 Code 탭에 도구 호출을 포함한 JavaScript를 작성하면, 에이전트가 지정한 간격마다 한 번씩 실행된다. Telegram은 @observer_notification_bot에 메시지를 보내 chat_id를 얻고, 녹화는 startClip·markClip·stopClip으로 Recording 탭에 클립을 남긴다.
전제와 한계
로컬 LLM을 돌릴 하드웨어가 전제다. 음성 센서는 transformers.js로 whisper 모델을 실행해 전사를 만든다. SMS는 A2P 정책 때문에 미국·캐나다로 발송이 차단돼 있고, 전화·SMS·Whatsapp 도구는 번호를 화이트리스트에 등록해야 동작한다. 이메일 도구는 로그인한 계정 주소로만 보낼 수 있으며, 브라우저 알림은 브라우저 설정에 따라 차단될 수 있다.