Xây dựng một Copilot Studio agent flow từ template khởi đầu, kết nối hai đầu vào và một đầu ra, rồi quan sát tác vụ của bạn xử lý dữ liệu trò chuyện thực tế thông qua flow đó.
Giao thức kết nối
Trong vòng 15 phút tới, tác vụ của bạn sẽ thu thập hai thông tin từ một tin nhắn trò chuyện, chuyển chúng vào flow mà bạn đã xây dựng, và phản hồi bằng một thông báo xác nhận được định dạng theo đúng từ ngữ của bạn - đây là bằng chứng cho thấy dữ liệu thực tế đã hoàn tất quy trình khép kín. Không cần connector, không gửi email, không tác động đến bất kỳ bản ghi nào. Một flow, một tin nhắn thử nghiệm, một kết quả hiển thị rõ ràng.
Trong bài học trước, bạn đã tìm thấy trang Flows và học về quy tắc quyết định - một chuỗi các bước cụ thể tạo nên một agent flow. Bây giờ, bạn sẽ xây dựng một flow thực tế đơn giản nhất: một công cụ ghi nhận yêu cầu hỗ trợ dùng để thực hành, có chức năng định dạng và xác nhận mà không cần kết nối với hệ thống bên ngoài nào. Thiết kế này hoàn toàn an toàn và không gây ảnh hưởng; điều quan trọng ở đây là cấu trúc của flow.
Bước 1 - Bắt đầu từ agent của bạn (2 phút)
Mở Copilot Studio, chọn Agents, và mở tác vụ mà bạn đã tạo trong bài học đầu tiên (bạn có thể sử dụng bất kỳ agent nào mà mình có quyền chỉnh sửa). Truy cập trang Tools của agent đó, chọn Add a tool, sau đó chọn New tool→ Agent flow.
Trình thiết kế sẽ mở ra với template khởi đầu: một trình kích hoạt (trigger) When an agent calls the flow ở phía trên và một hành động (action) Respond to the agent ở phía dưới. Hai thẻ này tạo thành giao thức kết nối mà mọi flow được tác vụ gọi đều phải tuân thủ - nhận yêu cầu và trả về phản hồi. Bạn sẽ xây dựng nội dung cho phần nằm giữa hai thẻ này.
Phương án dự phòng: Nếu không thấy tùy chọn New tool, hãy sử dụng cách khác đã được hướng dẫn: thanh điều hướng bên trái, chọn Flows (flow) → nút tạo agent flow mới (có nhãn New agent flow hoặc New flow > Agent flow). Template vẫn giống hệt; bạn sẽ gắn nó vào agent ở Bước 5.
Bước 2 - Thêm hai đầu vào (3 phút)
Chọn thẻ trình kích hoạt When an agent calls the flow. Trong bảng điều khiển của thẻ, chọn Add an input, chọn kiểu dữ liệu Text và đặt tên là RequesterName. Thêm một đầu vào kiểu Text thứ hai và đặt tên là IssueSummary. Đây là hai giá trị mà agent sẽ trích xuất từ cuộc trò chuyện và truyền vào flow.
Kiểm tra nhanh: Tại sao lại chọn kiểu Text mà không phải là ngày tháng hay danh sách?
Trả lời: Các agent flows chỉ chấp nhận tham số dạng Văn bản (Text), Số (Number) và Boolean. Bất kỳ dữ liệu phức tạp nào khác đều sẽ được truyền dưới dạng văn bản - Bài học số 3 sẽ hướng dẫn cách xử lý vấn đề này.
Bước 3 - Thêm một hành động duy nhất (3 phút)
Ở giữa bước kích hoạt và bước phản hồi, hãy chọn Insert a new action và tìm kiếm Compose (trong mục Data Operations). Tại trường Inputs của thẻ Compose, hãy tạo dòng nội dung sau - nhập phần văn bản cố định và chèn hai dữ liệu đầu vào từ trình chọn nội dung động vào các vị trí có dấu ngoặc vuông:
Điền thông tin chi tiết: Bạn không cần cá nhân hóa thủ công ở đây - các trình giữ chỗ sẽ được điền tự động thông qua trình chọn nội dung động, không phải bằng cách gõ phím.
Bước 4 - Kết nối đầu ra và xuất bản (2 phút)
Chọn thẻ Respond to the agent. Chọn Add an output, chọn kiểu Text, đặt tên là Confirmation và gán giá trị của nó là Outputs từ hành động Compose của bạn (một lần nữa, hãy sử dụng nội dung động). Sau đó chọn Save, và khi đã lưu thành công, hãy chọn Publish. Nếu quá trình xuất bản gặp lỗi, hãy mở Flow checker trên thanh menu phía trên - công cụ này sẽ liệt kê mọi lỗi kèm theo hành động chứa lỗi đó.
Bước 5 - Đặt tên cho công cụ để agent có thể tìm thấy nó (2 phút)
Quay lại trang Tools của agent, flow của bạn lúc này sẽ xuất hiện trong danh sách (nếu bạn tạo nó từ trang Flows thay vì trang này, hãy thực hiện: Add a tool → Flow → chọn flow → Add and configure). Mở phần cấu hình của công cụ và dán nội dung mô tả sau:
Ghi lại yêu cầu hỗ trợ thực hành. Sử dụng khi người dùng muốn ghi lại, lưu hồ sơ hoặc
lưu trữ một yêu cầu hoặc vấn đề thực hành. Thu thập tên người yêu cầu và một câu
tóm tắt vấn đề, sau đó trả về dòng xác nhận cho người dùng.
Chọn Save. Phần mô tả đó không phải chỉ để trang trí - nó là cơ sở để orchestrator quyết định xem công cụ này có phù hợp với yêu cầu của người dùng hay không.
Bước 6 - Một câu lệnh (prompt) duy nhất (2 phút)
Nơi dán nội dung: Khung Test của agent - chính là khung trò chuyện mà bạn đã sử dụng trong suốt khóa học đầu tiên. Hãy sao chép câu lệnh (prompt) này:
Hãy ghi nhận một yêu cầu thử nghiệm. Tên tôi là [tên của bạn] và vấn đề tôi gặp phải là
chuột tự động nhấp đúp vào mọi thứ.
Những gì bạn sẽ thấy: Hệ thống tạm dừng vài giây trong khi flow chạy, sau đó là phản hồi chứa dòng xác nhận của bạn.
Có ba chi tiết giúp phân biệt giữa việc hệ thống "hoạt động chính xác" và việc nó "đang đoán mò":
Nguyên văn lời bạn viết đã được chuyển đổi. Tên và vấn đề trong phản hồi chính là những gì bạn đã nhập - chúng được trích xuất, truyền vào dưới dạng dữ liệu đầu vào và được định dạng theo quy tắc nhất định. Đó chính là yếu tố tạo nên sự tin cậy.
Bạn không hề nhập tên chủ đề (topic). Orchestrator đã đọc mô tả công cụ, xác định sự phù hợp và tự động điền cả hai thông tin đầu vào.
Không có tác động nào ra bên ngoài. Không có email, không có mục nào được thêm vào danh sách, cũng không có phiếu yêu cầu nào được tạo ra. Kiến trúc thực tế, không gây ra tác dụng phụ nào.
Làm gì khi quy trình không hoạt động như ý?
Quy trình không xuất hiện trong mục Add a tool → Flow. Nguyên nhân thường gặp là do chưa thực hiện bước Publish. Ngoài ra, hãy đảm bảo cặp thẻ kích hoạt (trigger) và phản hồi (response) vẫn còn nguyên sau khi chỉnh sửa — nếu thiếu một trong hai thẻ này, công cụ sẽ không hiển thị trong danh sách chọn.
Agent trả lời dựa trên kiến thức có sẵn thay vì chạy quy trình. Nguyên nhân là do orchestrator không khớp được yêu cầu. Hãy điều chỉnh tin nhắn sao cho mang rõ đặc điểm của một quy trình (ví dụ: "ghi nhận yêu cầu thử nghiệm") và viết lại câu Use when... trong phần mô tả cho thật cụ thể.
Phản hồi hiển thị thông báo "Something unexpected happened… Error code: 3000". Hãy mở thẻ Respond to the agent → Settings → tắt tùy chọn Asynchronous response, lưu lại và xuất bản lại quy trình.
Quy trình chạy nhưng phản hồi không có dòng xác nhận. Kết quả đầu ra bị trống - hãy mở lại thẻ Respond to the agent và kiểm tra xem phần Confirmation đã chứa nội dung từ Compose Outputs hay chưa.
Agent hỏi tên và vấn đề cần xử lý. Đây không phải lỗi - agent đang thu thập các thông tin đầu vào mà bạn chưa cung cấp. Hãy trả lời agent và quan sát quy trình chạy.
Nếu tổng thể quy trình trông có vẻ chưa ổn: Hãy kiểm tra danh sách này từ trên xuống dưới. Trạng thái xuất bản, cách viết mô tả và tùy chọn phản hồi bất đồng bộ (async) là những yếu tố gây ra hầu hết các lỗi khi mới tạo quy trình.
Thành quả nhanh chóng của bạn
Nếu quy trình đã hoạt động, hãy chụp ảnh màn hình phần phản hồi có chứa dòng xác nhận của bạn. Bạn vừa tạo thành công một quy trình tự động hóa cho agent — và mọi quy trình thực tế sau này (dù là ghi nhận phiếu yêu cầu hay điều phối phê duyệt) đều dựa trên cấu trúc khung này, chỉ khác là có thêm các bước ở giữa.
Xử lý kết quả đầu ra: Hãy giữ lại quy trình thử nghiệm này. Các bài học từ số 3 đến số 6 sẽ giúp nâng cấp trực tiếp quy trình này.
Kiểm tra nhanh: Trả lời trong một câu - ai quyết định thời điểm chạy quy trình và ai kiểm soát những gì diễn ra bên trong quy trình đó?
Trả lời: Orchestrator quyết định thời điểm chạy dựa trên mô tả công cụ; các bước cố định trong quy trình kiểm soát những gì diễn ra. Sự phân chia đó chính là toàn bộ kiến trúc hệ thống.
Những điểm chính cần ghi nhớ
Việc tạo quy trình agent dưới dạng New tool sẽ tự động thiết lập sẵn các thẻ bắt buộc là thẻ kích hoạt (trigger) và thẻ phản hồi (Respond to the agent).
Các dữ liệu đầu vào và đầu ra đều được định nghĩa kiểu dữ liệu (Văn bản, Số, Boolean) và đặt tên cụ thể — agent sẽ tự động điền dữ liệu đầu vào từ nội dung cuộc trò chuyện.
Chỉ những quy trình đã được xuất bản và có đầy đủ cặp thẻ kích hoạt/phản hồi mới xuất hiện trong danh sách chọn công cụ.
Mô tả công cụ đóng vai trò điều phối các yêu cầu — hãy viết mô tả đó như một chỉ dẫn dành cho bộ điều phối.
Lỗi 3000 khi mới tạo quy trình thường do tùy chọn Asynchronous response đang được bật (On). Nó phải đang tắt.
Câu 1:
Tin nhắn thử nghiệm của Sam kích hoạt flow một cách rõ ràng - nhưng agent lại phản hồi bằng một thông báo chung chung là "done'' và dòng xác nhận được định dạng của anh ấy không hề xuất hiện. Anh ấy nên kiểm tra điều gì đầu tiên?
GIẢI THÍCH:
Nếu flow chạy nhưng agent không hiển thị gì, nguyên nhân thường gặp là tham số đầu ra đã được tạo nhưng chưa bao giờ được điền dữ liệu - hành động phản hồi trả về giá trị rỗng. Giấy phép Power Automate không liên quan ở đây, và tính năng Asynchronous response phải được tắt (Off) đối với các agent flow; việc bật nó lên sẽ gây ra lỗi chứ không phải là giải pháp khắc phục.
Câu 2:
Priya đã tạo một flow trong trình thiết kế và lưu lại, nhưng nó không xuất hiện trong danh sách Add a tool của agent ở mục Flow. Đâu là lý do có khả năng nhất?
GIẢI THÍCH:
Lệnh Save chỉ tạo ra bản nháp; trình chọn công cụ liệt kê các flow đã xuất bản có đúng trình kích hoạt và hành động phản hồi. Việc xuất bản agent không liên quan đến vấn đề này, không có hàng đợi phê duyệt của quản trị viên cho các flow, và việc chuyển đổi sang cloud flow là đi ngược lại quy trình - hành động đó sẽ loại bỏ hoàn toàn flow khỏi hệ thống thanh toán của Copilot Studio.
Câu 3:
Bạn tạo một agent flow dưới dạng công cụ mới từ trang Tools của agent. Template khởi đầu cung cấp cho bạn những gì trên canvas?
GIẢI THÍCH:
Việc tạo agent flow từ trình chọn công cụ sẽ tự động tạo ra hai thẻ bắt buộc phải có đối với mọi flow mà agent có thể gọi: Trình kích hoạt agent và hành động phản hồi. Bạn sẽ thêm các đầu vào, hành động và đầu ra vào giữa hai thẻ này. Không có kết nối demo, không có chủ đề, và không cần phải tự tìm kiếm trình kích hoạt.
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây: