- Chạy LLM cục bộ và môi trường sandbox mã để xây dựng workspace AI mà không cần phụ thuộc vào cloud.
- Khởi chạy LLM cục bộ bằng Ollama, dùng Apple Container để chạy code trong VM cách ly, và cho phép tự động hóa cùng truy cập internet qua trình duyệt headless với Playwright.
- UI dựa trên
assistant-ui, ngoài ra triển khai dropdown chọn mô hình và tích hợp ai-sdk, cùng môi trường chạy code an toàn thông qua MCP(Model Context Protocol).
- Trong VM Coderunner được kết nối bằng MCP, chạy máy chủ Jupyter và trình duyệt để xử lý tạo biểu đồ, chỉnh sửa ảnh/video, cài công cụ GitHub và tìm kiếm web trong trạng thái bảo vệ quyền riêng tư.
- Hiện tại chỉ hoạt động trên Apple Silicon; các việc cần làm tiếp theo là cải thiện UI, tránh phát hiện trình duyệt, và tăng cường khả năng quản lý công cụ.
Yêu cầu và bối cảnh
- Mục tiêu: Thực thi tất cả mọi thứ cục bộ, không cần chạy code trên cloud hoặc từ xa.
- Các ứng dụng chat LLM hiện tại (ví dụ: ChatGPT, Claude) cung cấp chat LLM dựa trên cloud, chạy code cloud/cục bộ, và khả năng truy cập internet.
- Khi việc dùng LLM mã nguồn mở tăng mạnh, tác giả tự hỏi có thể thực hiện toàn bộ các chức năng này hoàn toàn cục bộ hay không.
- Chỉ với LLM cục bộ thì chưa đủ, nên code cần phải chạy trong môi trường cô lập và vẫn cần truy cập nội dung qua trình duyệt.
Ý tưởng ban đầu
- Chạy LLM hoàn toàn trong môi trường cục bộ.
- Xử lý việc thực thi code chỉ trong VM nhẹ để chặn rủi ro cho hệ thống host.
- Bổ sung trình duyệt headless nhằm hỗ trợ tự động hóa, tiếp cận thông tin mới và khám phá công cụ.
- Xây dựng workflow với trọng tâm bảo vệ quyền riêng tư, từ lập kế hoạch AI đến thực thi code, tất cả diễn ra cục bộ.
- Có thể làm nhiều tác vụ như chỉnh sửa ảnh, video ngay tại local mà không gửi dữ liệu cho dịch vụ bên ngoài.
Ngăn xếp công nghệ
- LLM: Ollama (hỗ trợ mô hình cục bộ và một số mô hình bên ngoài).
- UI:
assistant-ui + ai-sdk (thêm chức năng chọn mô hình).
- Runtime VM: Apple
container (cung cấp môi trường VM cách ly).
- Orchestration:
instavm/coderunner (kết nối máy chủ Jupyter qua MCP).
- Tự động hóa trình duyệt: Playwright (mở dưới dạng công cụ MCP).
Thử nghiệm ứng dụng Mac và chuyển đổi
- Đã thử phát triển ứng dụng Mac native bằng
a0.dev, nhưng gặp khó khăn vì tập trung chủ yếu cho iOS.
- Việc đóng gói Electron + NextJS cũng được thử nhưng đã bỏ vì vấn đề phức tạp.
- Cuối cùng chuyển sang dùng
assistant-ui web local.
Tùy biến Assistant-UI
- Mong đợi sẽ hỗ trợ nhiều LLM như dropdown chọn model, nhưng thực tế bị giới hạn.
- Sau khi tham khảo ví dụ, tự triển khai trực tiếp khả năng chọn nhiều mô hình thông qua ai-sdk.
- Ban đầu cũng hỗ trợ mô hình cloud như OpenAI/Anthropic, với chiến lược dần dần chuyển sang cục bộ.
Vấn đề tool-calling và hỗ trợ mô hình
- Cần model hỗ trợ tool-calling, nhưng một số model như Ollama thực tế không hỗ trợ.
- Mặc dù tài liệu chính thức có ghi nhận hỗ trợ tool, nhưng khi triển khai thực tế lại thiếu nhiều phần.
- Tốc độ thay đổi nhanh của hệ sinh thái mã nguồn mở khiến tình trạng hỗ trợ tool và giá token biến động lớn.
Chạy code cô lập dựa trên container
- Dùng công cụ Container của Apple vì thay vì Docker, mỗi container đều có môi trường VM cách ly hoàn toàn, nên có thể chạy code do AI sinh ra an toàn hơn.
- Triển khai máy chủ Jupyter trong môi trường VM, phơi ra qua MCP để các công cụ như Claude Desktop, Gemini CLI... có thể tận dụng ngay.
- Công khai mã MCP server của
coderunner, cung cấp ví dụ tích hợp với công cụ bên ngoài.
- Công cụ Apple Container vẫn chưa ổn định, nên khi gặp lỗi build/image cần khởi động lại nhiều lần.
- Trong bài test chỉnh sửa video thực tế đã xác nhận hoạt động bình thường của combo UI + LLM + coderunner.
Tích hợp trình duyệt headless
- Triển khai Playwright headless trong container và phơi ra như công cụ MCP.
- Kỳ vọng ứng dụng cho việc khám phá công cụ/thông tin mới, tìm cách dùng GitHub, tự động hóa nghiên cứu...
- Quy trình làm việc cơ bản đã hoàn tất: xây dựng combo LLM cục bộ + thực thi code sandbox + trình duyệt headless.
Ví dụ công việc có thể làm
- Nghiên cứu và tóm tắt một chủ đề cụ thể.
- Tạo và render biểu đồ CSV bằng lệnh ngôn ngữ tự nhiên.
- Chỉnh sửa video bằng
ffmpeg (cắt đoạn, ...).
- Resize, cắt và chuyển đổi định dạng ảnh.
- Cài đặt công cụ GitHub trong container.
- Crawl web và tóm tắt bằng trình duyệt headless, v.v.
Gắn mount volume và cách ly file
- Ánh xạ
~/.coderunner/assets của host sang container /app/uploads, file được lưu an toàn trong không gian chia sẻ.
- Code đã chạy không thể truy cập trực tiếp hệ thống host, giúp tăng cường bảo mật.
Hạn chế và hướng phát triển tiếp
- Apple Silicon là môi trường duy nhất, macOS 26 chỉ là tùy chọn.
- Cần cải thiện UI cho quản lý công cụ, luồng output streaming...
- Trình duyệt headless vẫn có tình trạng bị chặn do phát hiện bot trên một số trang.
Kết luận
- Dự án này là một mô hình không chỉ là thử nghiệm, mà còn tập trung vào chủ quyền tính toán và bảo vệ quyền riêng tư.
- Cung cấp trải nghiệm xử lý dữ liệu an toàn trên máy cục bộ cá nhân mà không phụ thuộc cloud hay máy chủ từ xa.
- Mô hình LLM tốt nhất có thể vẫn nằm ở các cloud lớn, nhưng hướng tới phát triển công cụ AI cục bộ có thể bảo vệ quyền riêng tư cá nhân.
- Mã nguồn mở
coderunner-ui có thể dùng trên GitHub, xin chào đón phản hồi và cộng tác.
Tài nguyên liên quan
Chưa có bình luận nào.