OpenBot: template AI coworker tự triển khai với gateway và audit
OpenBot là template mã nguồn mở để dựng AI coworker có browser, file và công cụ riêng. Mỗi hành động đi qua gateway để áp chính sách và ghi nhận. Đây là dự án beta; quick start còn cần CopilotKit Intelligence và khóa model.
Một AI agent có thể đọc ticket, mở browser và thao tác file sẽ hữu ích hơn chatbot thông thường — nhưng cũng tạo thêm một bài toán vận hành: ai kiểm soát quyền của nó, và ai lần lại được từng hành động khi có sự cố?
OpenBot tiếp cận bài toán này bằng cách cấp cho mỗi AI coworker một “computer” riêng, gồm browser, thông tin đăng nhập và workspace. Các thao tác với computer, file, MCP server hoặc thành phần giao diện đều đi qua một gateway để được quyết định theo chính sách và ghi nhận.
Với đội hạ tầng được giao đưa AI vào môi trường doanh nghiệp, đây là một mẫu kiến trúc đáng xem: agent không chỉ là một runtime có credential, mà là workload có ranh giới thực thi và dấu vết kiểm toán. Tuy vậy, OpenBot vẫn là phần mềm beta; tổ chức cần tự hoàn thiện bảo mật và vận hành trước khi mở cho nhiều người dùng.
OpenBot là gì?
Theo README, OpenBot là một template mã nguồn mở, không phải dịch vụ SaaS hay package cài đặt sẵn. Không có phiên bản hosted để đăng ký. Đội triển khai cần clone repository, thay tenant mẫu trong examples/ bằng coworker, channel và skill của mình, rồi tự chạy hệ thống.
OpenBot kết nối với agent qua AG-UI, một giao thức mở cho tương tác giữa agent và người dùng. Một Bot là endpoint nói AG-UI; agent có thể được xây bằng LangGraph, Mastra, CrewAI, Pydantic AI, Google ADK hoặc tự viết, miễn đáp ứng giao thức này.
Điểm đó giúp OpenBot không khóa tổ chức vào một framework agent duy nhất. Tuy nhiên, “tự triển khai” ở đây không đồng nghĩa mọi thành phần mặc định đều tách biệt hoàn toàn khỏi bên ngoài: quick start yêu cầu CopilotKit Intelligence project cùng khóa model. README cũng nêu Intelligence có thể được tự host.
Gateway là điểm kiểm soát chính
Luồng kiến trúc trong README được mô tả như sau:
Người dùng gửi yêu cầu đến server.
Server chuyển lượt hội thoại cho Bot qua AG-UI.
Khi Bot gọi tool, thao tác browser, file, MCP server hoặc thành phần giao diện, yêu cầu đi qua gateway.
Gateway xác định mục tiêu, quyết định theo policy và ghi audit row; sau đó mới thực thi hoặc từ chối, kèm rule liên quan.
Các hành động browser và file được cho phép chạy trên computer riêng của Bot: một container với Chromium, login và workspace riêng.
Quyết định policy nằm trong PostgreSQL của deployment; thread hội thoại được lưu trong CopilotKit Intelligence.
Với môi trường nội bộ, gateway là thành phần đáng đánh giá kỹ nhất. Nó tạo một điểm tập trung để kiểm soát hành vi thay vì để agent runtime trực tiếp gọi mọi tài nguyên mà nó có credential.
README không nêu chi tiết cú pháp policy, danh sách rule mặc định, schema audit log hay cơ chế xuất log sang SIEM. Đây là các điểm đội platform cần kiểm tra trong mã nguồn và thử nghiệm trước khi đưa vào quy trình vận hành.
“Mỗi Bot một computer” có ý nghĩa gì?
README cho biết mỗi coworker có browser, login, file và công cụ được cấp riêng. Với các thao tác browser và file được cho phép, Bot làm việc trong container của chính nó, có Chromium, thông tin đăng nhập và workspace riêng.
Mô hình này phù hợp để thử các tình huống như:
Agent tra cứu dashboard bằng tài khoản chỉ-đọc.
Agent xử lý tài liệu trong workspace riêng thay vì dùng chung thư mục với Bot khác.
Agent làm việc với cổng web cần session đăng nhập riêng.
Agent gọi MCP server qua gateway thay vì để runtime agent tự kết nối tùy ý.
Tuy nhiên, container không tự biến workload thành an toàn. Nếu Bot được cấp một tài khoản có quyền cao, nó vẫn có thể hành động trong phạm vi quyền của tài khoản đó khi policy cho phép. Vì vậy, các nguyên tắc như tài khoản riêng, quyền tối thiểu, phân đoạn mạng và kiểm soát credential vẫn cần được áp dụng ở tầng hạ tầng.
README nói mỗi hành động được quyết định trước khi xảy ra và được ghi nhận sau đó; sơ đồ kiến trúc mô tả audit row được ghi trước khi hành động được thực thi hoặc bị từ chối. Đây là nền tảng hữu ích cho truy vết, nhưng đội vận hành vẫn cần xác định dữ liệu nhạy cảm nào có thể xuất hiện trong log, thời hạn lưu, cơ chế backup PostgreSQL và quyền đọc audit data.
Quick start trên máy nội bộ
README liệt kê các yêu cầu sau:
Docker cho PostgreSQL và các Bot đi kèm.
Bun 1.4 trở lên cho app, API server và test; một số test thất bại với Bun 1.3.
CopilotKit Intelligence project và license; có gói miễn phí, đồng thời Intelligence có thể tự host.
Khóa model. Bot proof-of-concept dùng OpenAI; LangGraph Bot có thể dùng OpenAI, Anthropic hoặc Google.
Các bước quick start dành cho laptop:
Tạo file môi trường và cài dependency:
sh
cp .env.example .env
bun install
Kết nối managed Intelligence project:
sh
npx --yes copilotkit@latest login
npx --yes copilotkit@latest project select
bun scripts/setup-learning.ts
Theo README, helper sẽ provision runtime key cho project đã chọn, tạo hoặc tái sử dụng Learning container openbot, rồi ghi các thiết lập liên quan vào .env.
Điền khóa model, ví dụ:
text
OPENAIAPIKEY
Ví dụ KEYENCRYPTIONKEY trong môi trường local là công khai; README khuyến nghị tạo key riêng bằng:
sh
openssl rand -base64 32
Khởi động:
sh
bash scripts/start.sh
Mở giao diện tại:
text
http://localhost:3010
Theo README, scripts/start.sh khởi động các dịch vụ Docker, chạy migration, mở API server ở cổng 3001, khởi động routine worker và app ở cổng 3010. Script cũng kiểm tra health route của các service trước khi in bước tiếp theo.
Deployment mẫu bắt đầu với General Assistant và Knowledge. Risk Analyst được thêm khi endpoint của nó đã được cấu hình.
Không nên giữ nguyên cấu hình laptop khi mở cho nhiều người dùng
README nêu rõ .env.example đặt:
text
OPENBOTSINGLEUSER=true
Thiết lập này chấp nhận mọi request như một administrator để bản clone mới có thể chạy mà chưa cần đăng ký OAuth client. README cũng nói sign-in phải được bật trước khi bất kỳ ai khác có thể truy cập deployment.
Trước khi mở hệ thống cho người dùng khác, đội vận hành nên tối thiểu:
Tắt chế độ single-user và cấu hình sign-in.
Thay KEYENCRYPTIONKEY mẫu bằng key riêng.
Rà soát việc cấp login và quyền cho từng Bot, ưu tiên quyền tối thiểu.
Kiểm tra quyền truy cập PostgreSQL, audit data và quy trình backup.
Đặt giới hạn tài nguyên cho Docker host nếu dự kiến chạy nhiều coworker.
Đánh giá cẩn thận việc công bố cổng app và API ra mạng ngoài.
README mô tả credential model do administrator cung cấp được mã hóa khi lưu và không bị ghi log. Dù vậy, đây không thay thế cho quản trị vòng đời secret, phân quyền tài khoản hay kiểm soát truy cập ở tầng mạng.
Tài liệu được cung cấp cũng không nêu cấu hình CPU, RAM, GPU, VRAM, băng thông, mức tiêu thụ Chromium, số Bot đồng thời hay benchmark độ trễ. Không nên suy ra khả năng chịu tải production chỉ từ việc quick start chạy được trên laptop.
Nên thử ở đâu?
OpenBot phù hợp để lab khi tổ chức cần agent thao tác browser, file hoặc tool nội bộ nhưng muốn có một điểm kiểm soát và audit cho các hành động đó.
Repository có các agent mẫu cho những việc như đọc expense claim theo policy, chuyển meeting note thành follow-up, triage ticket, bàn giao on-call và nhóm phản hồi khách hàng theo chủ đề có trích dẫn. Đây nên được xem là gợi ý use case để tùy biến, không phải cam kết sẵn sàng cho mọi môi trường production.
Kết luận: hãy xem OpenBot là khung triển khai có gateway và audit, không phải appliance AI an toàn sẵn. Một thử nghiệm hợp lý là bắt đầu với một Bot, một tài khoản giới hạn, một phạm vi tài nguyên nhỏ và kiểm tra kỹ audit trước khi mở rộng. Giá trị nổi bật của dự án không nằm ở giao diện chat, mà ở việc đưa hành động của agent vào một luồng có thể cho phép, từ chối và truy vết.