Generative Orchestration trong Copilot Studio: Cách agent đưa ra quyết định

Mỗi khi người dùng gửi tin nhắn cho agent của bạn, cần có một cơ chế đưa ra quyết định: Tìm kiếm trong kho kiến ​​thức? Thực thi một chủ đề (topic)? Gọi một công cụ? Hay chỉ đơn thuần là phản hồi? Cơ chế đó chính là Orchestrator; việc hiểu rõ nó tạo ra sự khác biệt giữa một agent hoạt động theo đúng định hướng của bạn và một agent có những hành vi bất ngờ.

Ở bài học trước, bạn đã xác định nguồn cung cấp câu trả lời - đó là các kho kiến ​​thức có kèm trích dẫn, và tính năng tìm kiếm web đã được tắt. Hôm nay, chúng ta sẽ tìm hiểu về thành phần quyết định thời điểm sử dụng các nguồn này.

Hai cơ chế xử lý: Tạo sinh (Generative) và Truyền thống (Classic)

Các agent mới trên nền tảng tiêu chuẩn mặc định sử dụng cơ chế Generative Orchestration (điều phối tạo sinh). Bạn có thể xem (và thay đổi) thiết lập này tại mục Settings → Generative AI → Orchestration - với tùy chọn: "Use generative AI orchestration for your agent's responses?" (Sử dụng cơ chế điều phối Generative AI cho các phản hồi của agent?).

Chế độ tạo sinh (Generative mode) là yếu tố mang lại sự thông minh cho agent của bạn: Nó đọc tên và mô tả của mọi thành phần được đính kèm - bao gồm chủ đề (topic), công cụ (tool) và kiến ​​thức (knowledge) - rồi tự lập kế hoạch cho từng lượt tương tác, thậm chí kết hợp nhiều nguồn tài nguyên để giải quyết các câu hỏi phức tạp gồm nhiều phần. Nó cũng có thể tự đặt câu hỏi bổ sung khi thiếu thông tin đầu vào cần thiết (Microsoft gọi đây là cơ chế "điền trường thông tin bằng AI" hay *generative slot filling*).

Chế độ cổ điển (Classic mode) hoạt động dựa trên cơ chế xác định trước (deterministic) truyền thống: Câu nói của người dùng được đối chiếu với các cụm từ kích hoạt (Microsoft khuyến nghị 5 – 10 cụm từ cho mỗi chủ đề), chủ đề khớp nhất sẽ được thực thi, và hệ thống chỉ tìm kiếm trong kho kiến ​​thức khi không tìm thấy chủ đề nào phù hợp. Đây vẫn là chế độ được hỗ trợ ở một số gói cấp phép (như gói Teams) và là lựa chọn dự phòng khi bạn cần sự chính xác, có thể dự đoán trước hoàn toàn về cách phản hồi.

Một lưu ý để tránh nhầm lẫn: Cơ chế điều phối tạo sinh (generative orchestration) trên nền tảng tiêu chuẩn (standard harness) không phải là "cơ chế điều phối mới" của GitHub Copilot  đã đề cập trong Bài 1. Chúng là hai thứ khác nhau và có cách tính phí khác nhau. Khóa học này tập trung vào nền tảng tiêu chuẩn.

Kiểm tra nhanh: Trong cơ chế điều phối tạo sinh, Orchestrator đọc thông tin nào để quyết định có sử dụng nguồn kiến ​​thức của bạn hay không - nội dung bên trong nguồn đó, hay tên và mô tả của nó?

Đáp án: Tên và mô tả. Nội dung chỉ quan trọng sau khi Orchestrator đã quyết định thực hiện tìm kiếm trong nguồn đó. Đó là lý do tại sao Bài 4 khuyên bạn nên viết phần mô tả thật kỹ lưỡng và rõ ràng.

Topics (Chủ đề): Phần được thiết lập kịch bản của một agent linh hoạt

Topic là một phần của cuộc hội thoại do bạn thiết kế trên giao diện trực quan gồm các node - bao gồm tin nhắn, câu hỏi và các điều kiện. Agent của bạn vốn đã có sẵn các chủ đề hệ thống thực hiện những tác vụ ngầm: Conversation Start (lời chào), Fallback (tin nhắn báo "Tôi không chắc chắn" mà bạn đã gặp ở Bài 3), Escalate (chuyển tiếp cho nhân viên hỗ trợ), On Error (xử lý lỗi) và một số chủ đề khác. Bạn không thể xóa các chủ đề hệ thống này nhưng có thể chỉnh sửa hoặc tắt chúng - việc chỉnh sửa Conversation Start là cách nhanh nhất để thay đổi lời chào của agent.

Vậy khi nào thì người mới bắt đầu thực sự cần tạo một chủ đề? Có một quy tắc áp dụng cho 90% các trường hợp: Đó là khi câu trả lời cần sự chính xác tuyệt đối. Ví dụ như các tuyên bố miễn trừ trách nhiệm pháp lý, câu chữ chuyển tiếp hỗ trợ vì lý do an toàn, hay thông báo "liên hệ địa chỉ này trong trường hợp khẩn cấp" - bất kỳ nội dung nào mà việc diễn giải lại theo ý hiểu (paraphrase) có thể gây ra vấn đề. Các câu trả lời tạo sinh (generative answers) thường được diễn giải lại; trong khi đó, Message node của một chủ đề sẽ hiển thị nguyên văn nội dung.

Xây dựng chủ đề chuyển tiếp (escalation topic) mà mọi nhân viên hỗ trợ chuyên nghiệp đều cần

Nơi thiết lập: Trong bot của bạn, hãy vào trang Topics → Add a topic → From blank. Bạn cần điền thông tin vào hai chỗ: Phần mô tả chủ đề (trong mục Details) và Message node mà bạn thêm vào khung soạn thảo.

Sao chép nội dung prompt gợi ý này:

Tên chủ đề: Talk to a human (Trò chuyện với nhân viên)

Mô tả chủ đề: Sử dụng chủ đề này khi người dùng cảm thấy bực bội, yêu cầu gặp
nhân viên, muốn chuyển tiếp vấn đề, hoặc gặp sự cố khẩn cấp mà bot không thể giải quyết.

Nội dung Message node: Tôi muốn kết nối bạn với nhân viên hỗ trợ thay vì cố gắng đoán câu trả lời
cho vấn đề này. Hãy gửi email đến [team inbox] hoặc liên hệ qua [Teams channel name], và nhân viên sẽ
phản hồi trong vòng [response time]. Nếu vấn đề khẩn cấp, hãy gọi [phone/contact].

Điền thông tin chi tiết của bạn: Thay thế các thông tin liên hệ trong ngoặc vuông bằng thông tin thực tế của nhóm bạn. Lưu ý không đặt dấu chấm trong tên chủ đề - dấu chấm trong tên chủ đề sẽ gây lỗi khi xuất giải pháp (solution export) sau này.

Kết quả hiển thị: Sau khi lưu, hãy thử nghiệm với câu lệnh "this is useless, I want to talk to a real person" (cái này vô dụng quá, tôi muốn nói chuyện với người thật). Node kích hoạt (trigger node) sẽ hiển thị trạng thái "The agent chooses" (Bot tự chọn - đây là cơ chế điều phối tạo sinh đang đọc phần mô tả của bạn), và phản hồi trả về sẽ là tin nhắn của bạn, hiển thị nguyên văn từng chữ.

Nếu kết quả không như ý: Nếu chủ đề không được kích hoạt, hãy tinh chỉnh phần mô tả - nêu rõ các tình huống cụ thể ("frustrated"/bực bội, "asks for a person"/yêu cầu gặp người, "urgent"/khẩn cấp). Với cơ chế điều phối tạo sinh, phần mô tả chính là yếu tố kích hoạt.

Kiểm tra nhanh: Tại sao chúng ta lại đưa thông tin liên hệ vào một chủ đề thay vì phần hướng dẫn (Instructions)?

Trả lời: Phần hướng dẫn định hình các câu trả lời tạo sinh, vốn có thể diễn giải lại hoặc bỏ sót chi tiết. Message node đảm bảo hiển thị chính xác từng chữ - và thông tin chuyển tiếp là loại nội dung tuyệt đối không được phép tùy biến hay diễn giải lại.

Khi nào nên chọn chế độ cổ điển (Classic mode)?

Hãy giữ chế độ điều phối tạo sinh (generative orchestration) được bật cho bot trong khóa học này - đây là chế độ mặc định vì những lý do hợp lý. Hãy lưu ý ba dấu hiệu cho thấy chế độ cổ điển (classic mode) phù hợp với dự án: mọi tương tác đều theo kịch bản cố định (như khảo sát, biểu mẫu), gói giấy phép của bạn không bao gồm tính năng điều phối tạo sinh (generative orchestration), hoặc quản trị viên đã tắt tính năng này trong môi trường của bạn. Việc chuyển đổi chế độ chỉ cần thay đổi một cài đặt, nhưng các chủ đề (topic) được tạo cho chế độ này cần được xem xét lại khi chuyển sang chế độ kia, do logic kích hoạt bên dưới chúng sẽ thay đổi.

Những điểm chính cần lưu ý

  • Cơ chế điều phối tạo sinh (mặc định) lựa chọn các chủ đề, công cụ và kiến ​​thức dựa trên tên và mô tả của chúng, đồng thời có thể kết hợp nhiều yếu tố trong cùng một lượt phản hồi.
  • Cơ chế điều phối cổ điển hoạt động bằng cách khớp các cụm từ kích hoạt và chỉ tìm kiếm kiến ​​thức khi các phương thức khác không thành công (fallback); cơ chế này mang tính xác định (deterministic) và vẫn phụ thuộc vào một số gói giấy phép nhất định.
  • Các chủ đề hệ thống (system topics) đảm nhiệm việc chào hỏi, xử lý tình huống không tìm thấy kết quả (fallback) và xử lý lỗi; hãy chỉnh sửa chủ đề "Conversation Start" để thay đổi lời chào.
  • Hãy tạo chủ đề tùy chỉnh khi phản hồi cần chính xác từng từ một; trong chế độ tạo sinh, phần mô tả đóng vai trò là yếu tố kích hoạt.
  • Không sử dụng dấu chấm trong tên chủ đề; đồng thời, cần phân biệt rõ giữa cơ chế điều phối tạo sinh tiêu chuẩn và tính năng New Orchestration (điều phối mới) của GitHub Copilot.
  • Câu 1:

    Linh chuyển đổi agent của mình từ cơ chế điều phối tạo sinh sang cổ điển trong phần Settings để thử nghiệm một tính năng. Điều gì thực sự thay đổi trong cách thức hoạt động của agent?

    GIẢI THÍCH:

    Chế độ cổ điển là hợp đồng cũ: Topic có cụm từ kích hoạt khớp nhất với từ khóa của người dùng sẽ thắng, và việc tìm kiếm kiến ​​thức diễn ra như một phương án dự phòng khi không có topic nào khớp - chứ không phải chủ động trong mọi lượt. Kiến thức vẫn được gắn kết, hướng dẫn vẫn quan trọng và thay đổi có thể được kiểm tra ngay lập tức trong bảng kiểm thử.

  • Câu 2:

    Agent tài chính của Tom cần đưa ra chính xác cùng một nội dung miễn trừ trách nhiệm tuân thủ gồm ba câu - nguyên văn từng chữ, mỗi lần - bất cứ khi nào có người hỏi về lời khuyên đầu tư. Cách tốt nhất để đảm bảo điều này là gì?

    GIẢI THÍCH:

    Message node bên trong một topic sẽ xuất văn bản nguyên văn - đó là sự đảm bảo mang tính xác định cần thiết cho việc tuân thủ quy định. Cả phần hướng dẫn và kiến ​​thức đều đi qua quy trình trả lời tạo sinh, vốn có thể diễn giải lại nội dung. Việc chuyển hoàn toàn sang chế độ cổ điển cũng có thể giải quyết vấn đề nhưng sẽ làm mất đi khả năng tìm kiếm kiến ​​thức chủ động và xử lý đa bước, chỉ để đáp ứng một yêu cầu mà một topic đơn lẻ có thể giải quyết được.

  • Câu 3:

    Agent của bạn đang sử dụng cơ chế điều phối tạo sinh (mặc định cho các agent mới). Làm thế nào để nó quyết định liệu chủ đề (topic) tùy chỉnh của bạn có nên chạy cho một tin nhắn cụ thể từ người dùng hay không?

    GIẢI THÍCH:

    Trong cơ chế điều phối tạo sinh, nút kích hoạt hiển thị dòng chữ "The agent chooses" (Agent tự chọn) - việc lựa chọn dựa trên tên và mô tả của topic chứ không phải dựa trên việc so khớp cụm từ. Các cụm từ kích hoạt là cơ chế của chế độ cổ điển. Các topic vẫn hoàn toàn có thể chạy trong cơ chế điều phối tạo sinh; chỉ là không có thứ tự thực thi cố định mà thôi.

Thứ Hai, 12/10/2026 08:26
5 ★ 1 👨 14
Xác thực tài khoản!

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:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖ Copilot Studio