에이전트 설계

에이전트의 권한은 미리 주지 말고, 막힌 기록으로 연다

AI 에이전트에게 결제 대시보드·광고 계정·서버 로그 권한을 어디까지 줘야 하나. 처음부터 넓게 주면 추측과 사고 사이를 오간다. 막힐 때마다 '무엇이, 왜 필요했는지' 적고 멈추게 하면 그 기록이 권한을 정확히 여는 근거가 된다.

· 3분 · 글 AI 에이전트

이런 고민을 하고 있다면

작은 쇼핑몰을 운영하면서 AI 에이전트에게 "지난주 매출이 왜 줄었는지 알아봐" 같은 일을 맡기려 한다고 하자. 이때 가장 먼저 부딪히는 질문이 이것이다.

에이전트에게 권한을 어디까지 줘야 하지?

결제 대시보드, 광고 계정, 방문 분석, 서버 로그. 다 열어 주면 일은 잘할 것 같지만 불안하다. 하나도 안 열어 주면 일을 못 한다. 그래서 대부분 "일단 넓게 주고 조심하라고 말해 두자"를 고른다.

이 글은 그 반대를 권한다. 권한은 미리 주지 말고, 에이전트가 막힌 기록을 근거로 하나씩 연다.

에이전트의 권한은 미리 주지 말고, 막힌 기록으로 연다

넓게 주면 왜 문제인가

권한을 넓게 주면 두 가지가 같이 생긴다.

  1. 필요 없는 문이 열려 있다. 매출 분석에 환불 처리 권한은 필요 없다. 그런데 열려 있으면, 언젠가 에이전트가 "이 주문은 이상해 보이니 정리하자"는 판단을 할 수 있다. 사고는 대개 이렇게 '할 수 있어서' 일어난다.
  2. 무엇이 진짜 필요했는지 모른다. 다 열려 있으니 에이전트가 어디에 의존했는지 기록이 안 남는다. 나중에 권한을 줄이려 해도 무엇을 남겨야 할지 판단할 근거가 없다.

반대로 권한이 너무 좁으면, 에이전트는 막혔을 때 추측으로 빈칸을 메운다. "아마 광고비가 줄어서일 것이다" 같은 그럴듯한 결론이 나온다. 이게 가장 위험하다. 틀린 답보다 그럴듯한 틀린 답이 더 오래 살아남는다.

대신 이렇게 한다

에이전트에게 두 가지를 같이 가르친다.

  • 막히면 멈춘다. 볼 수 없는 것을 추측으로 메우지 않는다. "모른다"고 적는다.
  • 막힌 이유를 정확히 적는다. "권한이 없다"가 아니라, 무엇을 왜 봐야 했는지를 적는다.

좋은 기록과 나쁜 기록은 이렇게 다르다.

나쁜 기록좋은 기록
광고 데이터를 못 봐서 분석이 불완전함매출 하락이 광고 때문인지 가르려면 광고 계정의 지난 2주 지출과 클릭 수가 필요한데, 광고 계정 읽기 권한이 없다
접근 권한 필요필요한 것: 광고 계정 읽기 전용 권한(지출·클릭). 쓰기는 필요 없다
막히면 멈추고 적는다 — 그 기록만큼 사람이 연다 — 일이 이어진다
막히면 멈추고 적는다 — 그 기록만큼 사람이 연다 — 일이 이어진다

좋은 기록에는 세 가지가 들어 있다. 무엇을 보려 했나, 왜 봐야 했나, 최소한 무엇이 있으면 되나. 이 세 가지가 있으면 사람은 고민 없이 그 권한 하나만 열어 주면 된다.

지침에 넣을 문장

에이전트의 지침(시스템 프롬프트나 작업 규칙 문서)에 아래를 그대로 넣어 쓸 수 있다.

X 를 봐야 답을 알 수 있는데 볼 수 없으면, 거기서 멈추고 그대로 적는다.
- 무엇을 보려 했나
- 왜 그것이 있어야 답이 나오나
- 최소한 어떤 권한이면 되나(읽기인가 쓰기인가, 어느 범위인가)
추측으로 메우거나 "아마 이럴 것"으로 결론 내지 않는다.

그리고 사람 쪽 규칙도 하나 정한다.

권한은 막힌 기록이 있을 때만, 그 기록이 요구한 범위만큼만 연다.

이렇게 하면 무엇이 달라지나

  • 권한이 일과 같이 자란다. 처음엔 거의 아무것도 못 하지만, 몇 주 지나면 실제로 자주 막히는 곳만 열려 있다. 필요 없는 문은 처음부터 닫혀 있다.
  • 에이전트의 결론을 믿을 수 있다. 모르는 칸을 모른다고 적는 에이전트라면, 적어 둔 결론은 실제로 본 것이다.
  • 권한마다 이유가 남는다. "이 권한은 언제, 어떤 일 때문에 열었나"가 기록으로 남는다. 나중에 정리할 때 근거가 된다.

자주 하는 실수

  • "권한이 없으면 알려 줘"만 적는다. 이러면 에이전트는 막힌 사실만 알리고 이유를 빼먹는다. 사람이 다시 물어봐야 한다. 무엇을, 왜, 최소 얼마나를 적으라고 문장으로 박아 둔다.
  • 막힐 때마다 바로 넓게 열어 준다. "귀찮으니 관리자 권한을 주자"가 되면 처음으로 돌아간다. 기록이 읽기를 원했으면 읽기만 연다.
  • 멈춘 걸 실패로 본다. 막혀서 멈춘 세션은 실패가 아니다. 그 기록이 다음에 무엇을 열지 알려 주는 가장 정확한 자료다. 멈춘 세션을 탓하면, 에이전트는 다음부터 추측으로 메운다.

실제로 겪은 일

우리 에이전트가 한 서비스의 유입을 분석하다가 분석 도구 권한이 없는 속성을 만났을 때, 추측하지 않고 "이 속성의 읽기 권한이 없어 데이터를 하나도 못 봤다"고 적고 멈췄다. 그 기록대로 읽기 권한 하나만 열어 주자 다음 세션에서 바로 분석이 이어졌다. 열흘 동안 쌓인 기록 10건 가운데 7건이 이런 '도구가 없어 막혔다'였고, 열린 권한은 전부 그 기록이 요구한 것뿐이었다.

열흘 동안 쌓인 기록 10건 가운데 7건이 「도구가 없어 막혔다」였다
열흘 동안 쌓인 기록 10건 가운데 7건이 「도구가 없어 막혔다」였다