테마
시작하기
일부 옵션은 설계 단계 (2026-05-15)
HITL 승인 polling 흐름과 HMAC 서명 강제 모드 (pak_secret, X-Panopticon-Signature) 는 현재 logi 서버에 미구현입니다. 콘솔에서 토글이 보이더라도 저장만 되고 enforcement 가 동작하지 않습니다. 자세한 진행 상황은 정책 페이지의 상태표 참조.
5분 안에 application 하나에 판옵티콘을 붙여봅니다.
사전 조건
- logi 콘솔(
start.1pass.dev/developer)에 등록된 OAuth application 1개 - application의
client_id확보 curl또는 동등한 HTTP 클라이언트
1. 콘솔에서 Panopticon 활성화
start.1pass.dev/developer로그인- application 선택 → Panopticon 탭 클릭
- 활성화 토글 ON
- PAK 발급 클릭 →
pano_pak_...형태의 키가 1회만 표시됨
⚠️ PAK는 발급 시점 한 번만 노출됩니다. 즉시 안전한 곳(예: 1Password, Doppler, Render env)에 저장하세요. 분실 시 회전 후 새 키를 발급받으면 됩니다.
옵션:
- HMAC 서명 강제 🔬 (설계 단계): 활성화 시
pak_secret발급 + 모든 trace 요청에X-Panopticon-Signature헤더 필수 (계획). 현재 콘솔 토글은 표시되지만 logi 서버는 PAK 해시 검증만 수행합니다 (상세).
2. 첫 trace 보내기
가장 단순한 형태:
bash
curl -X POST https://api.1pass.dev/panopticon/trace \
-H "Authorization: Bearer pano_pak_여기에_PAK" \
-H "Content-Type: application/json" \
-d '{
"event_id": "550e8400-e29b-41d4-a716-446655440000",
"client_id": "logi_f31b6962aef3",
"tool": "hello",
"scope_used": "agent:read",
"status": "ok",
"started_at": "2026-05-09T10:11:12Z",
"duration_ms": 12
}'기대 응답:
json
HTTP/1.1 202 Accepted
{"event_id":"550e8400-e29b-41d4-a716-446655440000","status":"accepted"}같은 event_id로 다시 보내면:
json
HTTP/1.1 200 OK
{"event_id":"550e8400-e29b-41d4-a716-446655440000","status":"duplicate"}→ 멱등성 보장. 재전송에 안전합니다.
3. 콘솔에서 확인
start.1pass.dev/panopticon → application 선택 → Activity Timeline 탭에서 방금 보낸 trace가 보입니다.
Live Trace 탭은 ActionCable 채널로 실시간 스트리밍합니다.
4. RP에 통합
personal-mcp 또는 agent RP의 도구 호출 처리 후 비동기로 trace를 발사하세요:
python
# Python 예시 (FastMCP 등)
import httpx, uuid
from datetime import datetime, timezone
async def emit_trace(tool_name, scope, status, duration_ms, user_sub=None):
payload = {
"event_id": str(uuid.uuid4()),
"client_id": CLIENT_ID,
"tool": tool_name,
"scope_used": scope,
"status": status,
"started_at": datetime.now(timezone.utc).isoformat(),
"duration_ms": duration_ms,
"user_sub": user_sub,
}
async with httpx.AsyncClient(timeout=2.0) as client:
# fire-and-forget, 실패해도 도구 호출 자체는 정상 완료
try:
await client.post(
f"{LOGI_URL}/panopticon/trace",
headers={"Authorization": f"Bearer {PANOPTICON_PAK}"},
json=payload,
)
except Exception:
pass # 로컬 buffer에 쌓아 재전송 권장5. 사용량 집계 보기
콘솔 Usage 탭 또는 CLI:
bash
logi panopticon usage <client_id> --since 2026-05-01application × date 단위로 trace 수, 에러 수, HITL 요청 수, kill switch 횟수가 일별로 표시됩니다.
다음
- Trace API 레퍼런스 — 페이로드 schema, HMAC 모드, 에러 코드
- 정책 설정 — AI Guard 정책 활성화