read_only
관찰만 가능합니다. ls, cat과 같이 안전한 읽기 명령을 포함하여 모든 도구 작업이 차단됩니다. 신뢰할 수 없는 채널에 가장 적합한 선택입니다.
읽기 전용, 감독, 완전 자율성 수준과 도구 수준 승인 게이트에 대한 설명입니다.
자율성 수준은 에이전트가 독립적으로 수행할 수 있는 작업의 범위를 결정하고, 승인 게이트는 사용자에게 먼저 확인해야 할 작업을 결정합니다. 이 두 가지는 Revka의 보안 모델에서 가장 핵심적인 계층입니다. 모든 도구 호출은 실행 전에 자율성 수준에 따라 평가되며, 감독 모드에서는 Approval Manager가 개별 도구 호출에 대한 승인 여부를 일시 중단하고 확인할 수 있습니다.
이 페이지에서는 세 가지 자율성 수준, 설정 방법, 그리고 CLI와 채팅 채널에서 도구 수준 승인 게이트가 어떻게 동작하는지를 설명합니다. 특정 채널에서 에이전트를 얼마나 신뢰할지 결정하거나, 이미 신뢰하는 도구에 대한 승인 프롬프트를 비활성화하고자 할 때 참고하시기 바랍니다.
자율성 수준은 정책 엔진의 진입점입니다. SecurityPolicy에 의해 적용되며, 명령 허용 목록, 작업 공간 경계, 속도 제한기와 독립적으로 에이전트의 작업 수행 가능 여부를 제어합니다.
read_only
관찰만 가능합니다. ls, cat과 같이 안전한 읽기 명령을 포함하여 모든 도구 작업이 차단됩니다. 신뢰할 수 없는 채널에 가장 적합한 선택입니다.
supervised
기본값입니다. 에이전트는 허용 목록 내에서 작동하지만, 중간 위험도 및 높은 위험도 명령은 승인(approved = true)이 필요하며, Approval Manager가 개별 도구 호출에 대해 프롬프트를 표시할 수 있습니다.
full
승인 게이트가 없습니다. 중간 위험도 승인 프롬프트는 생략되지만, 명령 허용 목록, 작업 공간 경계, block_high_risk_commands는 여전히 적용됩니다.
~/.revka/config.toml의 [autonomy] 섹션에서 수준을 설정합니다.
[autonomy]level = "supervised" # read_only | supervised | full| 키 | 타입 | 기본값 | 의미 |
|---|---|---|---|
level | string | "supervised" | read_only, supervised, 또는 full |
현재 수준은 SecurityPolicy::prompt_summary()를 통해 에이전트의 시스템 프롬프트에 자동으로 주입되므로, 모델은 자신이 수행할 수 있는 작업을 인식합니다.
실질적인 차이는 승인 게이트에 있습니다.
approved = true를 가진 호출에서만 실행됩니다(approved 플래그 참고). Approval Manager는 도구 호출 전에 대화식으로 프롬프트를 표시할 수도 있습니다.와일드카드가 아닌 허용 목록 항목은 알아둘 만한 예외입니다. ssh와 같은 높은 위험도 명령을 allowed_commands에 추가하면 block_high_risk_commands를 우회하지만, supervised 모드에서는 실행하려면 여전히 approved = true가 필요합니다.
명령별 위험 정책 외에도, Revka에는 별도의 Approval Manager가 있습니다. 이는 supervised 모드에서 LLM 도구 호출 전에 실행되는 사전 실행 훅입니다. 워크플로우 및 SOP 승인 게이트와는 구별됩니다. 워크플로우/SOP 게이트는 전체 실행을 일시 중단하는 반면, 이 게이트는 단일 도구 호출 수준에서 동작합니다. 세션 범위의 “Always” 허용 목록을 유지하고 감사 추적에 기록합니다.
[autonomy]의 두 목록을 사용하여 게이트가 프롬프트를 표시할 도구를 조정합니다.
[autonomy]level = "supervised"auto_approve = ["file_read", "weather"] # never prompt for thesealways_ask = ["shell"] # always prompt, even if "Always" was chosen| 키 | 타입 | 기본값 | 의미 |
|---|---|---|---|
auto_approve | list | [] | 프롬프트를 표시하지 않는 도구 |
always_ask | list | [] | 세션 “Always” 허용 목록을 무시하고 항상 프롬프트를 표시하는 도구 |
두 목록 중 어느 것이든 "*" 와일드카드를 사용하면 모든 도구에 적용됩니다. always_ask는 세션 허용 목록보다 우선합니다 — 이전에 도구에 대해 Always를 선택했더라도, always_ask에 포함되어 있으면 매번 프롬프트가 표시됩니다.
대화식 CLI 세션에서는 자동 승인되지 않은 도구를 실행하기 전에 supervised 모드가 stdin으로 프롬프트를 표시합니다.
🔧 Agent wants to execute: shell command: rm -rf ./build/ [Y]es / [N]o / [A]lways for shell:Yes — 이번 호출만 승인합니다.
No — 이번 호출을 거부합니다. 거부는 기록됩니다(신뢰 적응형 자율성 참고).
Always — 이번 호출을 승인하고 해당 도구를 세션 범위의 “Always” 허용 목록에 추가하여 always_ask에 포함되지 않는 한 이 세션에서는 다시 프롬프트가 표시되지 않습니다.
Telegram, Discord 또는 다른 채널로 메시지가 도착하는 것과 같은 비대화식 컨텍스트에서는 읽을 stdin이 없습니다. 이 모드에서는 승인이 필요한 도구가 대기 상태로 남겨지는 대신 자동으로 거부됩니다.
한 가지 예외가 있습니다. MCP 네임스페이스 도구(service__tool 형식으로 명명된)는 비대화식 모드에서 자동 승인됩니다.
approved 플래그approved 필드는 명시적 승인이 도구 호출과 함께 전달되는 방식입니다. 중간 또는 높은 위험도 작업을 실행할 수 있는 도구, 특히 shell과 이를 예약하는 cron 및 SOP 도구에 나타납니다.
{ "command": "ls -la", "approved": false }approved (boolean, 기본값 false) — supervised 모드에서 중간 또는 높은 위험도 명령을 명시적으로 승인하려면 true로 설정합니다.supervised 모드에서 approved = false인 중간/높은 위험도 명령은 정책에 의해 "Blocked by security policy" 류의 오류와 함께 거부됩니다. approved = true로 설정하면 게이트를 통과할 수 있습니다. full 모드에서는 중간 위험도 명령에 이 플래그가 필요하지 않으며, read_only 모드에서는 플래그 값과 관계없이 아무것도 실행되지 않습니다.
같은 필드는 cron 및 SOP 인터페이스에서도 사용됩니다 — 예를 들어, cron_add와 cron_run은 중간 위험도 셸 작업을 사전 승인하기 위해 "approved": true를 허용합니다. 게이트웨이 cron API를 통해 생성된 셸 작업은 사전 승인되지 않으며(approved 기본값은 false), 이 방식으로 예약된 중간 위험도 명령은 실행 시 거부됩니다.
approved 필드는 Revka 보안 모델 내부의 개념입니다. 도구 호출이 외부 MCP 서버로 전달될 때, 래퍼는 먼저 approved를 제거합니다. MCP 서버는 이 필드를 이해하지 못하기 때문입니다.
Approval Manager는 도메인별 신뢰 트래커와 연동될 수 있습니다. 연동된 경우, 승인 결정이 에이전트의 실효 자율성에 피드백으로 반영됩니다. 특정 도메인에서 계속 잘못된 행동을 하는 에이전트는 그 도메인에서 조용히 작업을 수행하는 능력을 잃게 됩니다.
모든 거부는 UserOverride 교정으로 기록됩니다. 한 도메인에서 교정이 반복되면 신뢰 점수가 낮아집니다. 도메인이 회귀 임계값을 넘으면 실효 자율성이 한 단계 낮아지고, 이에 따라 승인 게이트도 더 엄격해집니다.
| 실효 다운그레이드 | 게이트에 미치는 영향 |
|---|---|
Full → Supervised | 설정된 수준이 full이더라도 해당 도구에 프롬프트가 표시됩니다 |
Supervised → ReadOnly | 세션 “Always” 허용 목록에 있는 도구도 프롬프트가 표시되어 조용한 실행이 방지됩니다 |
이는 자동으로 동작하며 승인 측에서 별도로 설정할 사항이 없습니다. 동작은 신뢰 점수 엔진에 의해 제어됩니다. 임계값은 [trust] 설정 섹션에서 조정하며, 프롬프트 인젝션, 유출 탐지 및 신뢰에 문서화되어 있습니다.
Recommended 에이전트가 역할을 수행할 수 있는 범위 내에서 가장 낮은 수준으로 각 채널을 시작하십시오.
read_only. 에이전트는 질문에 답변할 수 있지만 시스템을 건드릴 수 없습니다.supervised (기본값). 승인 게이트를 통해 위험한 작업에 대해 계속 관여할 수 있습니다.full, 엄격한 allowed_commands 허용 목록과 block_high_risk_commands = true를 설정하여 나머지 가드레일이 유지되도록 합니다.보안 모델
자율성, 명령 정책, 샌드박싱, 감사 로그가 어떻게 구성되는지 설명합니다. 보안 모델 및 정책, 명령 및 샌드박싱을 참조하십시오.
에이전트 루프
모델 기반 도구 호출 사이클에서 승인 게이트의 위치를 설명합니다. 에이전트 루프를 참조하십시오.
워크플로우 승인
이 도구 수준 게이트와 구별되는 실행 수준 사람 승인 게이트입니다. 실행, 승인 및 체크포인트를 참조하십시오.
긴급 중지 및 OTP
오작동 에이전트를 중단하고 민감한 작업을 일회용 코드로 보호합니다. OTP 게이팅 및 긴급 중지를 참조하십시오.