Middleware Configurations
Hướng dẫn này giải thích các cài đặt Middleware có sẵn khi tạo hoặc chỉnh sửa một AI Agent trong NPO Studio. Tab Middleware cung cấp 3 tính năng chính: Human in the loop, bảo vệ PII (Personally Identifiable Information) và Summarization (dựa trên LangChain).
Truy cập Cài đặt Middleware
- Mở AI Agent của bạn từ canvas thiết kế Agent.
- Nhấp vào nút AI Agent (ví dụ: "Agent 1 - Main Agent").
- Trong bảng cấu hình bên phải, chọn tab Middleware.
Human in the loop
Middleware Human in the loop cho bạn quyền kiểm soát các công cụ mà agent có thể thực hiện tự động và những công cụ nào cần sự chấp thuận rõ ràng từ con người. Khi được kích hoạt, các cuộc gọi công cụ phù hợp với các quy tắc bạn đã cấu hình sẽ tạm dừng thực hiện và chờ con người phê duyệt, chỉnh sửa hoặc từ chối trước khi tiếp tục.
Kích hoạt Human in the loop
Chuyển công tắc Human in the loop sang BẬT ở đầu bảng Middleware. Tính năng này có sẵn trên cả nút Main Agent và Sub-Agent.


Cấu hình Quyền truy cập Công cụ theo MCP Server
Sau khi kích hoạt Human in the loop, mỗi MCP Server kết nối sẽ được hiển thị dưới dạng một phần có thể thu gọn. Bạn cấu hình các quy tắc phê duyệt cho từng công cụ trong mỗi MCP Server.
Thêm Quy tắc Quyền truy cập Công cụ
- Mở rộng phần MCP Server (ví dụ:"ddg-search").
- Nhấp vào danh sách thả xuống Select a tool để chọn một công cụ cụ thể từ MCP Server đó.
- Nhấp vào dropdown Select one or more permission để gán quyền cho phép cho công cụ đó.
- Nhấp vào nút checkmark để xác nhận, hoặc nút X để hủy.
- Công cụ bây giờ xuất hiện trong danh sách với các hành động quyền được gán.
Note: Nếu một MCP Server không có công cụ nào được cấu hình cho Human in the Loop, nó sẽ hiển thị "Không có công cụ nào được cấu hình cho MCP này."

Quyền của Công Cụ
Mỗi công cụ đã cấu hình hiển thị một hoặc nhiều nút hành động xác định cách mà AI Agent xử lý các yêu cầu thực thi công cụ. Một công cụ có thể được cấu hình với nhiều quyền cùng một lúc: Phê duyệt, Chỉnh sửa, Từ chối.
| Hành Động | Mô Tả |
|---|---|
| Approve | Cho phép thực thi công cụ tiếp tục. Người đánh giá xác nhận rằng cuộc gọi công cụ và các tham số của nó là chấp nhận được. |
| Edit | Cho phép người đánh giá sửa đổi các tham số cuộc gọi công cụ trước khi thực thi. Có sẵn khi các quyền có thể chỉnh sửa được cấu hình. |
| Reject | Chặn hoàn toàn việc thực thi công cụ. AI Agent được thông báo rằng cuộc gọi công cụ đã bị từ chối và phải tiếp tục mà không có nó. |
Quản Lý Quy Tắc Công Cụ
- Nhấp vào three-dot menu (⋮) bên cạnh một công cụ để truy cập các tùy chọn bổ sung (ví dụ: xóa quy tắc).
- Nhấp vào biểu tượng add trong tiêu đề MCP Server để thêm một quyền mới.
- Nhiều công cụ từ cùng một MCP Server có thể có các cấu hình quyền khác nhau.
Cách Human in the Loop Hoạt Động
Khi một AI Agent với Human in the Loop được kích hoạt được sử dụng trong cuộc trò chuyện NPO Workspace:

- AI Agent xử lý tin nhắn của người dùng và xác định rằng nó cần gọi một công cụ.
- Thay vì thực thi công cụ tự động, AI Agent hiển thị một thông điệp "Tool execution pending approval" trong cuộc trò chuyện.
- Thông điệp hiển thị:
- tool name đang được gọi (ví dụ: fetch_content, search, get_alerts_api_alert_v1...).
- arguments mà AI Agent dự định truyền
- Người đánh giá nhấp vào một trong các nút hành động có sẵn:
- Approve: Công cụ thực thi với các tham số được hiển thị.
- Edit: Người đánh giá sửa đổi các tham số, sau đó công cụ thực thi với các giá trị đã cập nhật.
- Reject: Lời gọi công cụ bị chặn; AI Agent tiếp tục mà không có kết quả của công cụ.
- Sau hành động, AI Agent tiếp tục xử lý với kết quả của công cụ (nếu được chấp thuận) hoặc không có nó (nếu bị từ chối).
Note: Nhiều lời gọi công cụ có thể xuất hiện trong một thông điệp chờ phê duyệt. Mỗi lời gọi công cụ trong thông điệp phải được xem xét. AI Agent sẽ không tiếp tục cho đến khi tất cả các công cụ đang chờ được giải quyết. Tất cả các máy chủ MCP được chọn cho AI Agent Chính và AI Agent Phụ sẽ được hiển thị dưới phần Human in the loop. Đảm bảo rằng MCP có các công cụ được cấu hình để chọn.
Ví dụ Cấu hình
| Máy chủ MCP | Công cụ | Hành động có sẵn | Trường hợp sử dụng |
|---|---|---|---|
| ZCP Alert Backend | get_alerts_api_alert_v1... | Chấp thuận, Chỉnh sửa, Từ chối | Xem xét các truy vấn cảnh báo trước khi thực thi |
| ddg-search | fetch_content | Chấp thuận, Từ chối | Kiểm soát các URL mà AI Agent có thể lấy |
| ddg-search | search | Chấp thuận, Chỉnh sửa, Từ chối | Xem xét và sửa đổi các truy vấn tìm kiếm |
Thực hành tốt nhất cho Human in the loop
- Bật Human in the loop cho các công cụ thực hiện write operations (tạo, cập nhật, xóa) hoặc truy cập sensitive data.
- Sử dụng quyền Edit cho các công cụ mà việc điều chỉnh tham số cải thiện độ chính xác (ví dụ: truy vấn tìm kiếm, bộ lọc API).
- Đối với read-only tools có rủi ro thấp, hãy xem xét việc để chúng không có Human in the loop để duy trì tốc độ giao tiếp.
- Cấu hình quy tắc công cụ theo từng Máy chủ MCP để áp dụng kiểm soát chi tiết - không phải tất cả các công cụ đều cần cùng một mức độ giám sát.
- Kiểm tra quy trình phê duyệt trong Playground trước khi xuất bản để đảm bảo trải nghiệm người dùng mượt mà.
- Human in the loop áp dụng cho cả nút Main Agent và Nút Sub Agent một cách độc lập - cấu hình từng nút Agent dựa trên việc sử dụng công cụ cụ thể của nó.
PII Thông tin nhận dạng cá nhân
Phần mềm trung gian PII tự động phát hiện và bảo vệ dữ liệu nhạy cảm chảy qua Agent AI của bạn. Khi được kích hoạt, nó quét các tin nhắn để tìm các loại dữ liệu cụ thể và áp dụng một hành động bảo vệ.

Kích hoạt PII
Chuyển công tắc PII sang BẬT để kích hoạt bảo vệ PII cho Agent.
Các loại PII được hỗ trợ
Mỗi loại PII có thể được bật hoặc tắt riêng lẻ:
| Loại PII | Mô tả |
|---|---|
| Địa chỉ email (ví dụ: user@example.com) | |
| Credit card | Số thẻ tín dụng/thẻ ghi nợ |
| IP | Địa chỉ IP (IPv4/IPv6) |
| MAC address | Địa chỉ MAC mạng |
| URL | URL và liên kết web |
Mỗi loại PII có một menu thả xuống hành động xác định cách dữ liệu được phát hiện được xử lý:
- Redact: Thay thế PII được phát hiện bằng một dấu chấm (ví dụ: [REDACTED]), loại bỏ giá trị nhạy cảm khỏi tin nhắn hoàn toàn.
Đối với mỗi loại PII, bạn có thể chọn nơi bảo vệ được áp dụng. Sử dụng các ô kiểm để chọn một hoặc nhiều:
- Input: Quét và bảo vệ PII trong các tin nhắn của người dùng gửi đến Agent.
- Output: Quét và bảo vệ PII trong các phản hồi của Agent gửi lại cho người dùng.
- Tool results: Quét và bảo vệ PII trong dữ liệu trả về từ các cuộc gọi công cụ/API.
| Loại PII | Hành động | Đầu vào | Đầu ra | Kết quả công cụ | Trường hợp sử dụng |
|---|---|---|---|---|---|
| Xóa | Bỏ chọn | Chọn | Chọn | Ngăn chặn Agent rò rỉ email trong phản hồi | |
| Thẻ tín dụng | Xóa | Bỏ chọn | Chọn | Bỏ chọn | Chặn số thẻ trong đầu ra chỉ |
| IP | Xóa | Bỏ chọn | Chọn | Bỏ chọn | Ẩn địa chỉ IP khỏi phản hồi |
| Địa chỉ MAC | Xóa | Bỏ chọn | Chọn | Bỏ chọn | Ẩn địa chỉ MAC khỏi phản hồi |
| URL | Xóa | Chọn | Bỏ chọn | Bỏ chọn | Xóa URL khỏi đầu vào của người dùng trước khi xử lý |
- Bật bảo vệ Output cho các loại nhạy cảm (Email, Thẻ tín dụng) để ngăn chặn rò rỉ dữ liệu không mong muốn.
- Bật Tool results khi các API backend trả về dữ liệu người dùng không nên được công khai.
- Bật Input khi bạn muốn ẩn danh dữ liệu do người dùng cung cấp trước khi nó đến LLM.
- Xem lại cài đặt PII khi kết nối các công cụ MCP mới có thể trả về thông tin nhạy cảm.
Summarization
Middleware Summarization (dựa trên LangChain) tự động cô đọng lịch sử cuộc trò chuyện để quản lý giới hạn cửa sổ ngữ cảnh. Khi cuộc trò chuyện phát triển vượt quá ngưỡng đã cấu hình, nó kích hoạt Summarization để giữ ngữ cảnh trong giới hạn trong khi vẫn bảo tồn thông tin quan trọng.
Bật Summarization
Chuyển công tắc Summarization sang BẬT để kích hoạt Summarization cuộc trò chuyện.
Cấu hình LLM
Summarization yêu cầu LLM riêng của nó để tạo ra các Summarization. Cấu hình các trường bắt buộc sau:
Provider(Bắt buộc)
- Nhà cung cấp LLM được sử dụng để tạo ra các Summarization.
- Ví dụ: OpenAI
- Chọn từ danh sách thả xuống của các nhà cung cấp đã cấu hình.
Default model(Bắt buộc)
- Mô hình cụ thể được sử dụng cho Summarization.
- Ví dụ: GPT 4o
- Chọn một mô hình cân bằng giữa chất lượng và chi phí cho các tác vụ Summarization.
API Key(Bắt buộc)
- Khóa API được sử dụng để xác thực với nhà cung cấp LLM.
- Chọn từ các khóa API đã được cấu hình sẵn trong hệ thống của bạn.
Kích hoạt
Phần Trigger xác định các điều kiện khởi động quá trình Summarization. Khi bất kỳ điều kiện nào được kích hoạt, quá trình Summarization sẽ chạy. Bạn có thể kích hoạt nhiều điều kiện cùng một lúc - quá trình Summarization sẽ được kích hoạt khi điều kiện any được thỏa mãn.
Messages- Kích hoạt Summarization khi cuộc trò chuyện đạt đến một số lượng tin nhắn nhất định.
- Ví dụ: 50 - quá trình Summarization chạy sau 50 tin nhắn trong cuộc trò chuyện.
- Nhấn x để xóa giá trị.
- Kích hoạt Summarization khi cuộc trò chuyện đạt đến một số lượng token nhất định.
- Nhập số lượng token tối đa trước khi quá trình Summarization được kích hoạt.
- Hữu ích để giữ trong giới hạn cửa sổ ngữ cảnh của LLM.
- Kích hoạt Summarization khi cuộc trò chuyện sử dụng một tỷ lệ phần trăm nhất định của cửa sổ ngữ cảnh.
- Có thể điều chỉnh qua thanh trượt (0-100%).
- Hữu ích cho việc quản lý ngữ cảnh động tương ứng với khả năng của mô hình.
Giữ lại
Phần Keep xác định mức độ lịch sử cuộc trò chuyện được giữ lại sau khi quá trình Summarization chạy. Chọn một trong ba chiến lược:
Messages (Keep by message count)- Giữ lại một số lượng cố định các tin nhắn gần đây nhất sau khi Summarization.
- Messages limit: Số lượng tin nhắn gần đây cần bảo tồn.
- Ví dụ: 30 - sau khi Summarization, 30 tin nhắn gần đây nhất được giữ nguyên, và các tin nhắn cũ hơn sẽ được thay thế bằng Summarization.
- Giữ lại các tin nhắn gần đây lên đến một ngân sách token nhất định.
- Tokens limit: Số lượng token tối đa để bảo tồn từ lịch sử gần đây.
- Hữu ích khi bạn cần kiểm soát chính xác việc sử dụng cửa sổ ngữ cảnh.
- Giữ lại một phần trăm của tổng cuộc trò chuyện dưới dạng tin nhắn gần đây.
- Fraction limit: Có thể điều chỉnh qua thanh trượt (ví dụ: 12%).
- Phần còn lại được Summarization.
- Hữu ích cho việc quản lý ngữ cảnh tỷ lệ thuận bất kể độ dài cuộc trò chuyện.
Cách Summarization hoạt động (LangChain-based)
- Agent theo dõi cuộc trò chuyện theo các điều kiện Trigger đã cấu hình.
- Khi ngưỡng kích hoạt được đạt, LLM Summarization sẽ tạo ra một Summarization ngắn gọn về các tin nhắn cũ.
- Hệ thống giữ lại các tin nhắn gần đây theo chiến lược Keep.
- Summarization thay thế lịch sử cuộc trò chuyện cũ, giảm kích thước ngữ cảnh.
- Các tương tác trong tương lai sử dụng Summarization + tin nhắn gần đây làm ngữ cảnh.
| Tình huống | Kích hoạt | Chiến lược giữ lại | Khuyến nghị |
|---|---|---|---|
| Cuộc trò chuyện ngắn, nhạy cảm về chi phí | Tin nhắn: 30 | Tin nhắn: 10 | Đơn giản và dễ đoán |
| Cuộc trò chuyện dài, tập trung vào chất lượng | Token: gần giới hạn mô hình | Tỷ lệ: 20% | Tối đa hóa việc sử dụng ngữ cảnh |
| Cuộc trò chuyện có độ dài biến đổi | Tỷ lệ: 80% | Tin nhắn: 20 | Thích ứng với độ dài cuộc trò chuyện |
| Ngân sách token nghiêm ngặt | Token: 4000 | Token: 1000 | Kiểm soát token chính xác |
- Sử dụng một mô hình nhanh, tiết kiệm chi phí (ví dụ: GPT 4o) cho việc Summarization vì nó chạy thường xuyên.
- Đặt ngưỡng Trigger dưới giới hạn ngữ cảnh thực tế của mô hình của bạn để cho phép không gian cho chính Summarization.
- Kích hoạt nhiều loại kích hoạt để đảm bảo an toàn—nếu một điều kiện bị cấu hình sai, điều kiện khác sẽ phát hiện.
- Thử nghiệm với các cuộc trò chuyện thực tế để xác minh rằng ngữ cảnh quan trọng được giữ lại sau khi Summarization.
- Đối với các Agent tác vụ nhiều lượt, ưu tiên chiến lược giữ lại Messages để đảm bảo các hướng dẫn gần đây được giữ nguyên.
- Đối với các cuộc trò chuyện nặng về kiến thức, ưu tiên Tokens hoặc Fraction để giữ lại nhiều chi tiết hơn.