콘텐츠로 이동

revka memory 및 estop

메모리 항목을 검사·관리하고, 비상 정지(emergency stop) 상태를 설정하거나 해제합니다.

서로 독립적이지만 연관성이 있는 두 커맨드 그룹을 이 페이지에서 다룹니다. revka memory는 Revka가 Kumiho 그래프 메모리에 저장하는 항목을 검사하고 정리하는 데 사용합니다 — 목록 조회, 개별 항목 조회, 백엔드 통계 확인, 항목 삭제를 지원합니다. revka estop은 안전 브레이크입니다: 에이전트의 동작을 제한하는 비상 정지를 설정하고, 현재 정지 상태를 확인하며, 준비가 되면 기능을 재개할 수 있습니다(선택적으로 일회용 비밀번호(OTP)를 통해 재개 가능).

터미널에서 에이전트의 기억을 감사하거나 정리하고 싶을 때는 revka memory를 사용하세요. 에이전트에 문제가 발생하여 즉시 중단해야 할 때, 또는 아웃바운드 네트워크 차단이나 특정 도구 동결처럼 지속적이고 범위가 지정된 제한을 설정하고 싶을 때는 revka estop을 사용하세요.

revka memory는 Revka가 Kumiho 그래프 메모리에 저장하는 메모리 항목을 검사하고 관리합니다. 로컬 데이터베이스가 아닌 Kumiho REST API에 직접 통신하므로, 환경에 Kumiho 인증 토큰이 필요합니다(아래 인증 및 사전 요건 참고). 에이전트 측 메모리 도구와 그래프 데이터 모델은 Kumiho 메모리 도구메모리 개요를 참고하세요.

Terminal window
revka memory stats
revka memory list
revka memory list --category core --limit 10
revka memory list --category conversation --session abc123 --offset 20
revka memory get my-decision-key
revka memory clear --category conversation --yes
revka memory clear --key my-decision --yes
revka memory clear --yes
서브커맨드설명
stats설정된 Kumiho 엔드포인트, 메모리 프로젝트, 스페이스 목록, 스페이스별 항목 수를 표시합니다.
list항목 목록을 조회합니다. 카테고리/세션 필터와 페이지네이션을 지원합니다.
get <key>정확한 슬러그화된 키로 단일 항목을 조회합니다(완전 일치).
clear키 접두사, 카테고리, 또는 전체 항목을 삭제합니다.

CLI는 REST를 통해 Kumiho를 읽고 쓰므로, 환경에 Kumiho 서비스 토큰이 필요합니다:

  • KUMIHO_SERVICE_TOKEN — 기본 인증 토큰, 또는
  • KUMIHO_AUTH_TOKEN — 대체 토큰으로 허용됩니다.

revka onboard를 실행하면 이 토큰들이 ~/.revka/.env에 저장되며, KUMIHO_SERVICE_TOKEN이 설정되지 않은 경우 ~/.kumiho/kumiho_authentication.json에서 자동으로 주입됩니다. 토큰이 없으면 revka memory는 백엔드에 연결할 수 없습니다. Kumiho 연결 설정(api_url, space_prefix, memory_project)은 [kumiho] 설정 블록을 참고하세요.

revka memory list는 저장된 항목을 최신 관련 항목 순으로 출력합니다. 카테고리와 세션으로 필터링하고, --limit--offset으로 대용량 결과를 페이지 단위로 탐색할 수 있습니다.

Terminal window
revka memory list # first 50 entries
revka memory list --category core --limit 10 # 10 core memories
revka memory list --category conversation --session abc123 # one session's chat memories
revka memory list --offset 50 --limit 50 # second page of 50
플래그타입기본값설명
--category <NAME>string(전체)카테고리로 필터링합니다: core, daily, conversation, 또는 사용자 정의 레이블.
--session <ID>string(전체)특정 세션 ID로 범위를 제한합니다.
--limit <N>integer50반환할 최대 항목 수입니다.
--offset <N>integer0건너뛸 항목 수입니다. --limit과 조합하여 페이지네이션에 사용합니다.

카테고리 이름은 Revka의 메모리 분류와 대응됩니다: **core**는 지속적인 장기 사실을, **daily**는 세션 로그를, **conversation**은 컨텍스트 내 대화를 저장하며, 그 외 문자열은 사용자 정의 레이블입니다. 코어 메모리는 만료되지 않으며, 일별 및 대화 메모리는 시간이 지남에 따라 관련도가 감소합니다. 개념적 모델은 메모리 개요에서 확인하세요.

revka memory get <key>는 키로 단일 항목을 조회합니다. 조회 시 완전한 슬러그화된 키가 필요하며, 접두사 일치가 아닌 완전 일치 방식으로 동작합니다:

Terminal window
revka memory get my-decision-key

출력에는 내용, 카테고리, 생성 타임스탬프, 세션 범위, kref가 포함됩니다.

revka memory stats는 개별 항목이 아닌 메모리 백엔드의 상태와 구조를 보고합니다:

Terminal window
revka memory stats

Revka가 연결된 Kumiho 엔드포인트, 메모리 프로젝트, 스페이스 목록, 각 스페이스의 항목 수를 표시합니다 — CLI가 인증되었고 올바른 백엔드를 가리키는지 빠르게 확인하는 방법입니다.

revka memory clear는 항목을 삭제합니다. --key(접두사) 또는 --category로 삭제 범위를 지정하며, 플래그를 지정하지 않으면 전체 항목을 삭제합니다. 삭제는 되돌릴 수 없으므로, --yes를 전달하지 않으면 대화식 확인을 요청합니다.

Terminal window
revka memory clear --key my-decision --yes # delete by key prefix
revka memory clear --category conversation --yes # delete all conversation entries
revka memory clear --yes # delete ALL entries
플래그설명
--key <PREFIX>슬러그화된 키가 이 접두사로 시작하는 항목을 삭제합니다.
--category <NAME>지정한 카테고리의 모든 항목을 삭제합니다.
--yes대화식 확인 프롬프트를 건너뜁니다.

revka estop은 Revka의 비상 정지 기능입니다. 에이전트가 즉시 적용하고 데몬 재시작 후에도 유지하는 지속적인 제한을 설정하므로, 게이트웨이를 중단하지 않고도 에이전트 동작을 중단하거나 제약할 수 있습니다. 가산적으로 조합 가능한 네 가지 정지 레벨, 현재 상태를 확인하는 status 서브커맨드, 제한을 해제하는 resume 서브커맨드를 제공하며 — 선택적으로 일회용 비밀번호로 재개를 보호할 수 있습니다.

Terminal window
revka estop # engage kill-all (default level)
revka estop --level network-kill # block all outbound network
revka estop --level domain-block --domain "*.chase.com" # block specific domains
revka estop --level tool-freeze --tool shell --tool browser
revka estop status # show current estop state
revka estop resume # resume kill-all
revka estop resume --network # resume the network kill
revka estop resume --domain "*.chase.com" # unblock a domain
revka estop resume --tool shell # unfreeze a tool
revka estop resume --otp 123456 # resume with an OTP code

--level 플래그는 제한할 기능을 선택합니다. 기본 레벨 — revka estop만 실행했을 때 사용되는 레벨 — 은 kill-all입니다.

레벨효과추가 플래그
kill-all모든 에이전트 실행을 중단합니다. 가장 강력한 정지입니다.
network-kill모든 아웃바운드 네트워크 접근을 차단합니다.
domain-block특정 도메인을 차단합니다(글로브 패턴 지원).--domain <PATTERN> (반복 가능)
tool-freeze특정 도구를 동결하여 에이전트가 호출하지 못하게 합니다.--tool <NAME> (반복 가능)
Terminal window
revka estop --level kill-all # or just: revka estop
revka estop --level network-kill
revka estop --level domain-block --domain "*.chase.com" --domain "*.paypal.com"
revka estop --level tool-freeze --tool shell --tool browser
  • --domain <PATTERN>domain-block에 필수이며 반복 가능합니다. 패턴은 와일드카드를 지원하고(예: *.bank.com), 정지를 설정할 때 유효성이 검사됩니다.
  • --tool <NAME>tool-freeze에 필수이며 반복 가능합니다. 도구 이름은 영숫자, -, _만 포함할 수 있습니다.

레벨은 가산적입니다: 차단된 도메인과 동결된 도구는 누적되며, 한 레벨을 설정해도 다른 레벨이 해제되지 않습니다. 특정 제한을 제거하려면 resume을 사용하세요.

revka estop status는 현재 설정된 내용을 출력합니다 — kill-all 및 network-kill 플래그, 차단된 도메인 목록, 동결된 도구 목록, 마지막 업데이트 시각.

Terminal window
revka estop status

에이전트가 실제로 적용하는 것과 동일한 지속적 상태 파일을 읽으므로, 현재 에이전트가 할 수 있는 것과 할 수 없는 것에 대한 권위 있는 정보를 제공합니다.

revka estop resume은 제한을 해제합니다. 선택자 없이 실행하면 kill-all 정지를 재개하고, 선택자를 지정하면 해당 제한만 대상으로 합니다.

Terminal window
revka estop resume # clear kill-all
revka estop resume --network # clear the network kill
revka estop resume --domain "*.chase.com" # unblock a single domain
revka estop resume --tool shell # unfreeze a single tool
선택자재개 대상
(없음)kill-all 정지.
--networknetwork-kill 정지.
--domain <PATTERN>차단된 도메인(반복 가능).
--tool <NAME>동결된 도구(반복 가능).
--otp <CODE>재개가 OTP로 보호된 경우 TOTP 코드를 제공합니다(위의 선택자 중 하나와 조합).

[security.estop] 아래에 require_otp_to_resume = true가 설정된 경우(estop이 활성화되었을 때의 기본값), resume에 유효한 TOTP 코드가 필요합니다. --otp로 인라인으로 제공하거나, 플래그를 생략하면 Revka가 대화식으로 입력을 요청합니다.

Terminal window
revka estop resume --otp 123456 # resume kill-all with an OTP
revka estop resume --network --otp 123456 # resume network kill with an OTP
revka estop resume # omit --otp to be prompted

TOTP 시크릿은 최초 초기화 시 생성되며, otpauth:// 등록 URI가 해당 시점에 한 번만 출력됩니다 — 인증 앱으로 스캔하여 등록하세요. 유효성 검사는 시계 드리프트를 고려하여 ±1 타임 스텝을 허용합니다. OTP 게이팅은 광범위한 OTP 서브시스템과 공유됩니다. 등록, 재생성, 게이팅 액션 설정은 OTP 게이팅 & 비상 정지를 참고하세요.

  1. 설정에서 estop 활성화 (최초 1회). ~/.revka/config.toml을 편집합니다:

    [security.estop]
    enabled = true
    state_file = "~/.revka/estop-state.json"
    require_otp_to_resume = true
  2. 필요할 때 정지를 설정합니다. 전체 중단의 경우:

    Terminal window
    revka estop

    또는 범위를 지정한 제한, 예를 들어 shell 도구 동결:

    Terminal window
    revka estop --level tool-freeze --tool shell
  3. 설정된 내용을 확인합니다.

    Terminal window
    revka estop status
  4. 안전할 때 재개합니다. OTP가 필요한 경우 함께 입력합니다:

    Terminal window
    revka estop resume --otp 123456