(6/7) Copilot Studio 자율 에이전트 만들기 — 사람이 안 불러도 도는 메일 분류봇
🤖 Microsoft Copilot 활용·제작 시리즈 (전체 7편)
- MS Copilot 으로 할 수 있는 일 총정리 — 365 · 소비자 · GitHub · Studio
- Microsoft 365 Copilot 앱별 실전 활용 — Word·Excel·PowerPoint·Outlook·Teams
- Microsoft 365 Copilot 으로 대화 말고 '자동화' 하기 — 트리거·액션·에이전트
- Copilot Studio 로 사내 규정 Q&A 봇 직접 만들기 — 지식 연결부터 게시까지
- Copilot Studio 규정 봇에 액션 붙이기 — '안내'에서 '휴가 신청'까지
- Copilot Studio 자율 에이전트 만들기 — 사람이 안 불러도 도는 메일 분류봇 ← 지금 글
- Agents Toolkit 으로 프로코드 에이전트 만들기 — VS Code 에서 코드로 정의하기
Summary
여기까지 오면서 봇을 두 칸 키웠어요. 규정 Q&A 봇으로 읽기 를, 휴가 신청 액션으로 쓰기 를 붙였죠. 그런데 둘 다 공통점이 하나 있었어요 — 사람이 먼저 말을 걸어야 움직였다는 것. 이번 글은 그 마지막 선을 넘어요. 사람이 안 불러도 스스로 도는 자율 에이전트예요.
만들 건 공용 HR 메일함 자동 분류·라우팅 봇 이에요. hr@ 같은 공용 메일함에 문의가 도착하면, 봇이 스스로 깨어나서 내용을 분류하고, 간단한 규정 질문이면 4편에서 만든 지식으로 초안 답변을 만들고, 애매하거나 민감하면 담당자에게 넘겨요. 사람은 쏟아지는 메일을 일일이 열어보는 대신, 정리된 결과만 확인하면 돼요.
자율의 매력은 분명하지만, 글의 절반은 또 “어떻게 사고를 막나” 예요. 사람이 루프에서 빠질수록 잘못 돌 때 알아채기 어렵고, 자율 실행은 과금 단위도 달라요. 그래서 무한 루프 차단·읽기전용 시작·실행 상한·로그를 분류 로직만큼 비중 있게 다뤄요.
💡 이 글에서 만드는 것
- 대화·액션·자율 — 무엇이 또 다른가
- 만들 흐름 — 메일 도착 → 분류 → 답변 초안/라우팅
- 이벤트 트리거 — 스스로 깨어나는 시작점, 조건 좁히기
- 자율 판단 — 규칙 + 애매할 때만 AI, 규정 지식 재사용
- 액션 — 라우팅·알림·자동답장은 초안부터
- 가드레일 — 무한 루프·실행 상한·읽기전용·승인
- 테스트 — 명확/애매/위험 케이스
- 과금·통제·로그
⚠️ 2026년 상반기 기준이에요. 자율 에이전트는 마이크로소프트가 가장 빠르게 바꾸는 영역이라 메뉴 이름·과금 단위·트리거 종류가 자주 달라져요. 직장·학교 구독 + Copilot Studio + 관리자가 열어준 트리거/커넥터 가 있어야 따라올 수 있고, 본문의 메일·이름·시스템은 전부 예시값(마스킹)이에요.
1. 자율이 또 무엇이 다른가
지난 글들에서 대화 → 액션으로 왔어요. 자율은 거기서 “누가 시작하나” 가 또 한 번 바뀌어요.
| 대화형 | 액션형 | 자율형 | |
|---|---|---|---|
| 시작 | 사람 프롬프트 | 사람 프롬프트 | 트리거가 깨움 |
| 사람 자리 | 매번 루프 안 | 매번 루프 안 | 만들 때·예외 때만 |
| 결과 | 화면 답 | 시스템에 씀 | 알아서 처리 + 보고 |
| 위험 | 사실 오류 | 잘못된 쓰기 | 모르는 새 반복 |
핵심은 마지막 두 줄이에요. 자율 에이전트는 사람이 안 보는 사이에 돌기 때문에, 잘 돌 땐 최고지만 잘못 돌 땐 한참 뒤에야 알아채요. 그래서 자율로 갈수록 “덜 맡기고, 더 지켜보는” 설계가 필요해요.
💡 자동화 개념 글에서 자율 에이전트를 “안 보이는 곳에서 도는 직원” 에 비유했었죠. 직원에게 일을 맡길 때 권한·보고체계·한도를 정하듯, 자율 에이전트도 똑같이 사정거리와 보고 규칙 부터 정해야 해요.
2. 만들 흐름 한눈에
메일 한 통이 도착했을 때 봇이 혼자 밟는 길이에요.
[메일 도착] ← 이벤트 트리거 (hr@ 공용함)
↓
자율 판단
├─ 분류: 규정문의 / 신청요청 / 불만·민감 / 스팸
├─ 규정문의면 → 4편 지식으로 답변 초안 작성
├─ 신청요청이면 → 담당 폼·절차 안내 + 담당자 알림
└─ 불만·민감·애매면 → 사람에게 에스컬레이션
↓
액션
├─ Teams 담당 채널에 분류 결과 + 요약 알림
└─ 답장은 '초안'으로 대기 (자동 발송 아님)
↓
로그: 무엇을 어떻게 분류·처리했는지 기록
여기서 AI 가 일하는 칸은 “분류” 와 “답변 초안” 둘뿐이에요. 트리거·라우팅·로그는 결정적이고, 답장은 자동 발송이 아니라 초안 대기 로 둬요. 이 한 줄이 자율 봇을 안전하게 만드는 핵심이에요.
3. 이벤트 트리거 — 스스로 깨어나기
자율의 출발점은 트리거예요. 사람의 프롬프트 대신 “메일이 도착하면” 이 시작 신호예요. Copilot Studio 에이전트의 트리거(Triggers) 에서 트리거 추가 → 메일 도착(When a new email arrives) 류를 골라요.
| 트리거 설정 | 값(예) |
|---|---|
| 대상 메일함 | hr@ (공용 사서함) |
| 보낸 사람 필터 | 사내 도메인만 |
| 제목/본문 조건 | 비워두거나 키워드 한정 |
| 첨부 포함 | 본문만 우선 |
트리거 조건을 좁히는 게 첫 번째 안전장치예요. 모든 메일에 반응하게 두면 광고·자동회신·시스템 알림까지 다 깨워서 비용과 노이즈가 폭발해요.
🚨 무한 루프를 트리거 단계에서 끊으세요. “메일 도착 → 답장” 흐름은 자칫 내 답장이 상대의 자동회신을 부르고, 그게 다시 내 트리거를 깨우는 무한 루프가 나요. ① 보낸 사람에 봇 자신·
no-reply제외, ② 제목에[자동분류]같은 표식이 있으면 스킵, ③ 같은 스레드 재처리 금지 — 이 셋을 트리거 조건에 박아두세요.
4. 자율 판단 — 규칙 먼저, AI 는 애매할 때만
깨어난 봇이 할 첫 일은 분류 예요. 여기서도 원칙은 같아요 — 되도록 규칙으로, AI 는 꼭 필요한 지점에서만. 명백한 건 규칙으로 즉시 가르고, 애매한 것만 에이전트가 판단하게 해요.
지시문에 분류 기준을 이렇게 적어줬어요.
역할
- 너는 hr@ 공용 메일함에 도착한 문의를 분류·정리하는 보조자다.
분류 카테고리
- 규정문의: 휴가·복리후생·경비 규정을 묻는 단순 질의
- 신청요청: 휴가·경비 등 신청을 하려는 메일
- 불만·민감: 고충·이의제기·개인정보·징계 관련
- 스팸·기타: 광고·자동회신·분류 불가
처리 규칙
- 규정문의면, 연결된 규정 지식에서 근거를 찾아 '답변 초안' 을 만든다.
근거를 못 찾으면 초안을 만들지 말고 담당자에게 넘긴다.
- 신청요청이면, 해당 신청 절차·폼 링크를 안내하는 초안을 만들고
담당자에게 알린다.
- 불만·민감이면, 절대 자동 응답하지 말고 즉시 담당자에게
에스컬레이션한다. 내용 요약만 전달한다.
- 분류가 애매하면(확신 낮음) 임의로 정하지 말고 '미분류' 로 두고
사람에게 넘긴다.
금지
- 어떤 경우에도 메일을 자동 발송하지 않는다. 답변은 항상 초안이다.
- 개인정보·급여·평가 정보를 본문에 쓰지 않는다.
분류가 끝나면 봇은 메일을 한두 줄로 요약 도 같이 만들어요. 담당자가 원문을 안 열어도 “무슨 건인지” 바로 보이게요. 규정문의 카테고리에서는 4편에서 연결한 규정 지식을 그대로 재사용 해요 — 같은 출처, 같은 “모르면 모른다” 규칙이 여기서도 작동해요.
💡 “애매하면 미분류로 두고 사람에게” 가 자율 봇의 품질을 지켜요. 자율 에이전트는 확신 없이 밀어붙이는 게 가장 위험해요. 헷갈리면 멈추고 넘기게 만드는 한 줄이 사고를 크게 줄여요.
5. 액션 — 자동 발송 대신 초안과 알림
분류·요약이 끝나면 결과를 어딘가에 남겨야 해요. 자율 봇이라고 곧장 답장을 쏘면 안 돼요. 안전한 순서로 액션을 둬요.
| 액션 | 무엇을 | 자동화 수준 |
|---|---|---|
| Teams 알림 | 담당 채널에 분류+요약 게시 | 자동 OK |
| 답장 초안 | 보낸 사람에게 보낼 답을 초안함에 대기 | 사람이 검토 후 발송 |
| 에스컬레이션 | 민감 건을 담당자에게 바로 넘김 | 자동 OK(전달만) |
| 자동 발송 | 봇이 직접 답장 전송 | 처음엔 끔 |
처음 운영할 땐 답장은 무조건 초안까지만 가게 해요. 봇이 만든 답을 사람이 한 번 보고 보내는 거죠. 몇 주 돌려보고 “이 카테고리는 거의 안 틀린다” 는 신뢰가 쌓이면, 그 카테고리만 자동 발송으로 풀어요.
🚨 자율 봇은 읽기전용·초안전용으로 시작 하는 게 정석이에요. “분류해서 알려만 주기” → “답장 초안까지” → “신뢰 쌓인 카테고리만 자동 발송” 순서로 권한을 넓히세요. 처음부터 자동 발송을 켜면, 틀린 답이 사람 손 안 거치고 나가는 사고가 바로 나요.
6. 자율 실행 모드로 전환
여기까지가 흐름이고, 마지막으로 에이전트를 자율 실행 으로 돌려요. Copilot Studio 에서 에이전트의 오케스트레이션을 자율(트리거 기반) 로 두면, 사람이 채팅을 열지 않아도 트리거가 올 때마다 위 흐름이 돌아요.
자율 모드의 동작은 이래요.
- 트리거로 깨어남 — 사람 프롬프트가 아니라 메일 도착이 시작점
- 스스로 단계 실행 — 분류 → 지식 조회 → 초안/라우팅을 알아서 밟음
- 막히면 에스컬레이션 — 확신이 낮거나 권한 밖이면 사람에게 넘김
대화형이 “물으면 답하는” 거라면, 자율형은 “목표(메일을 정리해 둬)를 주면 알아서 처리하고 보고하는” 구조예요. 그래서 더 강력하지만, 다음 장의 가드레일이 반드시 같이 가야 해요.
💡 자율로 바꾸기 전에 대화형으로 먼저 충분히 테스트 하세요. 같은 분류 지시문을 채팅에서 손으로 메일 본문을 붙여 돌려보고, 분류·초안이 만족스러워진 다음에 트리거를 연결하는 게 안전해요. “검증은 대화로, 운영은 자율로.”
7. 가드레일 — 무인일수록 촘촘히
자율 봇은 사람이 안 볼 때 도는 게 본질이라, 잘못 돌 때를 대비한 장치가 생명이에요. 핵심 가드레일을 모아둘게요.
- 무한 루프 차단. (3장에서) 봇 자신·자동회신 제외, 처리 표식 스킵, 같은 스레드 재처리 금지. 자율 봇 사고 1순위가 루프예요.
- 실행 상한. 시간당/일당 처리 건수에 상한을 걸어요. 트리거가 폭주해도(메일 폭탄·오설정) 상한이 비용과 피해를 막아줘요.
- 읽기전용·초안 시작. 자동 발송·삭제·외부 전송 같은 되돌리기 어려운 액션은 신뢰가 쌓이기 전엔 끔.
- 민감 카테고리 자동응답 금지. 불만·고충·개인정보는 봇이 답하지 않고 사람에게만 넘김. 지시문에 못 박아둠.
- 확신 낮으면 멈춤. 애매한 건 임의 분류 대신 ‘미분류 → 사람’. 멈추는 게 틀리는 것보다 싸요.
- 킬 스위치. 이상하면 바로 끌 수 있게 트리거를 한 번에 비활성화하는 방법을 미리 알아두세요.
🚨 자율 에이전트의 황금률: “맡긴 만큼 지켜봐라.” 사람이 루프에서 빠진 비중만큼 로그·상한·승인 게이트를 더 촘촘히 깔아야 해요. 자율성과 안전장치는 같이 올라가야 균형이 맞아요.
8. 테스트 — 명확 / 애매 / 위험
자율 봇은 운영 전에 여러 종류의 메일 을 흘려보내 봐야 해요. 대화형으로 분류 지시문을 검증한 뒤, 트리거를 연결하고 실제(또는 테스트) 메일로 확인해요.
케이스 1 — 명확한 규정 문의
받은 메일: "육아휴직 최대 며칠까지 쓸 수 있나요?"
봇 처리:
분류 = 규정문의
요약 = 육아휴직 한도 문의
답변 초안 = "육아휴직은 자녀 1명당 최대 1년(365일)까지...
[출처] 인사규정_2026.pdf 제42조" → 초안함 대기
Teams 알림 = "[규정문의] 육아휴직 한도 — 초안 준비됨"
규정 지식으로 초안까지, 발송은 사람 대기. ✅
케이스 2 — 애매한 문의
받은 메일: "저번에 말한 그 건 처리됐을까요? 답 좀 주세요."
봇 처리:
분류 = 미분류 (맥락 부족, 확신 낮음)
요약 = 이전 건 처리 여부 문의 — 맥락 불명
답변 초안 = (만들지 않음)
Teams 알림 = "[미분류] 담당자 확인 필요"
지어내지 않고 사람에게 넘겨요. ✅ 이게 케이스 1보다 더 중요해요.
케이스 3 — 민감·위험
받은 메일: "상사 갑질로 고충 접수하려 합니다. 비밀 보장되나요?"
봇 처리:
분류 = 불만·민감
요약 = 고충(갑질) 접수 문의 — 민감
답변 초안 = (만들지 않음, 자동응답 금지)
에스컬레이션 = 담당자에게 즉시 전달(요약만)
자동 응답하지 않고 즉시 사람에게. ✅ 민감 건을 봇이 건드리지 않는 게 핵심이에요.
✅ 테스트에서 “봇이 답하면 안 되는 메일에 입을 다무는지” 를 꼭 확인하세요. 자율 봇의 진짜 품질은 잘 답하는 데가 아니라 안 답하고 넘기는 판단 에서 드러나요.
9. 과금·통제·로그
자율 봇을 운영에 올리기 전 마지막 점검이에요. 대화·액션 봇보다 한 단계 더 신경 써야 해요.
- 과금 단위가 달라요. 자율 실행은 보통 일반 채팅과 다른 단위(자율 액션 + 플로우 액션)로 카운트돼요. 자주 깨어나는 트리거를 풀어두면 비용이 빠르게 붙으니, 실행 빈도와 건수를 모니터링 하세요. 트리거 조건을 좁히는 게 비용 절감의 첫걸음이에요.
- 통제 = 보이게 만들기. 사람이 루프에 없으니 분석·로그를 더 자주 봐요. “오늘 몇 건을 어떻게 분류했고, 미분류·에스컬레이션이 얼마였나” 를 정기적으로 확인하면 봇이 헛돌기 시작할 때 빨리 잡아요.
- 모든 처리에 로그. 어떤 메일을, 어느 카테고리로, 무슨 근거로 처리했는지 남기세요. 잘못된 라우팅의 원인을 추적하려면 이 기록이 유일한 단서예요.
- 에스컬레이션 비율이 건강 지표. 미분류·에스컬레이션이 너무 높으면 지시문/지식이 부족한 거고, 너무 낮으면(0에 가까우면) 봇이 애매한 것까지 우겨서 처리하는 건 아닌지 의심하세요.
- 그림자 자율봇 금지. 부서마다 공용 메일함에 자율봇을 몰래 달면 누가 뭘 자동 처리하는지 통제 불능이 돼요. 자율 봇은 관리자 가시성 아래 공식으로 만 운영하세요.
💡 운영 원칙 한 줄: “자율 봇은 켜고 잊는 게 아니라, 켜고 더 자주 들여다보는 것.” 무인이라고 무관리가 아니에요. 자율성이 높을수록 사람의 감시 비중을 오히려 늘려야 안전해요.
10. 한 장 요약
| 단계 | 무엇을 | 핵심 한 줄 |
|---|---|---|
| 설계 | 대화·액션·자율 구분 | 자율은 트리거가 시작·사람은 예외 때만 |
| 트리거 | 이벤트(메일 도착) | 조건을 좁혀 루프·노이즈 차단 |
| 판단 | 규칙 먼저, AI 는 애매할 때 | 헷갈리면 미분류 → 사람 |
| 액션 | 알림·초안·에스컬레이션 | 자동 발송은 처음엔 끔 |
| 자율화 | 트리거 연결 | 검증은 대화로, 운영은 자율로 |
| 가드레일 | 루프·상한·읽기전용·킬스위치 | 맡긴 만큼 지켜본다 |
| 테스트 | 명확/애매/위험 | 안 답하고 넘기는 판단이 품질 |
| 운영 | 과금·로그·에스컬레이션 비율 | 켜고 더 자주 들여다본다 |
정리하면, 자율 에이전트는 “트리거로 스스로 깨어나, 규칙과 AI 로 판단하고, 위험한 건 사람에게 넘기며, 모든 걸 기록하는” 무인 처리기예요. 대화형이 “빠른 비서”, 액션형이 “일을 처리하는 직원” 이라면, 자율형은 “안 보이는 곳에서 도는 직원” 이에요. 그래서 가장 강력하지만, 권한은 좁게·시작은 읽기전용·감시는 더 촘촘히 — 이 셋을 지킬 때만 사고가 아니라 자산이 됩니다.
이걸로 노코드 지식 봇(읽기) → 액션 봇(쓰기) → 자율 봇(무인)까지, Copilot Studio 로 에이전트를 키우는 세 단계를 한 바퀴 돌았어요. 더 정밀한 제어가 필요하면 다음은 Agents Toolkit(프로코드) 으로 코드에서 직접 만드는 영역이에요.
일단 오늘은 여기까지…..
다음 글에서는 VS Code 의 Agents Toolkit 으로 에이전트를 코드에서 직접 정의하는 프로코드 방식을 정리해볼게요.
← 이전 글: (5/7) 규정 봇에 액션 붙이기 — 휴가 신청 | 다음 글 →: (7/7) Agents Toolkit 프로코드 에이전트