Hầu hết các bài viết về AI trong doanh nghiệp đều dừng ở mức demo: chatbot trả lời câu hỏi, tóm tắt email, viết nội dung marketing. Những thứ đó hữu ích, nhưng không chạm tới phần khó nhất — kết nối AI vào hệ thống thực sự đang vận hành: phần mềm kế toán, hóa đơn điện tử, quản lý kho, ERP.
Đây là bài viết về cách chúng tôi làm điều đó — không phải lý thuyết, mà là kinh nghiệm từ hệ thống đang chạy production hàng ngày, phục vụ doanh nghiệp thực tế tại Việt Nam.
Vấn đề: AI không nói chuyện được với phần mềm Việt Nam
Phần mềm kế toán, hóa đơn điện tử, ERP tại Việt Nam có đặc điểm chung: giao diện web phức tạp, API không được thiết kế cho tích hợp bên ngoài (nếu có API), và thường yêu cầu xác thực nhiều lớp. Khi một doanh nghiệp muốn dùng AI để tra cứu tồn kho, kiểm tra công nợ, hoặc tạo hóa đơn — không có cách nào đơn giản.
Các giải pháp AI thương mại (ChatGPT, Claude, Gemini) mạnh về xử lý ngôn ngữ, phân tích dữ liệu, viết code. Nhưng chúng không thể tự kết nối vào hệ thống nội bộ của doanh nghiệp. Cần một lớp trung gian — một "cầu nối" — để AI có thể đọc và ghi dữ liệu vào các phần mềm đang dùng.
Giải pháp: MCP — giao thức chuẩn để AI tương tác với hệ thống
Model Context Protocol (MCP) là giao thức mở do Anthropic phát triển, cho phép trợ lý AI gọi "tools" (công cụ) để tương tác với hệ thống bên ngoài. Thay vì copy-paste dữ liệu vào AI, bạn cho AI quyền truy cập trực tiếp — có kiểm soát — vào dữ liệu thực.
Chúng tôi xây dựng một hạ tầng MCP server kết nối với ba loại phần mềm phổ biến trong doanh nghiệp Việt Nam:
- ERP (quản lý doanh nghiệp) — tra cứu đơn hàng, tồn kho, công nợ, báo cáo tài chính. AI có thể truy vấn dữ liệu trực tiếp thay vì phải mở ERP lên tìm kiếm.
- Hóa đơn điện tử — tra cứu hóa đơn đã phát hành, kiểm tra trạng thái, tạo bản nháp. Hỗ trợ nhiều loại hóa đơn: GTGT, bán hàng, máy tính tiền, vé điện tử.
- Phần mềm kế toán — tra cứu danh mục khách hàng, nhà cung cấp, vật tư hàng hóa, chứng từ kế toán. AI có thể tổng hợp số liệu từ nhiều module mà không cần mở từng màn hình.
Kiến trúc: một server, nhiều dịch vụ
Thay vì xây riêng một MCP server cho từng phần mềm, chúng tôi thiết kế kiến trúc multi-service: một HTTP server duy nhất phục vụ nhiều dịch vụ MCP, mỗi dịch vụ mount tại một path riêng.
Kiến trúc này cho phép:
- Deploy một lần, dùng cho nhiều hệ thống. Không cần chạy nhiều process hay quản lý nhiều server riêng biệt.
- Xác thực tập trung. Người dùng đăng nhập một lần, truy cập được tất cả dịch vụ mà họ có quyền.
- Mở rộng dễ dàng. Thêm một dịch vụ mới chỉ cần viết thêm một module và mount vào path mới.
Stack kỹ thuật tối giản: Bun (TypeScript runtime), hai dependency duy nhất (@modelcontextprotocol/sdk và zod), SQLite cho audit trail và lưu trữ phiên. Không framework HTTP nặng, không ORM, không Redis — đơn giản nhất có thể cho một service cần chạy ổn định 24/7.
Thách thức thực tế
Phần mềm không có API công khai
Nhiều phần mềm Việt Nam không cung cấp API chính thức cho bên thứ ba. Giao diện web là cách tương tác duy nhất. Chúng tôi giải quyết bằng cách phân tích giao thức HTTP mà webapp sử dụng, sau đó tái tạo lại các request đó từ phía server.
Điều này đòi hỏi:
- Phân tích network traffic để hiểu API nội bộ
- Xử lý xác thực phức tạp (cookies, CSRF tokens, custom headers)
- Một Chrome Extension để capture phiên đăng nhập từ trình duyệt
- Lưu trữ và rotate session một cách tự động
Không lý tưởng, nhưng thực tế. Khi phần mềm không thiết kế cho tích hợp, đây là cách duy nhất để AI có thể truy cập dữ liệu.
Dữ liệu nhạy cảm và kiểm soát truy cập
Dữ liệu kế toán, hóa đơn, thông tin khách hàng — đều là dữ liệu nhạy cảm. Không thể để AI truy cập thoải mái mà không có kiểm soát.
Mọi lệnh gọi tool đều được ghi log: ai gọi, gọi tool gì, tham số gì, mất bao lâu, có lỗi không. Người quản trị có thể xem lại toàn bộ lịch sử tương tác của AI với hệ thống.
Xác thực sử dụng credential thực của người dùng — không có "admin key" chung. AI chỉ truy cập được dữ liệu mà người dùng đó có quyền truy cập trên hệ thống gốc.
Phiên đăng nhập hết hạn
Webapp session thường hết hạn sau vài giờ. Hệ thống tự động phát hiện khi session hết hạn (HTTP 401 hoặc redirect) và thông báo cho người dùng đăng nhập lại qua extension. Không có cách tự động gia hạn — đây là giới hạn kỹ thuật khi làm việc với webapp không có refresh token.
Kết quả thực tế
Hệ thống đang chạy production, phục vụ doanh nghiệp thực tế:
- Tra cứu tồn kho bằng ngôn ngữ tự nhiên. "Sản phẩm nào tồn kho nhiều nhất?" — AI truy vấn ERP và trả lời trực tiếp, có sắp xếp và phân trang.
- Kiểm tra công nợ khách hàng. "Khách hàng A còn nợ bao nhiêu?" — AI tra cứu từ phần mềm kế toán, tổng hợp từ nhiều chứng từ.
- Tạo bản nháp hóa đơn. AI có thể tạo draft hóa đơn dựa trên thông tin từ ERP — nhưng luôn cần người xác nhận trước khi phát hành chính thức.
- Báo cáo tổng hợp. Thay vì mở 5 màn hình khác nhau, AI tổng hợp dữ liệu từ nhiều nguồn thành một báo cáo gọn gàng.
Bài học
Bắt đầu từ read-only
Đừng cho AI quyền ghi dữ liệu ngay. Bắt đầu với tra cứu — đọc tồn kho, xem hóa đơn, kiểm tra công nợ. Khi đã tin tưởng hệ thống, mới mở rộng sang tạo draft, cập nhật dữ liệu. Hóa đơn điện tử là ví dụ: AI có thể tạo bản nháp, nhưng phát hành chính thức luôn cần người xác nhận.
Audit trail không phải optional
Khi AI tương tác với dữ liệu tài chính, mọi hành động phải được ghi log. Không chỉ để debug — mà vì khi có vấn đề, bạn cần biết chính xác AI đã làm gì, khi nào, với dữ liệu gì.
Minimal dependencies
Hệ thống production cần ổn định. Càng ít dependency, càng ít điểm hỏng. Toàn bộ server chỉ dùng hai thư viện ngoài — phần còn lại là built-in của runtime. Không có "dependency hell" khi cần cập nhật.
Phần mềm Việt Nam cần cách tiếp cận riêng
Không thể áp dụng mô hình tích hợp của phần mềm phương Tây (REST API rõ ràng, OAuth, webhook). Phần mềm Việt Nam thường có API nội bộ phức tạp, xác thực nhiều lớp, và tài liệu hạn chế. Chấp nhận thực tế đó và xây dựng giải pháp phù hợp — dù không "đẹp" về mặt kỹ thuật.
Tiếp theo
MCP đang phát triển nhanh — nhiều phần mềm sẽ hỗ trợ giao thức này trực tiếp. Nhưng với phần mềm Việt Nam, con đường tích hợp vẫn cần người hiểu cả hai phía: AI platform và business system. ERPFit đang ở vị trí đó — và chúng tôi tiếp tục mở rộng số lượng hệ thống mà AI có thể tương tác.
Nếu doanh nghiệp bạn đang dùng phần mềm kế toán, ERP, hoặc hóa đơn điện tử và muốn AI truy cập được dữ liệu thực — đây là loại tích hợp chúng tôi xây dựng hàng ngày.