“에이전트 붙였더니 잘못된 메일이 나갔어요.” AX 롤아웃 초반에 가장 많이 듣는 문장입니다. 문제는 모델 성능만이 아닙니다. 되돌릴 수 없는 액션에 게이트가 없었기 때문입니다. 이 글은 링크미 Integrations·개인 에이전트·보드 AI가 공유하는 승인 원칙을 최소 설계로 설명합니다. 개발 문서가 아니라 PM·마케팅·오퍼레이션이 바로 쓸 체크리스트입니다. 2026년 기준으로 ‘더 똑똑한 모델’보다 실행 레이어 가드가 ROI가 큽니다.
파괴적 도구 호출은 반드시 사람 승인 후 실행
통합 토큰은 최소 스코프 + 보드별 opt-out
승인 UI는 ‘막는 것’이 아니라 신뢰를 쌓는 접점입니다.
AX와 ‘자동화’의 차이
자동화는 IF-THEN입니다. AX(Agent Experience)는 맥락·추론·도구 호출이 섞입니다. 사용자는 ‘메일 보내줘’라고 말하지만, 에이전트는 초안 작성·수신자 추론·발송 API 호출까지 한 번에 시도할 수 있습니다.
그래서 AX 설계의 첫 질문은 ‘얼마나 똑똑한가’가 아니라 ‘무엇을 절대 혼자 하면 안 되는가’ 입니다. 링크미에서는 destructive 플래그가 붙은 통합 도구(Gmail 발송, Calendar 삭제 등)가 그 목록의 시작점입니다.
읽기 전용 통합부터 2주
파괴적 액션 목록을 문서 1페이지로
승인자 역할 1명(대체 1명) 지정
파괴적 액션 분류표
팀마다 다르지만, 아래 네 bucket으로 나누면 80%가 정리됩니다.
Bucket
자주 묻는 질문
모든 도구 호출에 승인이 필요한가요?⌄
아닙니다. 읽기·요약은 로그만. 발송·삭제·공개만 승인합니다.
승인이 UX를 망가뜨리지 않나요?⌄
초안까지 자동, 실행만 승인하면 TTA는 줄고 사고는 막을 수 있습니다.
BYO MCP도 destructive 표시해야 하나요?⌄
예. 표시하지 않으면 게이트를 우회하는 경로가 됩니다.
링크미만의 문제인가요?⌄
아닙니다. 모든 tool-use 에이전트에 같은 원칙이 적용됩니다.
다음 단계는?⌄
통합 1개·시나리오 1개·지표 1개만 OKR로 공표하세요.
예
게이트
발송
이메일·DM
항상 승인
삭제
캘린더·파일
항상 승인
공개
게시·공유 링크
승인 또는 2인
읽기
조회·요약
로그만
링크미에서 승인이 도는 경로
보드 채팅·통합 카드에서는 ApprovalDialog로 클라이언트 승인 후 실행됩니다. 개인 에이전트(/me/agent)는 SSE round-trip approval-bus를 탑니다. 둘 다 ‘프롬프트만 믿지 않는다’는 같은 철학입니다.
통합 토큰은 AES-256-GCM vault에 저장되고, 보드별 integration_board_links로 opt-out 할 수 있습니다. editor 이상만 호출 가능합니다. 상세는 Calendar·Gmail 통합을 참고하세요.
MCP BYO 어댑터도 tools/list 캐시와 destructive 플래그를 동일하게 탑니다. ‘우리만의 MCP’를 붙일 때도 도구 메타에 destructive를 정직하게 표시해야 합니다.
로그와 사후 — ‘누가 승인했는가’
승인 없이는 실행되지 않게 하는 것과, 나중에 감사할 수 있게 하는 것은 별개입니다. 최소 필드: runId, tool, args 요약, 승인자, 시각, 결과.
분산 서버리스에서는 in-memory 승인 버스가 인스턴스마다 다를 수 있습니다(문서상 trade-off). 프로덕션 AX에서는 중요 액션은 외부 SIEM·Slack 알림으로 복제하는 팀이 많습니다.
사례 — 마케팅 팀 시나리오
시나리오: 캠페인 follow-up 메일 초안. 에이전트가 CRM 메모·공개 랜딩 요약을 읽고 초안을 만듭니다. 발송은 사람이 제목·수신자·첫 문장을 확인한 뒤 승인합니다.
1주차 — 경계 에이전트가 할 수 있는 일·없는 일을 표로 나눕니다. Gmail 발송·캘린더 삭제 등 파괴적 액션은 ‘승인 필요’로 태깅합니다. 로그에 누가 승인했는지 남길 필드를 정의합니다. 이번 주 끝에 팀이 남길 산출물은 「액션 분류표 + 승인자 역할」입니다. 다음 주 미팅 10분은 이 산출물만 리뷰합니다.
2주차 — 시나리오 1개 마케팅 팀이면 ‘캠페인 브리프 요약 → 초안 이메일’처럼 한 시나리오만 end-to-end 연결합니다. MCP·Calendar·Gmail 중 하나만 붙여 Time-to-Answer를 잽니다. 이번 주 끝에 팀이 남길 산출물은 「시나리오 플로우 + TTA 기록 10회」입니다. 다음 주 미팅 10분은 이 산출물만 리뷰합니다.
3주차 — 방문자 AI 공개 페이지 FAQ 5개를 방문자 AI 추천 질문과 맞춥니다. 답변에 내부 링크 2개를 넣을 수 있는지 확인합니다. 틀린 답 5개를 모아 프롬프트·카드 텍스트를 고칩니다. 이번 주 끝에 팀이 남길 산출물은 「FAQ 정렬표 + 수정 diff」입니다. 다음 주 미팅 10분은 이 산출물만 리뷰합니다.
4주차 — OKR 다음 분기 통합 1·승인 1·지표 1만 OKR로 공표합니다. 멀티 에이전트·전 채널 자동화는 보류합니다. 월 1회 ‘에이전트 사고’ 리뷰를 잡습니다. 이번 주 끝에 팀이 남길 산출물은 「Q OKR 3줄 + 리뷰 캘린더」입니다. 다음 주 미팅 10분은 이 산출물만 리뷰합니다.
파괴적 액션 100% 승인 게이트
실패 로그 3건 공유
추천 질문 5개 노출
최소 권한 토큰 점검
방문자 AI와 내부 에이전트 — 게이트가 다르다
방문자 AI는 공개 페이지에서 동작합니다. 파괴적 통합을 붙이지 않는 한 승인 이슈는 ‘틀린 답’ 쪽에 가깝습니다. 그래도 연락처 수집·외부 링크는 정책 문구·모른다 템플릿으로 게이트를 둡니다.
내부 에이전트는 통합과 만나는 순간 승인 설계가 필수입니다. 개인 에이전트 CRM 라이트 주제와 연결해 ‘읽기 자동·쓰기 승인’ 원칙을 통일하세요.
AX 승인 — 24항 세부 실행
destructive 도구 목록 wiki 1p 작성·owner 서명
읽기/쓰기 OAuth 앱 분리·client id 기록
승인자·대체 승인자 vacation calendar 연동
ApprovalDialog 카피: 수신자·제목·시각·되돌릴 수 없음
approval-bus SSE timeout·재시도 UX copy
거절 tag 4종 wiki + 월 retro 집계
red team 분기 일정·시나리오 3개
incident 템플릿: pause·revoke·notify·postmortem
editor 미만 통합 호출 차단 QA
quota 초과 시 사용자 메시지·upgrade path
MCP BYO destructive 플래그 검수
vault key rotation runbook
Sentry span: approval wait p95
onboarding 10분 승인 데모 영상
방문자 AI와 write 통합 분리 문서
TTA median 대시보드 주간
reject rate 목표 10%→6%
사고 0 주 수 OKR
세일즈 ‘초안까지’ 기대치 이메일
법무 발송 템플릿 pre-approve list
주말 auto-send default off
GDPR log retention 90d
guest role 통합 negative test
분기 tool audit: unused integration revoke
실행 체크리스트
[ ] 파괴적 액션 목록 1페이지
[ ] 승인자·대체 승인자 지정
[ ] 읽기/쓰기 OAuth 스코프 분리
[ ] 로그 필드 5개 정의
[ ] Slack 알림 1채널 연결
자주 묻는 질문
모든 도구 호출에 승인이 필요한가요?
아닙니다. 읽기·요약은 로그만. 발송·삭제·공개만 승인합니다.
승인이 UX를 망가뜨리지 않나요?
초안까지 자동, 실행만 승인하면 TTA는 줄고 사고는 막을 수 있습니다.
BYO MCP도 destructive 표시해야 하나요?
예. 표시하지 않으면 게이트를 우회하는 경로가 됩니다.
링크미만의 문제인가요?
아닙니다. 모든 tool-use 에이전트에 같은 원칙이 적용됩니다.
다음 단계는?
통합 1개·시나리오 1개·지표 1개만 OKR로 공표하세요.
AX는 ‘더 많은 자동화’가 아니라 신뢰 가능한 자동화입니다. 오늘 파괴적 액션 목록만 적어도 설계의 50%는 끝납니다. 통합 연결은 Integrations에서, 개념은 AX vs 자동화와 함께 보세요.
부록 — 승인 대화 스크립트 예시
좋은 승인 요청: “다음 수신자 3명에게 ‘웨비나 리마인드’ 초안을 보낼까요? 제목: …, 본문 첫 줄: …, 발송 시각: …” — 수신자·제목·첫 줄이 보이면 5초 안에 승인/거절 가능합니다.
나쁜 요청: “캠페인 메일 보낼까요?” — 정보가 없어 승인자가 전체 스레드를 읽어야 합니다.
팀 wiki에 거절 사유 태그를 둡니다: wrong-audience, tone, timing, need-legal. 한 달 후 태그 빈도로 프롬프트·카드 텍스트를 수정합니다. 에이전트 품질은 모델 교체보다 거절 로그에서 먼저 개선됩니다.
Red team: 분기 1회, 신입 팀원에게 “일부러 애매하게 발송 요청”을 시켜 게이트가 잡는지 확인합니다. 통과하면 게이트 버그입니다.
부록 A — 승인 UI 카피
승인 카드에 수신자·제목 첫 줄·발송 시각·되돌리기 불가를 항상 표시합니다. 거절 시 한 줄 사유를 선택하게 하면 로그가 쌓입니다.
부록 B — OAuth 스코프 분리
읽기 전용 토큰과 발송 토큰을 분리 저장합니다. 개발자 로컬에는 발송 토큰을 두지 않습니다. vault lazy load로 서버리스 cold start에서도 평문 노출을 줄입니다.
부록 C — 시나리오 카탈로그 (마케팅)
시나리오
읽기
쓰기
승인
캠페인 리마인드
CRM 노트
Gmail
필수
미팅 요약
Calendar
없음
—
랜딩 FAQ
/p/ 카드
없음
—
부록 D — Red team 분기 점검
신입에게 애매한 발송·삭제 요청을 시도하게 합니다. 통과하면 게이트 버그입니다. Slack #agent-incidents 채널에 결과를 남깁니다.
부록 E — 방문자 vs 내부 경계 재확인
방문자 AI에는 파괴적 통합을 연결하지 않습니다. 내부 /me/agent 에만 쓰기 통합+승인. 문서 1페이지에 그림으로 붙여 두세요.
부록 F — 측정
TTA(질문→초안) 10회 median, 승인 대기 시간, 거절률, 사고 0건 유지 주 수. 자동화율은 3순위입니다.
부록 G — 롤아웃 커뮤니케이션
팀 공지: “에이전트가 메일을 보내지 않고 초안까지 만듭니다. 발송은 여러분 승인.” 기대치를 먼저 맞추면 거절률이 줄어듭니다.
부록 H — MCP BYO 체크리스트
tools/list에 destructive 플래그 정직하게. 없으면 registry에서 강제 태깅 요청. 5분 캐시 때문에 도구 변경 후 5분 뒤 재테스트.
1분: 발송 큐 pause, incident 채널 오픈. 5분: 영향 수신자 수·제목·본문 스냅샷. 30분: 고객 공지 초안(법무). 24h: postmortem — 게이트 bypass 경로가 있었는지, destructive 플래그 누락 도구가 있었는지.
테이블탑을 분기 1회 하면 승인 UI 카피가 개선됩니다. “발송” 버튼 옆에 수신자 수를 크게 표시하는 것만으로도 사고가 줄었습니다(팀 인터뷰 N=6, 2026).
읽기 전용 2주 규칙을 지키지 않으면 팀이 ‘갑자기 발송’ 기능을 요청합니다. PM은 “2주 후 쓰기” 일정을 로드맵에 박아 두세요. 그 2주 동안 수집되는 질문이 추천 FAQ가 됩니다.
Integrations quota·destructive 승인·board link opt-out 은 동시에 켜져야 합니다. 하나만 있으면 다른 경로로 우회합니다. editor 권한 이상 호출, owner만 OAuth 등록 — D7을 onboarding doc 1페이지에 넣으세요.
개인 에이전트와 보드 에이전트를 같은 승인 UX 언어로 맞춥니다. “승인” vs “확인” vs “실행” 혼용은 거절률을 올립니다.
마지막으로, AX KPI를 자동화율로 발표하지 마세요. 세일즈는 자동화율을 듣고 ‘발송 자동화’를 기대합니다. TTA·사고 0·거절 로그 개선을 KPI로 쓰세요.
체크리스트 확장: vault 키 rotation 분기 · destructive 도구 목록 wiki · onboarding 1p · red team 일정 · incident 템플릿 · editor/owner 권한 표 · SSE 승인 timeout · 클라이언트 ApprovalDialog QA · MCP tools/list 캐시 5분 재테스트 · Sentry span으로 승인 대기 시간 · 거절 tag retro 월 1회.
에이전트 프롬프트에 “보내줘”가 들어오면 항상 초안까지만 실행하는 system rule을 넣어도, 도구 스키마에 send가 있으면 모델이 호출합니다. 게이트는 프롬프트가 아니라 실행 레이어에만 둡니다. 링크미 execute 경로는 requireAuth → 권한 → quota → destructive 승인 → schema 순입니다. 이 순서를 팀 wiki에 그대로 복사해 두세요.
교육: 신규 hire onboarding day1에 승인 UX 10분 데모. “거절 연습” 3회. 승인자도 교육 — 무엇을 봐야 하는지 4 bullet.
function ax2() { return `## wiki 붙여넣기 — AX 승인 one-pager
목적: 파괴적 통합 호출 전 사람 승인. 범위: Gmail send, Calendar delete, public publish, MCP destructive. 승인자: @name, backup @name. SLA: business hours 15m. 로그: runId, tool, argsSummary, approver, ts. 금지: weekend auto-send, guest write, prompt-only guard. 테스트: red team quarterly. incident: pause → revoke → notify → postmortem 24h. KPI: TTA, reject rate, incident-free weeks. 교육: onboarding 10m demo. 문서: integrations-calendar-gmail, ai-agent-approval-gates blog. review: monthly reject tags. note: 모델 upgrade ≠ 승인 생략.`; }