본문으로 건너뛰기

Activity Frames: 화면 활동을 재현 가능한 워크플로로 변환

화면 캡처를 로컬에서 구조화해 반복 작업을 스크립트로 컴파일하고 에이전트가 재실행하도록 하는 툴킷.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

activity-frames는 로컬에서 화면 스냅샷과 UI 이벤트를 세션화해 결정적 활동 프레임으로 컴파일하고, 반복 프레임을 클릭·타이핑 단위의 스텝 스크립트로 변환해 에이전트가 재실행하도록 만든다. 컴파일 과정에는 LLM이 개입하지 않으며 출력은 JSON/YAML/Markdown으로 즉시 에이전트 프롬프트에 붙일 수 있다. MCP 도구 여섯 개와 Python/CLI 인터페이스로 통합이 쉬우며 프라이버시는 로컬 저장과 옵트인 텍스트 설정으로 보호된다.

섹션별 상세

컴퓨터 사용 기록은 원시 스냅샷 수천 건으로 구성돼 추론에 적합하지 않다. activity-frames는 화면 스냅샷과 UI 이벤트를 세션화해 '프레임'이라는 경계화된 레코드로 컴파일하며, 프레임은 앱·URL·체류 시간·입력량 같은 결정적 속성으로 구성된다. 이렇게 생성된 프레임은 에이전트 프롬프트에 붙일 수 있는 컨텍스트 블록과 증거 포인터를 포함해 투명하게 원자료로 역추적 가능하다.
bash
pip install activity-frames
aframes record # start capturing (local, audio off by default)
aframes context # your last 2 hours, agent-ready

기본 설치와 즉시 캡처 시작, 그리고 최근 시간대의 에이전트용 컨텍스트 블록을 빠르게 출력하는 CLI 워크플로다. aframes record는 로컬 캡처 엔진를 프로비전하거나 기존 DB를 가리키고, aframes context는 컴파일된 요약을 즉시 생성한다. 이 조합으로 에이전트에 붙일 컨텍스트를 수초 내에 만들 수 있다.

근거
  • 화면 스냅샷과 UI 이벤트를 컴파일해 결정적 활동 프레임을 만든다. README 예시의 프레임 YAML 블록과 'USER ACTIVITY' 컨텍스트 출력 샘플, SPEC.md의 'measured' 계층 설명을 참조하십시오.
반복 작업은 에이전트가 매번 유추해 수행하면 토큰 비용이 불필요하게 증가한다는 문제가 있다. activity-frames는 반복적으로 발생하는 프레임을 클릭·타이핑 단위의 순서화된 스텝 스크립트로 변환해 재실행 가능한 워크플로로 컴파일하며, 에이전트는 슬롯만 채워 동일한 절차를 재생하도록 설계되어 있다. 연구 폴더와 구현에는 Routine Overhead Ratio 계측과 결정적 재실행기를 연결한 측정 결과 및 브라우저 재생기 구현이 포함되어 있다.
bash
aframes steps --find "message john doe"

특정 작업을 이름으로 검색해 그 프레임의 클릭·타이핑 순서를 재생 가능한 스텝 배열로 얻는 명령이다. 출력은 각 스텝의 타임스탬프·조작 종류·대상 요소·URL을 포함해 에이전트가 slot을 채워 재실행할 수 있게 만든다. 재실행 경로는 예상 경로에서 벗어나면 중단하고 묻도록 설계되어 있다.

근거
  • 반복 작업을 클릭·타이핑 스텝으로 변환해 에이전트가 재실행하도록 한다. aframes steps 출력 예시와 연구 폴더의 재생기 구현·Routine Overhead Ratio 계측 결과를 확인하십시오.
MCP 표준을 통해 여섯 개 도구(get_context, get_activity, get_steps, get_day_summary, get_patterns, get_communications)를 노출해 에이전트 통합을 단순화한다. aframes는 CLI·Python API·MCP 서버를 제공하므로 에이전트는 로컬 컴파일러를 직접 호출해 컨텍스트 블록과 스텝을 즉시 얻을 수 있다. 예시로 'aframes context'는 2시간 분량의 요약을 초 단위로 컴파일해 바로 프롬프트에 붙일 수 있다.
python
from activity_frames import ActivityLog
log = ActivityLog()
doc = log.day()  # today, structured
print(log.context(hours=2))  # paste-ready context block

Python API로 로컬 컴파일러를 호출해 하루치 혹은 최근 활동을 구조화된 문서로 가져오는 사용 예다. ActivityLog는 SQLite 기반 캡처 DB를 읽기 전용으로 열어 증거 포인터와 입력 통계를 포함한 문서를 반환한다. 반환 문서는 에이전트 프롬프트에 바로 붙여 쓸 수 있다.

bash
aframes mcp # MCP stdio server

MCP 표준 입출력 서버를 기동해 다른 MCP 클라이언트(예: Claude MCP)와 연동할 수 있게 만드는 커맨드다. 이 모드에서 aframes는 get_context·get_steps 등 여섯 도구를 MCP로 노출해 에이전트가 실시간으로 로컬 메모리를 조회하게 해준다. 에이전트는 이 인터페이스를 통해 재실행·패턴 조회·커뮤니케이션 표면 목록을 얻는다.

근거
  • MCP 도구 여섯 가지를 통해 에이전트가 컨텍스트·스텝·패턴·커뮤니케이션 표면을 조회할 수 있다. AGENTS.md와 docs/mcp.md에 나열된 get_context, get_activity, get_steps, get_day_summary, get_patterns, get_communications 도구 목록을 참조하십시오.
프라이버시는 설계에서 우선시되므로 모든 캡처와 컴파일 과정은 로컬에서 일어난다. 컴파일 경로에는 LLM이 개입하지 않으며, 캡처 DB는 로컬 파일로 남아 있어 사용자가 접근 권한과 디스크 암호화로 보호해야 한다. 텍스트 노출 여부는 출력 시 --include-text 같은 옵트인 플래그로 제어되며 오디오 캡처는 기본적으로 꺼져 있다.
근거
  • 컴파일 경로에 LLM은 개입하지 않으며 모든 처리와 저장은 로컬에서 이뤄진다. 프라이버시 모델 섹션과 README의 'No LLM in the compile path' 문장을 근거로 삼으십시오.
구현 세부사항과 호환성은 실무적이다: 기본 엔진으로 nocta-recorder 미리 빌드된 바이너리를 프로비전하고 sha256 검증을 수행하는 방식을 사용한다. 기존 캡처 엔진이 이미 있다면 환경 변수로 그 데이터베이스를 가리켜 컴파일만 수행할 수 있으며, 출력 포맷은 JSON·YAML·Markdown을 지원한다. 사이트별 엔티티 파서는 LinkedIn·GitHub·Google·Slack·Notion 등 25개 이상을 다루어 주요 협업 도구의 창 제목과 URL에서 구조적 엔티티를 뽑아낸다.

용어 해설

액티비티 프레임(activity-frames)
화면 캡처 로그를 세션화해 고정된 '프레임'으로 묶는 로컬 컴파일러이다. 캡처 데이터에서 입력량·앱·URL·행동 순서를 결정적으로 추출해 JSON/YAML 문서를 만든다. 이 문서는 에이전트의 컨텍스트 블록과 재실행 가능한 스텝 스크립트 생성에 바로 쓰인다.
MCP
에이전트와 플러그인을 연결하는 표준 입출력 프로토콜로서 aframes가 제공하는 도구 집합의 대상이다. aframes는 get_context·get_activity·get_steps 등 여섯 개 도구를 MCP로 노출해 에이전트가 로컬 메모리를 조회하도록 한다. 프로토콜을 통해 에이전트는 컴파일된 프레임을 호출해 재실행·패턴 분석 기능을 이용할 수 있다.
Nocta 레코더(nocta-recorder)
화면 스냅샷과 UI 이벤트를 수집하는 기본 캡처 엔진으로 aframes가 기본으로 프로비전한다. 설치 시 MIT 빌드를 고정하고 sha256 검증을 수행해 로컬에서 기록을 관리하며, 사용자는 자신의 캡처 DB를 가리켜 바로 컴파일 가능하다. 캡처는 로컬 저장소에 머물러 컴파일 경로에는 LLM이 개입하지 않는다.
결정적 재실행기(deterministic executor)
반복해서 발생하는 활동 프레임을 요소별 클릭·타이핑 시퀀스로 변환해 브라우저에서 재생하는 실행기이다. 입력 슬롯만 교체해 동일한 절차를 재생하므로 에이전트가 다시 유추할 필요가 없다. 연구 섹션에는 실측 기반의 재생기 구현과 비용 계측이 포함되어 있다.
측정된 계층(measured tier)
SPEC에서 규정한 '측정된' 데이터를 말하며 캡처에서 결정적으로 도출 가능한 항목만 포함한다. 세션·체류시간·입력량·창 제목·증거 포인터처럼 코드로 재현 가능한 값만 이 계층에 놓인다. 이 계층은 추측 라벨 없이 항상 원자료로 역추적 가능해야 한다.
추론된 계층(inferred tier)
사용자가 선택적으로 추가하는 해석적 메타데이터를 담는 확장 계층이다. 모든 추론은 네임스페이스·신뢰도 태그와 근거 링크를 함께 기록해 측정 데이터와 혼합되지 않게 만든다. 투명성 때문에 문서는 자신의 블라인드스팟을 명시한다.
엔티티 파서(entity parsers)
캡처된 윈도우 타이틀과 URL을 사이트별 규칙으로 분해해 사람·프로젝트·페이지 유형을 식별하는 파서 집합이다. LinkedIn·GitHub·Google 등 25개 이상의 사이트에 대해 사이트별 엔티티 타입을 반환하며, 알 수 없는 사이트는 일반 페이지 참조로 대체한다. 파서 개선은 PR로 기여할 수 있다.

기술

  • MCP
  • nocta-recorder
  • Python
  • SQLite
  • JSON
  • YAML
  • PyYAML
  • OCR

활용 사례

  • 반복적인 데스크톱·웹 작업을 에이전트가 토큰 비용 없이 재실행하게 해 자동화 비용을 절감한다.
  • LLM 프롬프트에 붙일 정밀한 '사용자 활동' 컨텍스트 블록을 로컬에서 즉시 생성해 에이전트 의사결정 근거로 제공한다.
  • 데이터 유출 위험을 낮추면서 창 제목과 URL 기반의 커뮤니케이션 표면을 에이전트가 참조하게 한다.
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 12.수집 2026. 08. 12.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.