Hầu hết bài viết về AI trong doanh nghiệp dừng lại ở mức demo. Chatbot trả lời câu hỏi, tóm tắt email, viết nội dung marketing. Những việc đó hữu ích nhưng chưa chạm tới phần khó nhất: kết nối AI vào hệ thống đang thật sự vận hành. Đó là phần mềm kế toán, hóa đơn điện tử, quản lý kho và ERP.
Bài viết này nói về cách chúng tôi làm điều đó. Không phải lý thuyết. Đây là kinh nghiệm từ một hệ thống đang chạy thật (production, tức môi trường vận hành thực tế) mỗi ngày, phục vụ doanh nghiệp Việt Nam. Nếu bạn quan tâm tới góc nhìn vận hành rộng hơn, chúng tôi cũng đã viết về bộ công cụ mã nguồn mở dùng để vận hành công ty.
Vì sao AI khó nói chuyện được với phần mềm Việt Nam?
Lý do chính là phần mềm Việt Nam hiếm khi được thiết kế để cho hệ thống bên ngoài kết nối vào. Theo quan sát của chúng tôi qua nhiều dự án (dữ liệu nội bộ ERPFit), phần mềm kế toán, hóa đơn điện tử và ERP tại Việt Nam đều có chung ba đặc điểm: giao diện web phức tạp, API hạn chế hoặc không có, và 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, họ thường không có đường nào đơn giản. Các trợ lý AI thương mại như ChatGPT, Claude hay Gemini rất mạnh về ngôn ngữ, phân tích và viết code. Nhưng chúng không tự kết nối được vào hệ thống nội bộ. Doanh nghiệp cần một lớp trung gian, một cầu nối, để AI đọc và ghi dữ liệu vào phần mềm đang dùng.
MCP là gì và vì sao nó giải quyết được vấn đề này?
MCP là giao thức chuẩn để AI gọi công cụ và tương tác trực tiếp với hệ thống bên ngoài. 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ụ) để làm việc với hệ thống bên ngoài.
Thay vì copy-paste dữ liệu vào AI, bạn cấp cho AI quyền truy cập trực tiếp và có kiểm soát vào dữ liệu thật. Chúng tôi đã xây một hạ tầng MCP server kết nối tới ba nhóm phần mềm phổ biến trong doanh nghiệp Việt Nam. Hiện hệ thống đã nối được khoảng 10 nhóm công cụ và dịch vụ qua MCP (dữ liệu nội bộ ERPFit), và con số này vẫn tăng.
- ERP (quản lý doanh nghiệp). AI tra cứu đơn hàng, tồn kho, công nợ và báo cáo tài chính trực tiếp, thay vì mở ERP lên tìm tay.
- Hóa đơn điện tử. AI tra cứu hóa đơn đã phát hành, kiểm tra trạng thái và tạo bản nháp. Hệ thống hỗ trợ bốn loại hóa đơn: GTGT, bán hàng, máy tính tiền và vé điện tử.
- Phần mềm kế toán. AI duyệt danh mục khách hàng, nhà cung cấp, vật tư hàng hóa và chứng từ. Số liệu được tổng hợp từ nhiều module mà không cần mở từng màn hình.
Kiến trúc hoạt động ra sao?
Chúng tôi dùng một HTTP server duy nhất phục vụ nhiều dịch vụ MCP, mỗi dịch vụ gắn (mount) tại một đường dẫn riêng. Cách làm multi-service này tránh phải dựng riêng một server cho từng phần mềm.
Lợi ích đầu tiên là triển khai một lần dùng cho nhiều hệ thống, không phải chạy nhiều tiến trình hay quản lý nhiều máy chủ. Tiếp theo là xác thực tập trung: người dùng đăng nhập một lần và truy cập mọi dịch vụ họ có quyền. Cuối cùng, việc mở rộng rất gọn. Thêm một dịch vụ mới chỉ cần viết một module và gắn vào đường dẫn mới.
Stack kỹ thuật cố tình giữ tối giản. Nền tảng là Bun (runtime TypeScript), với đúng hai thư viện ngoài là @modelcontextprotocol/sdk và zod. SQLite lo phần nhật ký (audit trail) và lưu trữ phiên. Không framework HTTP nặng, không ORM, không Redis. Một dịch vụ cần chạy ổn định 24/7 thì càng ít thành phần càng tốt. Tư duy này giống cách chúng tôi giám sát uptime bằng công cụ nhẹ.
Những thách thức thực tế là gì?
Thách thức lớn nhất là phần lớn phần mềm không có API mở, nên phải kết nối bằng cách khác. Dưới đây là ba vấn đề thường gặp và cách chúng tôi xử lý.
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, và giao diện web là cách tương tác duy nhất. Chúng tôi phân tích giao thức HTTP mà chính webapp đó dùng, rồi tái tạo lại các request từ phía server.
Việc này cần phân tích lưu lượng mạng để hiểu API nội bộ, xử lý xác thực phức tạp (cookie, CSRF token, header riêng), một Chrome Extension để capture phiên đăng nhập từ trình duyệt, và cơ chế lưu trữ rồi luân chuyển phiên tự động. Cách làm không lý tưởng nhưng đúng với thực tế. Khi phần mềm không được thiết kế để tích hợp, đây là con đường duy nhất để AI chạm tới 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 và thông tin khách hàng đều nhạy cảm, nên AI không thể truy cập tự do. Mọi lệnh gọi công cụ đều được ghi nhật ký: ai gọi, gọi công cụ gì, tham số ra sao, mất bao lâu và có lỗi hay không.
Quản trị viên xem lại được toàn bộ lịch sử tương tác của AI với hệ thống. Phần xác thực dùng đúng tài khoản thật của người dùng, không có "admin key" dùng chung. AI chỉ chạm tới đúng phần dữ liệu mà người dùng đó vốn có quyền trên hệ thống gốc.
Phiên đăng nhập hết hạn
Phiên đăng nhập của webapp thường hết hạn sau vài giờ. Hệ thống tự phát hiện khi phiên hết hạn (qua mã HTTP 401 hoặc lệnh chuyển hướng) và nhắc người dùng đăng nhập lại qua extension. Không có cách tự 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 (mã làm mới phiên tự động).
AI làm được những việc gì trong thực tế?
Trong vận hành thật, AI đã thay người dùng tra cứu, tổng hợp và soạn nháp trên dữ liệu sống. Một số việc cụ thể đang chạy hằng ngày:
Người dùng tra cứu tồn kho bằng tiếng Việt tự nhiên. Hỏi "Sản phẩm nào tồn kho nhiều nhất?", AI truy vấn ERP và trả lời ngay, có sắp xếp và phân trang. Tương tự với công nợ: hỏi "Khách hàng A còn nợ bao nhiêu?", AI lấy số liệu từ phần mềm kế toán và cộng dồn từ nhiều chứng từ.
AI cũng soạn được bản nháp hóa đơn dựa trên dữ liệu ERP, nhưng luôn cần người xác nhận trước khi phát hành chính thức. Cuối cùng là báo cáo tổng hợp. Thay vì mở năm màn hình khác nhau, AI gom dữ liệu từ nhiều nguồn thành một báo cáo gọn. Cách AI tổng hợp này cũng tương tự bài toán đồng bộ dữ liệu sản phẩm giữa PIM và sàn thương mại điện tử mà chúng tôi từng làm.
Chúng tôi rút ra bài học gì?
Bài học cốt lõi là mở quyền cho AI theo từng bước, bắt đầu từ chỉ đọc và luôn để con người kiểm soát điểm quan trọng.
Bắt đầu từ quyền chỉ đọc
Đừng cấp quyền ghi cho AI ngay. Hãy khởi đầu bằng tra cứu (read-only, tức chỉ đọc): xem tồn kho, xem hóa đơn, kiểm tra công nợ. Khi đã tin hệ thống, mới mở dần sang tạo bản nháp và cập nhật dữ liệu. Hóa đơn điện tử là ví dụ rõ nhất. AI soạn được bản nháp, còn phát hành chính thức vẫn thuộc về con người.
Nhật ký không phải tính năng tùy chọn
Khi AI động vào dữ liệu tài chính, mọi hành động phải được ghi nhật ký (audit trail). Không chỉ để gỡ lỗi. Khi có sự cố, bạn cần biết chính xác AI đã làm gì, vào lúc nào và trên dữ liệu nào.
Giữ số thư viện ở mức tối thiểu
Hệ thống vận hành cần ổn định. Càng ít thư viện phụ thuộc thì càng ít điểm có thể hỏng. Toàn bộ server chỉ dùng hai thư viện ngoài, phần còn lại là thành phần sẵn có của runtime. Nhờ vậy việc cập nhật không bao giờ rơi vào cảnh rối phụ thuộc.
Phần mềm Việt Nam cần cách tiếp cận riê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) khó áp dụng nguyên xi ở đây. 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ế. Tốt nhất là chấp nhận thực tế đó rồi xây giải pháp vừa vặn, kể cả khi nó không "đẹp" theo sách vở.
Tiếp theo là gì?
MCP đang lớn nhanh, và ngày càng nhiều phần mềm sẽ hỗ trợ giao thức này một cách tự nhiên. 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, vừa nền tảng AI vừa hệ thống nghiệp vụ. Đó là vị trí của ERPFit, và chúng tôi tiếp tục mở rộng số 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ật, đây là loại tích hợp chúng tôi làm mỗi ngày. Bạn cũng có thể xem thêm dịch vụ AI SEO, nền tảng dữ liệu dulieu.dev, hay bộ công cụ Craft của chúng tôi.