Trợ lý AI trong ứng dụng: OpenAI, Codex và Cursor

Trợ lý AI trong ứng dụng web doanh nghiệp, với các tác nhân chạy trong container Docker

Giải pháp đã triển khai

Trợ lý hiện diện bên cạnh mỗi màn hình của hệ thống web quản lý doanh nghiệp CacaTajka, trả lời các câu hỏi về cách sử dụng ứng dụng. Điểm khác biệt không nằm ở việc trò chuyện với mô hình ngôn ngữ, mà ở những gì có thể vận hành phía sau: ngoài kết nối thông thường với OpenAI, cùng một bảng trợ lý còn có thể khởi chạy tác nhân dòng lệnh thực thụ — Codex hoặc Cursor — trong container Docker trên WSL hoặc máy chủ Linux.

Trải nghiệm của người dùng vẫn giữ nguyên. Công cụ xử lý phía sau được chọn trong phần cài đặt của tổ chức.

Khách hàng nhận được gì

  • Hỗ trợ ngay tại nơi làm việc – bảng trợ lý nằm cạnh mỗi màn hình, không cần chuyển trang hay đào tạo riêng.
  • Câu trả lời từ chính tài liệu của mình, thay vì thông tin chung trên internet. Khi tài liệu không có câu trả lời, trợ lý nói rõ thay vì bịa ra.
  • Lịch sử trò chuyện được lưu lại, có thể tiếp tục và tải xuống dưới dạng tài liệu.
  • Không phụ thuộc vào một nhà cung cấp duy nhất – khi một tác nhân tăng giá, giảm chất lượng hoặc ngừng hoạt động, chỉ cần thay công cụ xử lý phía sau, không phải thay ứng dụng.

Người dùng luôn kiểm soát dữ liệu

Trợ lý không tự đọc màn hình. Mỗi màn hình có thể đề xuất các trường dữ liệu hữu ích, người dùng chọn bằng ô đánh dấu và xem chính xác nội dung sẽ được gửi trước khi gửi. Không có dữ liệu nào được âm thầm chuyển đi.

Ở phía máy chủ, nội dung được chuyển đến luôn được xem là dữ liệu, tuyệt đối không phải mệnh lệnh — nhằm ngăn việc chèn chỉ dẫn mới cho trợ lý qua văn bản trên màn hình. Lịch sử được lưu riêng theo từng tổ chức và từng người dùng.

Vì sao container là thành phần thiết yếu của giải pháp

Tác nhân dòng lệnh có thể đọc tệp và chạy lệnh. Để hoạt động mà không cần con người xác nhận từng thao tác, nó phải được giới hạn bằng một cơ chế khác — và container đảm nhận vai trò đó. Tác nhân chỉ thấy môi trường riêng, tài liệu và không gian làm việc của cuộc trò chuyện đó; nó không thể truy cập các tệp ứng dụng, cơ sở dữ liệu hay phần còn lại của máy chủ.

Mỗi cuộc trò chuyện còn có không gian riêng biệt, và mỗi lần chạy đều được ghi lại cùng thời lượng và kết quả, để có thể xác định sau đó điều gì đã xảy ra và vào lúc nào.

Những tác nhân nào có thể vận hành phía sau bảng trợ lý

Bộ khởi chạy không cần biết chi tiết của từng tác nhân: nó giao nhiệm vụ, chạy tác nhân trong container rồi đọc câu trả lời. Vì vậy, nó có thể phục vụ mọi tác nhân có thể đóng gói trong container và hoạt động không cần tương tác trực tiếp.

Đang hoạt động: OpenAI Responses API, Codex CLICursor Agent — đã được triển khai, kiểm thử và đưa vào sử dụng.

Dự kiến bổ sung: Claude Code, Gemini CLI, GitHub Copilot CLI, Amazon Q Developer CLI, Goose, Aider, opencode và Crush. Tất cả hoạt động theo cùng nguyên tắc, nên mỗi tác nhân chỉ cần bổ sung môi trường riêng — phần còn lại được dùng chung, không phải viết lại.

Phần công việc phía sau

Bên cạnh kết nối, các môi trường đóng gói tác nhân cũng được xây dựng: chỉ cần đăng nhập một lần và thông tin đăng nhập không được đưa vào mã nguồn; việc cập nhật tác nhân lên phiên bản mới diễn ra tự động vào ban đêm, có thể quay lại phiên bản trước; sau mỗi thay đổi môi trường, bước kiểm tra cho biết ngay tác nhân có phản hồi hay không.

Đây cũng là phần phát sinh nhiều tình huống bất ngờ nhất: chạy các công cụ này trong container trên máy chủ Windows gặp những giới hạn không được nêu trong tài liệu, buộc phải tìm cách giải quyết trong quá trình triển khai.

Áp dụng cùng giải pháp ngoài ứng dụng này

Bảng trợ lý là một mô-đun JavaScript không phụ thuộc framework, còn phía máy chủ là một điểm tiếp nhận câu hỏi và trả về câu trả lời. Nhờ cách phân chia đó, cùng một trợ lý có thể được tích hợp vào website khác, phần mềm cài đặt hoặc tác vụ chạy nền mà không phải viết lại kết nối với tác nhân.

Công nghệ sử dụng

Giải pháp được phát triển bằng PHP (CodeIgniter 4)JavaScript, sử dụng OpenAI Responses API, các tác nhân CLI CodexCursor, Docker trên WSL và Linux, MySQL để lưu lịch sử trò chuyện và nhật ký, cùng Bootstrap cho giao diện bảng trợ lý.

Nếu bạn cần kết nối như vậy trong phần mềm của mình, hãy xem dịch vụ tích hợp trí tuệ nhân tạo; nếu chỉ cần kết nối với dịch vụ bên ngoài, hãy xem tích hợp API.