🚀 A. 저번 시간 내용
- 저번 시간에는 첫시간이기에 프로젝트를 세팅을 진행하였죠
✅ 개발환경 구축도 해보고
✅ SharePoint 사이트 만들고
✅ 데이터베이스도 설계하고 List도 만들어 보았는데요.
</br> </br>
🎯 B. 이번 시간 목표
이번 시간에는
- 본격적으로 Declarative 에이전트 생성해보고
- 저희 메인 기능중에 하나인 차량 추가 액션(
create_car
) 만들어봐요
</br> </br>
🛠 C. Copilot Studio에 개발환경 적용하기
본격적으로 시작하기에 앞서, 저번 시간에 만든 개발환경부터 적용해볼까요?
- Copilot Studio 접속
- 우상단 Environment 버튼을 클릭해요.
- 지난 시간에 만들었던 Environment를 선택해 적용해 주세요.
- 적용 완료! 간단하죠?
</br> </br>
🤖 D. Declarative 에이전트 만들기
📌 Declarative 복습
- 지난시간에 배운 내용 복습을 한번해볼까요.
- Copilot Studio에서는 두 가지 유형의 에이전트를 만들 수 있어요.
- Custom Engine Agent
- Declarative Agent (Microsoft 365 내에서 사용 가능)
- Declarative는 오케스트레이션을 Copilot과 공유하는 모델이에요.
Declarative Agent 생성
- ‘What is Declarative Agent’ 문서를 참고해 Declarative 에이전트를 만들어 주세요!
- 🚨 주의
Copilot for Microsoft M365
에서 반드시 생성해야 해요!Copilot for Microsoft M365
를 선택하지 않으면 Custom Engine Agent가 생성돼요.
- Description과 Instructions는 임시로 간단하게 작성해 주세요.
- 언어는 English를 선택하는 게 좋아요. 영어 모델이 성능이 더 뛰어나거든요.
-
참고로, 저는 Declarative 생성 페이지에서 아래와 같이 설정했어요.
- 이제 Declarative 에이전트가 완성되었으면 Power Automate Flow Action을 사용해 회사 차량을
car_list
에 추가하는 기능을 만들어 보자고요!
</br> </br>
🏗️ E. Action과 Power Automate Flow란?
아아. 들어가기전에 잠깐 액션이 뭔지하고 PowerAutomate Flow가 뭔지 설명을 좀 드릴게요.
Action 복습하기
- Action은 사용자의 명령 없이도 자동으로 실행되는 AI 작업이에요.
- 사용자가 “무엇을 해야 하는지”만 정의하면, Copilot이 최적의 방법을 찾아 실행해요.
📌 예제
사용자가 “다음 주 일정 정리할게요”라고 말하면,
👉 Copilot이 자동으로 캘린더에서 일정을 정리하고 팀원에게 공유하는 액션을 실행해요.
Power Automate Flow란?
- Power Automate Flow는 Microsoft Power Automate의 자동화 워크플로우 기능이에요.
- 반복적인 업무를 자동화하여 생산성을 높일 수 있어요.
</br> </br>
⚠️ F. 우회해서 Declarative에 Power Automate Flow Action 만들기!
❌ 문제가 있어요
- 현재 살짝 문제가 있는 부분이 있는데요. 하하.
- Declarative 에이전트에서는 Power Automate Flow를 생성하는 기능이 비공개 상태예요.
✅ 해결 방법
- 하지만 저희 정우님게서 이를 우회해서 미리 써보는 방법을 고안하셨는데요.
- Custom Engine Agent에서 Flow 코드를 생성한 후, 이를 복사해 Declarative로 옮기는 방법입니다
- 이 방법은 저희가 모든 액션을 만들때 마다 계속 쓸거기 떄문에! 꼭 숙지를 해주셔야해요.
- 아래에서 차근차근히 설명을 드리겠습니다. Custom Engine Agent 부터 만들어봐요.
Custom Engine Agent 만들기
- Copilot Studio의 3번쨰 탭인 Agent에서 좌측 상단의 “New Agent” 버튼을 클릭해요.
- 클릭하면 아래와 같이 채팅으로 에이전트를 만들 수 있는 기능으로 이동돼요.
- 어차피 Flow Action을 만들 용도라서, 설정은 신경 쓰지 않아도 돼요.
- 바로 “Create” 버튼을 눌러 생성하면 돼요.
</br> </br>
⚡ G. Custom Engine Agent에서 Power Automate Flow Action 만들기
- 자 저희의 목표는 여기(Custom Engine Agent)에서 액션을 만들고 이를 Declarative 에이전트로 옮기는거죠.
- 이를 위해서는 일단 여기서 액션을 만들어 봅시다!
- Custom Engine Agent 메인화면에서 “+ Add Action” 버튼을 클릭해요.
- 아래와 같은 화면이 나오면 New Action → New Power Automate Flow를 선택해 주세요.
- Power Automate Flow 페이지로 이동하면, 로그인 후 진행해주세요.
</br> </br>
🔧 H. Power Automate에서 create_car
액션을 만들기
- Power Automate에 무사히 안착했으니 본격적으로 자동으로 차량을 추가하는 FLOW를 설정해볼까요.
- 아래와 같은 화면임을 가정하고 여기부터 설명드리겠습니다!
- 참고) 현재 Copilot관련 아이콘을 불러오는데 오류가 있더라고요. 아이콘이 보이지 않아도 걱정마세요!
- Run a flow from Copilot부터 설정을 시작해보죠.
📌 Run a flow from Copilot
- Copilot의 명령을 받아 Power Automate Flow를 자동으로 실행하는 기능이에요.
- Parameter를 설정해 Copilot이 받아올 정보를 명시적으로 지정할 수 있어요.
📌 등록할 차량 정보
Add an Output
버튼을 눌러 아래 변수를 추가하고, Description을 작성해 주세요.
번호 | 변수명 | 타입 |
---|---|---|
1 | car_num | text |
2 | car_size | text |
3 | car_name | text |
4 | seating_num | number |
5 | is_operating | yes/no |
📌 Respond to Copilot
- Power Automate Flow 실행 후, Copilot에게 작업 결과를 반환하는 기능이에요.
Add an Output
을 눌러 Text 타입의 성공 메시지를 추가하면 돼요.
🔧 Create item
설정하기
이제 Run a flow from Copilot
에서 전달받은 데이터를 SharePoint List에 추가하는 단계예요.
Create item
을 추가하고, 차량 정보를 자동으로 입력할 수 있도록 설정해 볼게요.
- Run a flow from Copilot과 Respond to Copilot 사이에 ”+” 버튼을 클릭해요.
-
“Add an action”을 클릭하고
create item
을 검색해 추가해 주세요.
- SharePoint List 연결하기
- Site Address: 드롭다운에서 우리가 만든 리스트가 있는 SharePoint 페이지를 선택해 주세요.
- List Name:
car_list
를 선택하면 돼요.
- Advanced Parameters 설정하기
Advanced Parameters
를 클릭하면, 자동으로 리스트에서 불러온 열 요소들이 나타나요.- 아래 요소들을 반드시 선택해 주세요.
필드명 설명 car_num
차량 번호 (ex: “11가 1234”) car_size
차량 크기 (ex: “중형”) car_name
차량 모델명 (ex: “소나타”) seating_num
좌석 개수 (ex: 4) is_operating
운영 여부 (ex: “Yes/No”) - Dynamic Content로 입력값 연결하기
- SharePoint List의 입력란을 클릭한 후
/
을 입력하면,Insert Dynamic Content
창이 나타나요. - 각 SharePoint 필드에 대응하는 Copilot 변수를 선택해 연결해 주세요.
- SharePoint List의 입력란을 클릭한 후
- 설정이 완료되면 아래와 같은 상태가 돼요! 그럼 Flow는 완성!
🚀 Flow 저장하고 배포하기
지금까지 Flow를 열심히 만들었다면 이제는 저장하고 배포해야해요. 완성된 Flow를 Copilot이 실행할 수 있도록 배포해야 Copilot Agent가 이 flow를 사용할 수 있어요
✅ Flow 이름 바꾸기
- 좌상단에 있는 Flow 이름을 클릭하고,
create_car
로 변경해 주세요.- 기본 이름 그대로 두면 나중에 헷갈릴 수 있어요!
✅ Save Draft
- 우상단 “Save Draft” 버튼을 눌러 변경사항을 저장해 주세요.
- 수시로 저장하는 게 중요해요. 안 하면 피눈물 흘릴 수도 있어요. 😭
✅ Publish
- “Publish” 버튼을 클릭해 Flow를 배포하면 완료예요!
- Flow가 배포되어야 Copilot에서 사용할 수 있어요.
🔄 Declarative 에이전트로 액션 옮기기
Flow를 저장하고 배포했으면, 이제 Custom Engine Agent에 추가한 액션을 저희의 본체인 Declarative 에이전트로 옮겨볼까요 해요.
다음 단계를 따라가면 쉽게 할 수 있어요!
-
Custom Engine 에이전트 메인화면(Overview)으로 이동 후 “+ Add Action” 클릭
-
Library 옆에 있는 “…” 버튼을 눌러 Flow를 선택하면, 방금 만든 Flow를 확인할 수 있어요.
-
선택한 후, Connection과 여러 설정을 진행하고 완료하면
create_car
액션이 추가돼요. -
추가된
create_car
액션을 클릭해 Details로 이동한뒤 “More” → “Open Code Editor” 선택
-
아래 화면에서 코드 전체를 복사해 주세요.
- Declarative Agent로 이동한 후, “Add Action”을 클릭하고 더미 액션을 생성해 주세요.
- 어떤 액션을 생성하셔도 괜찮습니다! 어짜피 덮어씌울 용도입니다.
- 저는 개인적으로는 MSN Weather의 Get forecast for today를 사용합니다! 어떤정보도 묻지 않아서 next만 누르면 넘어갈 수 있거든요.
-
똑같이 액션을 클릭해 More-> Open Code Editor를 열어 기존 코드 삭제 후, 복사한 코드를 붙여넣고 저장하면 완료!
- Overview 페이지에서
create_car
로 이름을 변경하면 최종적으로 적용이 완료돼요.
- 짠! 그러면 아래처럼 Declarative 에이전트에 create_car Action이 등록되어요.
- 물론 저야 이미 모든 action을 만들어놨지만, 여러분의 경우 create_car만 아래처럼 등록되면 성공입니다:)
—
🧪 테스트 및 원리 이해
이제 만든 액션을 Copilot에서 정상적으로 실행할 수 있는지 테스트해 볼 차례예요.
-
Declarative Agent 페이지의 우측 “Test” 섹션에서 테스트를 진행해 보세요.
- Copilot에게 차량 추가를 요청하면, 자동으로
create_car
액션이 실행될 거예요.
- 꼭 제가 질문한대로 에이전트에게 요청하지 않아도, 다양한 형식으로 질문할 수 있어요.
- 만일, 요청을 에이전트가 알아듣지 못한다면, 그때부터는 Instruction을 고도화 시켜 프롬프트엔지니어링으로 해결이 가능합니다!
- 이것을 다음시간에 보여드릴게요.
- SharePoint List에서
car_list
를 확인하면 차량이 추가된 걸 볼 수 있어요.- 할루시네이션이 있을 수 있으니 리스트에 차가 실제로 추가되었는지 꼭 확인해주세요!
</br> </br>
🔍 I. 액션 작동 원리 이해하기
Copilot Studio에서는 많은 과정이 추상화되어 있어, 처음에는 어떻게 동작하는지 궁금할 수 있어요.
하지만 전체 과정은 아래와 같이 정리할 수 있어요.
- 사용자가 자연어로 차량 추가 요청
- 오케스트레이터가 요청을 분석하고 알맞은 액션 매핑
- 필요한 파라미터를 유저의 요청에서 추출
- 만약 부족한 정보가 있다면, 사용자에게 추가 질문
- 추출한 파라미터를 Power Automate Flow에 전달 및 실행하여 SharePoint List에 저장
이런 과정을 거쳐 차량이 자동으로 등록되는 거예요!
</br> </br>
🎯 J. 결론
오늘 배운 내용을 정리하면 다음과 같아요!
- Power Automate Flow를 활용해 차량을 자동으로 추가하는
create_car
액션을 만들었어요. - Flow를 Custom Engine Agent에서 생성한 후, Declarative Agent로 옮기는 과정을 진행했어요.
- Declarative Agent에서 정상적으로 작동하는지 테스트해 봤어요.
📌 중요한 점!
다음 시간부터는 Flow를 Custom Engine Agent에서 생성한 후 Declarative Agent로 옮기는 과정은 생략하고,
바로 Power Automate의 Flow를 중심으로 설명할 예정이에요.
그래서 해당 부분 꼭 잘 익혀주시길 부탁드립니다.
지금까지 따라오느라 정말 고생 많으셨습니다!
다음 시간에는 Declarative Agent의 Instruction을 정교하게 설정하는 방법을 다뤄볼 거예요. 🚀