Tài liệu Kỹ thuật Dành Cho Đối Tác Tích Hợp
Hướng dẫn kết nối với hệ thống AI Agent Core thông qua các giao diện lập trình ứng dụng (API) và widget công khai đã được chuẩn hoá.
Hệ thống phân tách nghiêm ngặt giữa API Quản trị nội bộ và API Tích hợp Public dành cho hệ thống bên ngoài:
| Phương thức tích hợp | Giao thức & Định dạng | Cơ chế xác thực | Trường hợp áp dụng |
|---|---|---|---|
1. Core Runtime APIPOST /api/v1/agent/process |
REST JSON hoặc Server-Sent Events (SSE) streaming thời gian thực | API Key của App (ak_…) truyền qua Header Authorization: Bearer |
Hệ thống Backend đối tác, Mobile App tự vẽ UI, POS, CRM, ERP, hoặc chatbot server-to-server. |
2. Voicebox Widgetvoicebox.js / Web Component |
Client-side Script, Shadow DOM, Iframe, hoặc Mobile WebView | Public Key (vb_…) + Server HMAC signature (user_hash) |
Trang web E-commerce, Cổng dịch vụ khách hàng, Landing page muốn nhúng trợ lý AI trong 1 phút. |
Quản trị viên cấp cho bạn ak_xxx (cho Core API) hoặc khoá công khai vb_xxx + identity_secret (cho Voicebox).
Dùng các tab Live Sandbox trên cổng này để test trực tiếp các câu prompt, luồng SSE streaming, hoặc tương tác widget.
Copy code generator có sẵn (cURL, TypeScript, Python, Go, HTML) và dán trực tiếp vào dự án của bạn.
Tích hợp Core Runtime API
Điểm vào duy nhất cho ứng dụng đối tác muốn gọi trực tiếp tới lõi xử lý AI Agent qua REST hoặc SSE.
/api/v1/agent/process
Xử lý một lượt hội thoại đa phương thức (văn bản, giọng nói, sự kiện UI), tự động điều phối qua Pipeline 9 pha, phân loại ý định, chạy Flow Engine hoặc gọi Domain MCP tool.
curl -X POST http://localhost:8080/api/v1/agent/process \
-H "Authorization: Bearer ak_YOUR_APP_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{
"input": {
"type": "text",
"text": "Tìm giúp tôi 2 chiếc áo sơ mi nam trắng size L"
},
"user": {
"ref": "kh001",
"name": "Nguyễn Văn A"
}
}'
Core API trả về phản hồi theo hợp đồng chuẩn nhất quán cho cả văn bản và Server-Driven UI (SDUI):
{
"session_id": "0194bc02-1234-7000-8000-000000000001",
"agent": "sales_assistant",
"status": "completed",
"reply": {
"text": "Dạ em tìm thấy 2 mẫu áo sơ mi nam phù hợp với bạn ạ:",
"ui": [
{
"type": "product_card",
"data": {
"id": "SP001",
"name": "Áo sơ mi Oxford Classic",
"price": 350000,
"image": "https://example.com/shirt.jpg"
}
}
]
},
"degraded": false
}
Tích hợp Voicebox Chatbox Widget
Giải pháp nhúng bong bóng chat và trợ lý ảo thông minh vào website, web app hoặc ứng dụng di động trong 1 dòng mã.
Dán trước thẻ đóng </body> trên website của bạn. Widget chạy cô lập hoàn toàn bên trong Shadow DOM, không làm vỡ CSS của trang:
<!-- Dán vào cuối thẻ body --> <script src="http://localhost:8081/widget/v1/voicebox.js" data-key="vb_tkvWkbyvNs2-yH7oMYbxECLD" async></script>
Dành cho các trang hỗ trợ chuyên dụng, trang liên hệ, hoặc dashboard nơi bạn muốn khung chat nằm cố định trong layout:
<script src="http://localhost:8081/widget/v1/voicebox.js" async></script> <voicebox-chat key="vb_tkvWkbyvNs2-yH7oMYbxECLD" mode="inline" style="display:block;height:600px"></voicebox-chat>
Sử dụng SDK để mở/đóng hộp thoại, gửi tin nhắn tự động, hoặc lắng nghe các sự kiện nghiệp vụ (handoff chuyển nhân viên):
const vb = Voicebox.init({
key: 'vb_tkvWkbyvNs2-yH7oMYbxECLD',
mode: 'floating',
theme: 'auto', // 'light' | 'dark' | 'auto'
user: {
ref: 'kh001',
name: 'Nguyễn Văn A',
hash: '<64 ký tự hex HMAC_SHA256(identity_secret, ref) — tính ở SERVER của bạn>'
}
});
// Lắng nghe sự kiện
vb.on('ready', () => console.log('Voicebox sẵn sàng'));
vb.on('reply', (r) => console.log('Agent vừa trả lời:', r.reply.text));
vb.on('handoff', () => alert('Đang chuyển hướng sang nhân viên CSKH'));
// Thao tác điều khiển
vb.open();
vb.send('Tư vấn sản phẩm khuyến mãi hôm nay');
Xác Thực Danh Tính Người Dùng (HMAC-SHA256)
Cơ chế chống giả mạo danh tính người dùng cuối: Server của đối tác ký định danh user.ref bằng identity_secret.
Đối tác không bao giờ để lộ identity_secret ở phía client (trình duyệt hoặc app). Thay vào đó, backend của bạn tính giá trị băm:
user_hash = HMAC-SHA256(identity_secret, user.ref).hexdigest()
import { createHmac } from 'node:crypto';
function getUserHash(userId, identitySecret) {
return createHmac('sha256', identitySecret).update(userId).digest('hex');
}
Thử nghiệm tính toán mã băm danh tính trực tiếp để so khớp với mã nguồn backend của bạn:
Live Sandbox: Trải Nghiệm Core API Tự Động
Môi trường thử nghiệm tương tác gửi lệnh trực tiếp tới Core API, nhận luồng phản hồi SSE real-time hoặc JSON.
Live Sandbox: Trải Nghiệm Voicebox Widget
Thử nghiệm widget trực tiếp, điều chỉnh giao diện màu sắc, chuyển đổi chế độ hiển thị và tự động sinh mã nhúng.
Bạn có thể trò chuyện trực tiếp với trợ lý AI ngay tại đây:
Bấm vào bong bóng để bắt đầu trò chuyện trực tiếp!
<script src="http://localhost:8081/widget/v1/voicebox.js" data-key="vb_tkvWkbyvNs2-yH7oMYbxECLD" async></script>
Đặc tả Kỹ thuật OpenAPI Đối Tác
Tài liệu chuẩn OpenAPI 3.1 cho các endpoint công khai để tích hợp tự động qua các công cụ sinh client (Swagger, Postman, Orval, OpenAPI Generator).
| Phương thức | Đường dẫn Endpoint | Mục đích | Quyền / Token |
|---|---|---|---|
| POST | /api/v1/agent/process |
Xử lý một lượt hội thoại văn bản/giọng nói/sự kiện (JSON hoặc SSE) | App API Key (ak_…) |
| GET | /v1/widgets/{key}/config |
Lấy cấu hình hiển thị công khai của widget | Không cần (Public Key vb_…) |
| POST | /v1/widgets/{key}/sessions |
Khởi tạo phiên widget & xác minh danh tính người dùng (HMAC) | Không cần (Public Key vb_…) |
| POST | /v1/widgets/{key}/chat |
Gửi lượt hội thoại từ widget tới agent | Session Token (2 giờ) |