데모 · 목업 데이터로 재현
연결하면 실제로 무엇이 바뀌는지
직접 눌러서 확인하세요
아래 세 장면은 Cainer가 실제로 하는 동작을 목업 데이터로 재현한 것입니다. 계정도, 외부 호출도 필요 없습니다. 버튼을 눌러 단계를 진행하세요.
안내 이 화면은 데모 데이터입니다. 실제 워크스페이스의 대화·승인·감사 기록이 아니며, 어떤 외부 서비스도 호출하지 않습니다.
전과 후
요청이 흩어지던 일이 한 흐름으로
지금
- 요청은 메신저, 결과는 다른 창, 승인은 구두
- 어떤 도구가 실행됐는지 나중에 알 수 없음
- 에이전트를 끊어도 토큰이 살아 있음
Cainer
- 요청·회신·상태가 같은 스레드에 남음
- 승인이 필요한 호출은 게이트에서 멈춤
- 철회는 즉시, 기록은 해시 체인
1. 승인 카드 왕복
신뢰할 수 없는 입력에서 시작된 외부 쓰기를 사람이 어떻게 막는가?
에이전트가 GitHub 이슈 생성을 요청하면, 정책이 강제(ENFORCE)이거나 Rule of Two에 걸릴 때 승인 카드가 뜨고 승인 전에는 실행되지 않습니다.
0 / 4 단계
-
1. 에이전트가 도구를 호출
에이전트가 작업 도구를 호출합니다. 위험 등급은 서버가 정하고, 요청 본문의 값은 신뢰하지 않습니다.
→ tools/call { name: "workproduct.github_issue", arguments: { threadId, messageId, title, content } } -
2. 게이트가 승인을 요구
정책(기록만/강제)과 Rule of Two를 평가합니다. 승인이 필요하면 실행 대신 승인 요청이 만들어지고 10분 뒤 만료됩니다.
← { status: "approval_required", approvalId: "apr_…", expiresInS: 600 } -
3. 오너가 카드에서 결정
대화 화면의 승인 카드에서 「이번 한 번만」을 고릅니다. 승인 결정은 감사 체인에 남고, 승인 없이는 도구가 실행되지 않습니다.
← { status: "allowed", decision: "once", approvalId: "apr_…" } -
4. 승인된 호출만 실행되고 감사로 남음
승인이 소비된 뒤에만 외부 호출이 일어나고, 시도·판단·결과가 감사 로그에 기록됩니다.
← { ok: true, workProductId: "wp_…" } audit: workproduct.github_issue → allowed
2. 연결 철회 즉시 차단
에이전트를 끊으면 언제부터 막히는가?
연결을 철회하면 그 연결의 토큰·승인·구독이 함께 무효가 됩니다. 다음 호출은 즉시 401입니다.
0 / 3 단계
-
1. 연결이 살아 있을 때
에이전트 토큰은 연결·에이전트 상태가 모두 active일 때만 통과합니다.
→ tools/call { name: "messenger.list_inbox" } ← 200 ok -
2. 오너가 연결을 철회
에이전트 화면에서 연결을 철회합니다. 철회는 삭제가 아니라 상태 전이이며 감사에 남습니다.
→ PATCH connection { status: "revoked" } ← 200 ok -
3. 같은 토큰으로 다시 호출
철회된 연결의 토큰은 사용 시점에 거부되고 부작용이 없습니다. MCP 세션의 refresh도 함께 무효입니다.
→ tools/call { name: "messenger.list_inbox" } ← 401 unauthorized
3. 감사 체인 검증
기록이 조용히 바뀌지 않았다는 걸 어떻게 확인하는가?
워크스페이스 감사 로그는 이전 기록의 해시에 연결되어 있습니다. 검증 화면이 체인을 다시 계산해 끊긴 지점을 알려줍니다.
0 / 3 단계
-
1. 운영 화면에서 감사 열기
워크스페이스 운영 → 감사. 50건 단위로 페이지가 나뉘고 작업자·종류·결과로 거릅니다.
GET /app/<workspace>/ops/audit ← 200 (50 rows/page) -
2. 체인 검증 실행
검증은 저장된 각 행의 해시를 다시 계산해 이전 행과의 연결을 확인합니다.
POST /app/<workspace>/ops/audit/verify ← { ok: true, checked: 1234 } -
3. 내보내기(JSONL, 최대 5MB)
오너는 감사 기록을 JSONL로 내려받아 외부 보관·대조에 쓸 수 있습니다.
GET /app/<workspace>/ops/audit/export ← application/x-ndjson
다음
내 계정으로 실제 연결하기
데모는 여기까지입니다. 실제 연결은 워크스페이스를 만든 뒤 연결 가이드를 따라 진행합니다. 어떤 클라이언트가 어디까지 검증됐는지는 지원표에 그대로 적혀 있습니다.