Elevated 모드 (/elevated 지시문)

기능

  • /elevated on은 게이트웨이 호스트에서 실행하며 exec 승인을 유지합니다 (/elevated ask와 동일).
  • /elevated full은 게이트웨이 호스트에서 실행하며 exec 승인을 자동 통과합니다 (exec 승인 건너뜀).
  • /elevated ask는 게이트웨이 호스트에서 실행하지만 exec 승인을 유지합니다 (/elevated on과 동일).
  • on/askexec.security=full강제하지 않습니다. 구성된 security/ask 정책이 여전히 적용됩니다.
  • 에이전트가 샌드박스 상태일 때만 동작이 변경됩니다 (그렇지 않으면 exec가 이미 호스트에서 실행).
  • 지시문 형식: /elevated on|off|ask|full, /elev on|off|ask|full.
  • on|off|ask|full만 허용됩니다. 그 외의 값은 힌트를 반환하고 상태를 변경하지 않습니다.

제어 대상 (및 비제어 대상)

  • 가용성 게이트: tools.elevated가 전역 기준선입니다. agents.list[].tools.elevated가 에이전트별로 elevated를 추가로 제한할 수 있습니다 (둘 다 허용해야 함).
  • 세션별 상태: /elevated on|off|ask|full이 현재 세션 키의 elevated 레벨을 설정합니다.
  • 인라인 지시문: 메시지 내 /elevated on|ask|full은 해당 메시지에만 적용됩니다.
  • 그룹: 그룹 채팅에서 elevated 지시문은 에이전트가 멘션되었을 때만 적용됩니다. 멘션 요구 사항을 우회하는 명령 전용 메시지는 멘션된 것으로 취급됩니다.
  • 호스트 실행: elevated는 exec를 게이트웨이 호스트로 강제합니다. fullsecurity=full도 설정합니다.
  • 승인: full은 exec 승인을 건너뜁니다. on/ask는 허용 목록/ask 규칙이 필요한 경우 승인을 적용합니다.
  • 비샌드박스 에이전트: 위치에 대해서는 no-op. 게이팅, 로깅, 상태에만 영향.
  • 도구 정책은 여전히 적용: exec가 도구 정책에 의해 거부되면 elevated를 사용할 수 없습니다.
  • /exec와 별개: /exec는 인가된 발신자의 세션별 기본값을 조정하며 elevated가 필요하지 않습니다.

해석 순서

  1. 메시지의 인라인 지시문 (해당 메시지에만 적용).
  2. 세션 오버라이드 (지시문 전용 메시지 전송으로 설정).
  3. 전역 기본값 (설정의 agents.defaults.elevatedDefault).

세션 기본값 설정

  • 지시문만 포함된 메시지를 전송합니다 (공백 허용), 예: /elevated full.
  • 확인 응답이 전송됩니다 (Elevated mode set to full... / Elevated mode disabled.).
  • elevated 접근이 비활성화되었거나 발신자가 승인된 허용 목록에 없으면, 지시문은 실행 가능한 오류로 응답하고 세션 상태를 변경하지 않습니다.
  • /elevated (또는 /elevated:)를 인수 없이 보내면 현재 elevated 레벨을 확인할 수 있습니다.

가용성 + 허용 목록

  • 기능 게이트: tools.elevated.enabled (설정을 통해 코드가 지원하더라도 기본값이 off일 수 있음).
  • 발신자 허용 목록: tools.elevated.allowFrom에 프로바이더별 허용 목록 (예: discord, whatsapp).
  • 접두사 없는 허용 목록 항목은 발신자 범위 식별 값(SenderId, SenderE164, From)만 매칭합니다. 수신자 라우팅 필드는 elevated 인가에 사용되지 않습니다.
  • 변경 가능한 발신자 메타데이터에는 명시적 접두사가 필요합니다:
    • name:<value>SenderName 매칭
    • username:<value>SenderUsername 매칭
    • tag:<value>SenderTag 매칭
    • id:<value>, from:<value>, e164:<value>는 명시적 식별 대상으로 사용 가능
  • 에이전트별 게이트: agents.list[].tools.elevated.enabled (선택적, 추가 제한만 가능).
  • 에이전트별 허용 목록: agents.list[].tools.elevated.allowFrom (선택적, 설정 시 발신자가 전역 + 에이전트별 허용 목록 모두에 매칭해야 함).
  • Discord 폴백: tools.elevated.allowFrom.discord가 생략되면, channels.discord.allowFrom 목록이 폴백으로 사용됩니다 (레거시: channels.discord.dm.allowFrom). 오버라이드하려면 tools.elevated.allowFrom.discord를 설정하세요 ([]도 가능). 에이전트별 허용 목록은 폴백을 사용하지 않습니다.
  • 모든 게이트를 통과해야 합니다. 그렇지 않으면 elevated는 사용 불가로 처리됩니다.

로깅 + 상태

  • Elevated exec 호출은 info 레벨로 로깅됩니다.
  • 세션 상태에 elevated 모드가 포함됩니다 (예: elevated=ask, elevated=full).