revka memory 및 estop
메모리 항목을 검사·관리하고, 비상 정지(emergency stop) 상태를 설정하거나 해제합니다.
서로 독립적이지만 연관성이 있는 두 커맨드 그룹을 이 페이지에서 다룹니다. revka memory는 Revka가 Kumiho 그래프 메모리에 저장하는 항목을 검사하고 정리하는 데 사용합니다 — 목록 조회, 개별 항목 조회, 백엔드 통계 확인, 항목 삭제를 지원합니다. revka estop은 안전 브레이크입니다: 에이전트의 동작을 제한하는 비상 정지를 설정하고, 현재 정지 상태를 확인하며, 준비가 되면 기능을 재개할 수 있습니다(선택적으로 일회용 비밀번호(OTP)를 통해 재개 가능).
터미널에서 에이전트의 기억을 감사하거나 정리하고 싶을 때는 revka memory를 사용하세요. 에이전트에 문제가 발생하여 즉시 중단해야 할 때, 또는 아웃바운드 네트워크 차단이나 특정 도구 동결처럼 지속적이고 범위가 지정된 제한을 설정하고 싶을 때는 revka estop을 사용하세요.
revka memory
섹션 제목: “revka memory”revka memory는 Revka가 Kumiho 그래프 메모리에 저장하는 메모리 항목을 검사하고 관리합니다. 로컬 데이터베이스가 아닌 Kumiho REST API에 직접 통신하므로, 환경에 Kumiho 인증 토큰이 필요합니다(아래 인증 및 사전 요건 참고). 에이전트 측 메모리 도구와 그래프 데이터 모델은 Kumiho 메모리 도구와 메모리 개요를 참고하세요.
revka memory statsrevka memory listrevka memory list --category core --limit 10revka memory list --category conversation --session abc123 --offset 20revka memory get my-decision-keyrevka memory clear --category conversation --yesrevka memory clear --key my-decision --yesrevka 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으로 대용량 결과를 페이지 단위로 탐색할 수 있습니다.
revka memory list # first 50 entriesrevka memory list --category core --limit 10 # 10 core memoriesrevka memory list --category conversation --session abc123 # one session's chat memoriesrevka memory list --offset 50 --limit 50 # second page of 50| 플래그 | 타입 | 기본값 | 설명 |
|---|---|---|---|
--category <NAME> | string | (전체) | 카테고리로 필터링합니다: core, daily, conversation, 또는 사용자 정의 레이블. |
--session <ID> | string | (전체) | 특정 세션 ID로 범위를 제한합니다. |
--limit <N> | integer | 50 | 반환할 최대 항목 수입니다. |
--offset <N> | integer | 0 | 건너뛸 항목 수입니다. --limit과 조합하여 페이지네이션에 사용합니다. |
카테고리 이름은 Revka의 메모리 분류와 대응됩니다: **core**는 지속적인 장기 사실을, **daily**는 세션 로그를, **conversation**은 컨텍스트 내 대화를 저장하며, 그 외 문자열은 사용자 정의 레이블입니다. 코어 메모리는 만료되지 않으며, 일별 및 대화 메모리는 시간이 지남에 따라 관련도가 감소합니다. 개념적 모델은 메모리 개요에서 확인하세요.
단일 항목 조회
섹션 제목: “단일 항목 조회”revka memory get <key>는 키로 단일 항목을 조회합니다. 조회 시 완전한 슬러그화된 키가 필요하며, 접두사 일치가 아닌 완전 일치 방식으로 동작합니다:
revka memory get my-decision-key출력에는 내용, 카테고리, 생성 타임스탬프, 세션 범위, kref가 포함됩니다.
백엔드 통계 확인
섹션 제목: “백엔드 통계 확인”revka memory stats는 개별 항목이 아닌 메모리 백엔드의 상태와 구조를 보고합니다:
revka memory statsRevka가 연결된 Kumiho 엔드포인트, 메모리 프로젝트, 스페이스 목록, 각 스페이스의 항목 수를 표시합니다 — CLI가 인증되었고 올바른 백엔드를 가리키는지 빠르게 확인하는 방법입니다.
항목 삭제
섹션 제목: “항목 삭제”revka memory clear는 항목을 삭제합니다. --key(접두사) 또는 --category로 삭제 범위를 지정하며, 플래그를 지정하지 않으면 전체 항목을 삭제합니다. 삭제는 되돌릴 수 없으므로, --yes를 전달하지 않으면 대화식 확인을 요청합니다.
revka memory clear --key my-decision --yes # delete by key prefixrevka memory clear --category conversation --yes # delete all conversation entriesrevka memory clear --yes # delete ALL entries| 플래그 | 설명 |
|---|---|
--key <PREFIX> | 슬러그화된 키가 이 접두사로 시작하는 항목을 삭제합니다. |
--category <NAME> | 지정한 카테고리의 모든 항목을 삭제합니다. |
--yes | 대화식 확인 프롬프트를 건너뜁니다. |
revka estop
섹션 제목: “revka estop”revka estop은 Revka의 비상 정지 기능입니다. 에이전트가 즉시 적용하고 데몬 재시작 후에도 유지하는 지속적인 제한을 설정하므로, 게이트웨이를 중단하지 않고도 에이전트 동작을 중단하거나 제약할 수 있습니다. 가산적으로 조합 가능한 네 가지 정지 레벨, 현재 상태를 확인하는 status 서브커맨드, 제한을 해제하는 resume 서브커맨드를 제공하며 — 선택적으로 일회용 비밀번호로 재개를 보호할 수 있습니다.
revka estop # engage kill-all (default level)revka estop --level network-kill # block all outbound networkrevka estop --level domain-block --domain "*.chase.com" # block specific domainsrevka estop --level tool-freeze --tool shell --tool browserrevka estop status # show current estop staterevka estop resume # resume kill-allrevka estop resume --network # resume the network killrevka estop resume --domain "*.chase.com" # unblock a domainrevka estop resume --tool shell # unfreeze a toolrevka 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> (반복 가능) |
revka estop --level kill-all # or just: revka estoprevka estop --level network-killrevka 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 플래그, 차단된 도메인 목록, 동결된 도구 목록, 마지막 업데이트 시각.
revka estop status에이전트가 실제로 적용하는 것과 동일한 지속적 상태 파일을 읽으므로, 현재 에이전트가 할 수 있는 것과 할 수 없는 것에 대한 권위 있는 정보를 제공합니다.
기능 재개
섹션 제목: “기능 재개”revka estop resume은 제한을 해제합니다. 선택자 없이 실행하면 kill-all 정지를 재개하고, 선택자를 지정하면 해당 제한만 대상으로 합니다.
revka estop resume # clear kill-allrevka estop resume --network # clear the network killrevka estop resume --domain "*.chase.com" # unblock a single domainrevka estop resume --tool shell # unfreeze a single tool| 선택자 | 재개 대상 |
|---|---|
| (없음) | kill-all 정지. |
--network | network-kill 정지. |
--domain <PATTERN> | 차단된 도메인(반복 가능). |
--tool <NAME> | 동결된 도구(반복 가능). |
--otp <CODE> | 재개가 OTP로 보호된 경우 TOTP 코드를 제공합니다(위의 선택자 중 하나와 조합). |
OTP를 이용한 재개
섹션 제목: “OTP를 이용한 재개”[security.estop] 아래에 require_otp_to_resume = true가 설정된 경우(estop이 활성화되었을 때의 기본값), resume에 유효한 TOTP 코드가 필요합니다. --otp로 인라인으로 제공하거나, 플래그를 생략하면 Revka가 대화식으로 입력을 요청합니다.
revka estop resume --otp 123456 # resume kill-all with an OTPrevka estop resume --network --otp 123456 # resume network kill with an OTPrevka estop resume # omit --otp to be promptedTOTP 시크릿은 최초 초기화 시 생성되며, otpauth:// 등록 URI가 해당 시점에 한 번만 출력됩니다 — 인증 앱으로 스캔하여 등록하세요. 유효성 검사는 시계 드리프트를 고려하여 ±1 타임 스텝을 허용합니다. OTP 게이팅은 광범위한 OTP 서브시스템과 공유됩니다. 등록, 재생성, 게이팅 액션 설정은 OTP 게이팅 & 비상 정지를 참고하세요.
실제 설정 및 재개 과정
섹션 제목: “실제 설정 및 재개 과정”-
설정에서 estop 활성화 (최초 1회).
~/.revka/config.toml을 편집합니다:[security.estop]enabled = truestate_file = "~/.revka/estop-state.json"require_otp_to_resume = true -
필요할 때 정지를 설정합니다. 전체 중단의 경우:
Terminal window revka estop또는 범위를 지정한 제한, 예를 들어 shell 도구 동결:
Terminal window revka estop --level tool-freeze --tool shell -
설정된 내용을 확인합니다.
Terminal window revka estop status -
안전할 때 재개합니다. OTP가 필요한 경우 함께 입력합니다:
Terminal window revka estop resume --otp 123456