Quản lý hỏi “doanh thu vùng miền tháng 3 thế nào” phải chờ nhân viên mở file, viết công thức, vẽ biểu đồ — lặp đi lặp lại mỗi tuần.
Không tự nhắc, không tổng hợp được. Cấp trên không biết ai đang nợ việc gì, hạn chót nào sắp trễ.
Vì không kiểm tra trước. Mỗi lần đặt họp là vài lần xếp lại — chưa kể không tra được chính sách giờ làm, ngày nghỉ.
Quy trình, chính sách nhân sự nằm trên ổ đĩa chia sẻ. Nhân viên mới phải hỏi lại từ đầu — kiến thức không tích lũy.
Nhân viên chỉ cần nhắn tin. Hệ thống tự điều hướng tới đúng chuyên gia, chạy vòng lặp gọi công cụ, trả kết quả — file Excel, ảnh biểu đồ PNG, công việc được tạo, lịch họp đã đặt.
get_meeting_minutes → bóc tách → tạo loạt công việc. Phối hợp giữa các agent là năng lực có sẵn, không phải việc tương lai.
query_multi_datasets.cần làm → đang làm → xong | hủy. Cập nhật qua chat hoặc nút bấm ngay trong tin nhắn.Khi người dùng mới gõ /start, agent này trả về danh sách năng lực hệ thống, điều hướng yêu cầu tới đúng chuyên gia. Nguyên tắc: không có công cụ chuyên môn — chỉ chuyển tiếp, không bao giờ giả vờ làm thay.
Trang quản trị dành cho phụ trách IT / vận hành. Mọi thao tác đều có nhật ký có cấu trúc; sự kiện hội thoại chỉ-thêm, có thể phát lại để gỡ lỗi hoặc soát xét.
Xem danh sách: agent · lịch tự động (kèm trình xem lần chạy) · công cụ tùy biến (kèm chi tiết). Trang giới thiệu công khai tại / cho người dùng cuối tự tìm hiểu.
Slide tĩnh chỉ kể được câu chuyện. Năm kịch bản tiếp theo cho thấy bot đang chạy thật hôm nay.
idempotency_key.So khớp cosine với từ khóa định tuyến của mỗi agent. Độ tin > 0,85 → vào thẳng (0 lời gọi LLM). Hội thoại nhiều lượt: bỏ qua router, tiếp tục agent đang hoạt động.
LLM quyết định công cụ nào → bộ chạy thực thi → kết quả đưa lại LLM → lặp đến khi LLM trả lời bằng văn bản hoặc gặp công cụ đặc biệt (chuyển tiếp / xác nhận). Chốt chặn: max_iterations chống lặp vô hạn.
Trạng thái dựng từ nhật ký: build_state_from_events(). Chụp ảnh trạng thái mỗi 20 sự kiện để dựng lại nhanh. Phục hồi sau sự cố: phát lại từ ảnh chụp gần nhất.
Bám mẫu của Claude Code, OpenAI Agents SDK, DeepSheet — đã được ngành kiểm chứng. LangGraph/LangChain dễ rời rạc, khó gỡ lỗi. Phần code tự viết cho toàn vòng lặp < 800 dòng.
| Loại | Ai cấu hình | Mô tả | Ví dụ |
|---|---|---|---|
| FUNCTION | Lập trình viên (code) | Hàm Python tích hợp sẵn. Chạy trong tiến trình worker, hoặc tách riêng qua ProcessPoolExecutor nếu nặng CPU. |
create_chart, query_data, smart_excel_preprocessor |
| API_CALL | Admin (giao diện) | Gọi HTTP — admin cấu hình URL, header, mẫu body trong bảng quản trị. Bí mật tham chiếu qua chỗ thay {{SECRET.X}}, có chặn SSRF. |
check_inventory(sku) → REST của ERP |
| DB_QUERY | Admin (giao diện) | Mẫu SQL có tham số. Engine bất đồng bộ, gắn tham số an toàn, ép chỉ-đọc, kiểm tra chống injection. | get_user_tasks(user_id) → SELECT… |
| COMPOSITE | Admin (giao diện) | Chuỗi công cụ chạy tuần tự, output bước trước = input bước sau. Cho phép admin tự dựng workflow phức tạp mà không code. | lấy doanh số → phân tích → email báo cáo |
| MCP | Admin (giao diện) | Kết nối MCP server chuẩn Anthropic — Jira, Slack, GitHub, Confluence, MCP nội bộ. Tự khám phá công cụ từ server, có allowlist chọn công cụ nào được bật. | jira.logwork(ticket, hours) |
{{SECRET.X}}, có chặn SSRF. Nếu hệ thống có sẵn MCP server, chỉ cần bật MCP executor. Tạo agent mới = soạn system prompt + chọn công cụ từ pool chung.
Mã hóa AES-256-GCM trên cột Secret.encrypted_value. Khóa mã hóa chỉ nằm trong biến môi trường của module secret_resolver — không nằm trong container ứng dụng.
Agent dùng DB user riêng không có quyền SELECT trên bảng Secret. Chỗ thay {{SECRET.X}} chỉ được điền ngay-trước-khi-chạy. Tương đương mô hình “bí mật không bao giờ chạm tới sandbox” của Anthropic Managed Agents.
asyncio.wait_for(timeout=30s) cho mọi lời gọi công cụ. Việc nặng CPU (pandas, openpyxl) → chạy trong ProcessPoolExecutor riêng — cô lập khỏi vòng lặp sự kiện bất đồng bộ, sự cố không kéo theo agent.
Chỉ admin được cấu hình MCP, allowlist công cụ (không bật hết tự động), ghi nhật ký toàn bộ yêu cầu để soát. Cisco đã cảnh báo về plugin/skill bên thứ ba → chặn rò rỉ dữ liệu + prompt injection ngay từ thiết kế.
API key băm SHA-256. Mọi bảng (trừ Tenant) có khóa ngoại tenant_id. Tầng truy vấn tự ép WHERE tenant_id = ? — lọc theo dòng ở mức SQLAlchemy.
Dựa trên Redis, theo từng tenant: số yêu cầu/giây, số việc chạy song song. Hạn mức token theo tháng — chặn gọi khi TenantUsage.sum >= quota. Giới hạn số agent mỗi tenant.
Gọi ngược ký HMAC-SHA256. Backend xác thực trước khi xử lý. tool_callback_url + callback_url phải nằm trong allowlist cùng domain — chống SSRF. Idempotency bằng Redis SET NX.
v2: dấu vết OTel cho mỗi AgentRunner + mỗi công cụ, xuất sang Jaeger/Tempo. Số liệu Prometheus khi quy mô vận hành vượt > 500 người dùng.
| Tầng | Công nghệ | Lý do |
|---|---|---|
| Bot Telegram | python-telegram-bot · webhook | Có sẵn, mọi nhân viên đã có app, không phải cài thêm. |
| API Backend | FastAPI (bất đồng bộ) | Thông lượng cao, bất đồng bộ tự nhiên, tự sinh đặc tả OpenAPI. |
| Thực thi agent | Vòng lặp gọi công cụ bằng Python thuần | Bám mẫu của Claude Code, OpenAI Agents SDK. Không LangGraph/LangChain — dễ gỡ lỗi, < 800 dòng code tự viết. |
| Cổng LLM | OpenRouter (tương thích OpenAI) | Nhiều model (Claude, GPT, Gemini, GLM). Chuyển sang on-prem (vLLM, Ollama) trong vài giờ. |
| Cơ sở dữ liệu | PostgreSQL 16 + pgvector | Quan hệ + tìm kiếm vector trong 1 DB. Không cần Pinecone/Weaviate riêng. |
| Lưu dữ liệu tải lên | SQLite mỗi file (chỉ-đọc) | Cô lập hoàn toàn dữ liệu giữa người dùng. Co giãn được với file lớn — không nạp toàn bộ Pandas vào RAM. |
| Cache & hàng đợi | Redis 7 + ARQ | Khóa hội thoại, giới hạn nhịp, hàng đợi việc. ARQ bất đồng bộ tự nhiên (≠ Celery đồng bộ). |
| Giao diện quản trị | Next.js · shadcn/ui · Tailwind | Thành phần dựng sẵn, chế độ tối tự nhiên, hỗ trợ truy cập tốt. |
| Chạy trong sandbox | Container Docker · matplotlib | Vẽ biểu đồ cô lập, không rò rỉ hệ thống tệp của máy chủ. |
| Triển khai | Docker Compose | Tự vận hành trên 1 máy chủ. Co giãn ngang qua bản sao. Chưa cần Kubernetes ở quy mô 50–200 người. |
Hoạt động đầu-cuối qua Telegram + Bảng quản trị tại :3000. Đã pilot nội bộ qua sử dụng thực tế. Docker Compose ổn định, kiểm tra sức khỏe đều đạt, gọi ngược giữa 2 service có HMAC + idempotency.
Phase 7 (form thêm/sửa trên Bảng quản trị) và Phase 8 (theo dõi hạn mức theo tenant) còn vài hạng mục để sau. Toàn bộ liệt kê chi tiết trong docs/STATUS.md — nguồn thông tin duy nhất, không có việc nào bị giấu.
| OpenClaw / AI desktop | ChatGPT Enterprise / Copilot | Enterprise Assistant | |
|---|---|---|---|
| Đối tượng | 1 cá nhân, máy cục bộ | Cá nhân + nhóm (xoay quanh chat) | Quy trình nhóm nhiều người tham gia — giao việc cấp trên ↔ cấp dưới, hạn chót cả nhóm, log giờ làm. |
| Kết quả trả ra | Văn bản chat | Văn bản chat + vài định dạng file | File Excel có dữ liệu + biểu đồ, ảnh PNG, email định dạng chuyên nghiệp, công việc Jira tự log giờ. |
| Triển khai | Cục bộ mỗi máy, dữ liệu phân tán | Cloud OpenAI / Microsoft, không kiểm soát | Tự vận hành bằng Docker Compose, DB nằm trong server công ty, admin kiểm soát hoàn toàn. |
| Bảo mật phần mở rộng | Cộng đồng, không kiểm duyệt — Cisco cảnh báo rò rỉ dữ liệu + prompt injection | Chợ plugin của OpenAI/Microsoft | Chỉ admin cấu hình công cụ + allowlist. Bí mật không bao giờ vào tiến trình agent. Mọi yêu cầu MCP đều ghi nhật ký. |
| Dữ liệu | Chat tự do cục bộ, khó tổng hợp | Cloud OpenAI — không xuất ra dạng có cấu trúc được | Dữ liệu có cấu trúc trong DB doanh nghiệp — sẵn sàng phân tích và finetune model riêng về dài hạn. |
| Mở rộng | Phần mở rộng cộng đồng, admin không kiểm soát | Chợ plugin của OpenAI/Microsoft | Bất kỳ REST API + MCP server đều thêm được qua Admin UI, không cần viết thêm code. |
Công việc: ai giao, ai làm, hạn chót, trạng thái, thời gian hoàn thành thực tế. Cuộc họp: ai tham gia, bao lâu, quyết định gì. Log giờ làm: ai làm gì, mất bao lâu.
Agent nào được dùng nhiều nhất, công cụ nào hay lỗi, người dùng quay lại ra sao, hạn chót thường trễ ở phòng nào, quy trình nào nghẽn. Thông tin cho ban lãnh đạo.
Model tự phân việc dựa trên lịch sử. Model dự đoán hạn chót thực tế dựa trên việc tương tự. Model gợi ý quy trình tối ưu. Đây là lợi thế cạnh tranh mà SaaS không sao chép được.
Làm việc với từng phòng ban: họ làm gì hằng ngày, nghẽn ở đâu, dữ liệu nằm đâu → đối chiếu điểm nghẽn ↔ agent / công cụ đã có hoặc cần thêm.
Pilot 1 phòng / 1 use case trong 2–4 tuần (vd phòng kinh doanh dùng Phân tích Excel + Quản lý công việc). Phạm vi nhỏ, rủi ro thấp, phản hồi nhanh.
Qua sử dụng thực tế + khảo sát ngắn + nhật ký sự kiện ở Bảng quản trị: công cụ nào hay lỗi, câu hỏi nào agent chưa trả lời được, chỗ nào vướng UX.
Chỉnh system prompt của agent, thêm Dataset Profile, thêm công cụ tùy biến (API_CALL / DB_QUERY / MCP) qua Admin UI, vá UX, đo lại độ chính xác.
Phòng ban đề xuất use case mới (onboarding nhân sự, kế toán nối Misa/FAST, dự án nối Jira…) → soạn agent / công cụ mới từ pool chung, hầu hết không cần code. Rồi lặp lại với phòng ban tiếp theo.
Mọi câu hỏi sâu hơn về kiến trúc, bảo mật, tích hợp, lộ trình — sẵn sàng đào sâu hôm nay hoặc trao đổi tiếp qua tài liệu nội bộ.