Một desktop thật, cho agent của bạn.
Một agent bị kẹt trong headless browser chỉ làm được một mảng rất hẹp của công việc thật. Remio mang lại cho AI agent của bạn một desktop hệ điều hành thật — đúng chiếc máy mà con người vẫn dùng — với nhập liệu native, truy cập toàn màn hình và một phiên mã hoá đầu-cuối. Không phải sandbox thiếu mất nửa số API. Chỉ là một chiếc Mac hoặc PC thật, do model của bạn điều khiển.
Vì sao agent cần một màn hình thật.
Một sandbox trình duyệt là đủ với agent chỉ điền form web. Nhưng ngay khi công việc bước sang các ứng dụng native, sandbox hết đường đi. Một desktop thật là môi trường chạy agent gọn gàng nhất — con người dùng được thì agent cũng dùng được.
Một agent chỉ sống bên trong headless browser không thể mở Final Cut, không thể kéo một tệp video từ Finder vào công cụ sáng tạo, không thể ký một PDF trong Preview, không thể chạy trình cài đặt .dmg hay .exe, không thể cấp quyền ghi màn hình cho một ứng dụng khác, không thể chọn tệp bằng bộ chọn tệp của hệ thống, và không thể trụ được trước một hộp thoại modal bất ngờ từ hệ điều hành. Đó lại chính là những khoảnh khắc mà phần lớn quy trình thực tế diễn ra — và là nơi agent chạy trên headless browser lặng lẽ thất bại.
Các container ảo hoá (mô hình "agent computer" của các phòng lab lớn) khắc phục được vài lỗ hổng đó, nhưng lại tạo ra lỗ hổng riêng. Image thường là một desktop Linux tối giản với vài ứng dụng cài sẵn; mọi thứ nằm ngoài phạm vi đó đều không với tới được. Container không có sự liên tục nào với công việc thực tế của người dùng — các ứng dụng họ đã cài, các tài khoản họ đã đăng nhập, các tệp họ đã lưu, các quyền họ đã cấp. Mỗi lần agent chạy đều bắt đầu từ một cỗ máy trắng tinh không phải máy của người dùng.
Remio đi theo hướng khác. Agent nhận được desktop thật của người dùng — đúng chiếc Mac hoặc PC mà người dùng làm việc trên đó — qua chính phiên remote desktop mà một con người sẽ dùng. Mọi ứng dụng người dùng đã cài đều có ở đó. Mọi tài khoản người dùng đã đăng nhập đều có ở đó. Mọi tệp đều có ở đó. Agent không phải là người thuê trong một môi trường tổng hợp; nó là khách trên đúng máy trạm của người dùng, trong đúng khoảng thời gian người dùng cho phép nó vào.
Cùng một đường ống nhập liệu, không cần API đặc biệt.
Một agent gọi input.send_click(x, y) và host nhận được một sự kiện click chuột từ hệ thống nhập liệu native của hệ điều hành — đúng sự kiện mà chuột của người dùng sẽ tạo ra. Cuộn, kéo, cử chỉ, phím bổ trợ, phím media đều đi qua chính hệ thống nhập liệu của nền tảng. Host thực sự không thể phân biệt được, bởi vì không có gì khác biệt cả.
Không cần nâng quyền riêng cho agent, không kernel hook, không lớp đệm accessibility.

Điều này quan trọng hơn vẻ ngoài của nó. Các nền tảng agent giả lập nhập liệu ở tầng ứng dụng — bơm phím tổng hợp vào hàng đợi sự kiện của một cửa sổ, hoặc dùng API accessibility để điều khiển trực tiếp các thành phần giao diện — liên tục gặp giới hạn: các trường được bảo vệ từ chối nhận đầu vào, phím tắt native bị lỗi, kéo-thả không hoạt động giữa các ứng dụng, quản lý focus rối loạn. Đi qua đường ống nhập liệu ở cấp hệ điều hành né được tất cả những chuyện đó — nếu con người làm được bằng chuột và bàn phím thật, agent cũng làm được qua Remio.
Ranh giới đặc quyền cũng y hệt. Các quyền Accessibility và Input Monitoring của host, được con người cấp một lần cho ứng dụng Remio Host, bao trùm cả phiên của con người lẫn phiên của agent thông qua chính ứng dụng đó. Agent không cần quyền cấp riêng. Thu hồi các quyền của Remio sẽ đẩy agent ra đúng lúc nó đẩy con người ra — một công tắc, cả hai đường.
Trạng thái màn hình, theo yêu cầu.
Agent có thể yêu cầu chụp toàn màn hình bất cứ lúc nào, chụp theo vùng, một bản OCR kèm khung bao (bounding box), hoặc cây accessibility của cửa sổ đang focus. Ngữ cảnh lớn hơn cho các model vision-language, nhỏ và nhanh hơn cho các model xuất dữ liệu có cấu trúc — lựa chọn thuộc về agent.
Một model vision-language như Claude hay GPT-4o thường muốn pixel. screen.capture() trả về một ảnh PNG đầy đủ của màn hình chính của host. screen.capture(region) chỉ trả về đúng hình chữ nhật mà agent yêu cầu — hữu ích khi model đã biết đại khái cần nhìn vào đâu và muốn cắt giảm chi phí prompt. Ảnh chụp đến từ chính đường ống native đang cấp luồng trực tiếp cho con người, nên hình ảnh agent thấy chính là hình ảnh người dùng sẽ thấy.
Với các agent thích đầu vào có cấu trúc, screen.ocr() trả về văn bản trên màn hình dưới dạng danh sách chuỗi kèm khung bao, được tạo ngay trên host bằng OCR native của nền tảng (Vision framework trên macOS, Windows OCR API trên Windows). Agent nhận được một biểu diễn văn bản gọn nhẹ để suy luận mà không cần model thị giác trong vòng lặp — rẻ hơn, nhanh hơn, dễ nối vào các công cụ xác định (deterministic) hơn. Khung bao nghĩa là agent có thể biến một kết quả OCR thành một input.send_click(x, y) chính xác mà không cần gửi dù chỉ một pixel tới model của nó.
Để truy cập có cấu trúc với độ trung thực cao nhất, accessibility.tree() trả về cây accessibility của hệ điều hành cho cửa sổ đang focus — chính cây mà một trình đọc màn hình duyệt qua. Agent nhận được một cây phân cấp có nhãn gồm các nút, trường văn bản, menu và vai trò (role), kèm các định danh ổn định để nhắm tới trực tiếp. Phần lớn quy trình agent trộn cả ba: chụp một lần để định hướng, OCR để đọc một khối văn bản dài, cây accessibility để tương tác với một control cụ thể. Agent chọn theo từng truy vấn — Remio chỉ việc trả lời.
Ranh giới an toàn tích hợp sẵn.
Mọi phiên đều do một con người tạo ra bằng cách ghép một mã PIN 4 chữ số với host. Agent kế thừa phiên của con người — chúng không thể tự khởi tạo phiên, không thể vượt qua quyền ghi màn hình hay accessibility, và không thể lưu giữ thông tin đăng nhập. Kết thúc một phiên là agent bị khoá ngoài cho tới khi ghép lại.
Điểm khởi đầu của mọi phiên Remio là một con người đọc mã PIN 4 chữ số trên màn hình của host và nhập nó vào client. Không có token nào mà agent có thể giữ và âm thầm làm mới. Không có API key nào cấp quyền truy cập lâu dài. PIN có thời hạn ngắn, phiên nó tạo ra chỉ dùng một lần, và ngay khoảnh khắc con người kết thúc phiên, kết nối của agent bị ngắt. Lần chạy agent tiếp theo cần một PIN mới — nghĩa là một khoảnh khắc có con người trong vòng lặp mới.
Trong phiên, agent kế thừa các quyền ở cấp hệ điều hành của host — chứ không phải thông tin đăng nhập tài khoản rộng hơn của người dùng. Nếu host chưa cấp cho Remio quyền Ghi màn hình cho màn hình phụ, screen.capture() trên màn hình đó không trả về gì. Nếu quyền Accessibility bị tắt, đường ống nhập liệu từ chối bơm sự kiện. Agent hoạt động nghiêm ngặt trong phạm vi mà người dùng đã cấp cho chính ứng dụng Remio; nó không thể nới rộng phạm vi đó và cũng không thể lách qua nó.
Không có gì agent làm trong một phiên tồn tại lại trên host ngoài chính hệ thống tệp của host. Remio không cất giữ thông tin đăng nhập trong keychain để agent tái sử dụng về sau. Nó không ghi các khung màn hình của phiên hay kết quả OCR ra đĩa. Khi con người kết thúc phiên, trạng thái làm việc của agent chỉ là những tệp mà agent đã lưu vào ổ đĩa của người dùng — người dùng nhìn thấy, người dùng sở hữu, người dùng xoá được. Agent không để lại cái đuôi ẩn nào.
Ghép với Claude, GPT, Gemini, hoặc model của riêng bạn.
Remio phát hành một SDK mỏng trên kênh dữ liệu: input.send_click, input.send_key, screen.capture, screen.ocr, accessibility.tree. Nối nó vào bất kỳ vòng lặp agent nào. Không khoá chân vào nhà cung cấp.
SDK cố ý nhỏ gọn. Năm primitive bao trọn toàn bộ bề mặt tương tác mà một agent cần: hai cho nhập liệu (click, phím), hai cho thị giác (chụp, OCR), một cho giao diện có cấu trúc (cây accessibility). Mỗi cái ánh xạ thẳng vào một thông điệp trên kênh dữ liệu; không có lớp middleware khôn khéo nào ở giữa. Một vòng lặp agent là một vòng while quanh năm lệnh gọi đó, cộng với bất kỳ khâu lập kế hoạch nào model của bạn làm ở giữa. Nếu bạn gọi được một hàm Python, bạn điều khiển được Remio.
Vì SDK không phụ thuộc model, bạn có thể đổi LLM mà không cần thay đổi gì ở phía Remio. Hôm nay bạn có thể gói các lệnh gọi SDK vào định nghĩa công cụ (tool definition) cho Anthropic SDK và để Claude lập kế hoạch quy trình. Ngày mai bạn chuyển sang GPT qua OpenAI SDK và chính những định nghĩa công cụ đó vẫn hoạt động. Tuần sau nữa, bạn thử Gemini qua Google Gen AI SDK; vẫn những công cụ ấy. Ngày bạn ra mắt model của riêng mình được fine-tune cho công việc desktop, bạn nối nó vào cùng năm primitive đó và phần còn lại của hệ thống chẳng hề hay biết.
SDK được phát hành dưới dạng một thư viện client nhỏ — không có tiến trình sidecar riêng, không có luồng xác thực phải quản lý, không có hệ thống quota. Vòng lặp agent chạy trên máy của bạn, trên server của bạn, trên node biên (edge) của bạn, ở bất cứ đâu model của bạn đã chạy. Remio là môi trường chạy desktop; môi trường chạy agent là bất cứ thứ gì bạn vốn đã dùng để gọi một model.
Khi nào không nên dùng Remio cho một agent.
Remio là môi trường chạy đúng cho một số quy trình agent và sai cho những quy trình khác. Đây là bản tóm tắt ngắn gọn và trung thực.
Nếu agent của bạn chỉ cần một trình duyệt web — cào trang, điền form, đọc dashboard — hãy dùng headless browser. Playwright hay Puppeteer điều khiển Chromium nhanh hơn, rẻ hơn, xác định hơn và dễ mở rộng hơn so với việc chạy nguyên một phiên remote desktop chỉ vì một tab trình duyệt. Hướng headless thống trị nhóm này, và Remio không cố cạnh tranh ở đó.
Nếu agent của bạn cần dựng lên hàng chục môi trường dùng một lần — mỗi tác vụ một cái, trạng thái mới tinh mỗi lần, chạy song song — hãy dùng container. Docker, Firecracker, hoặc một trong các sản phẩm "agent computer" của các phòng lab AI cho bạn những desktop Linux tạm thời có thể trải rộng ở quy mô lớn. Remio được xây quanh một phiên do con người ghép mang tính bền vững, tức là hình dạng ngược lại: đồng thời thấp, liên tục cao, ngữ cảnh người dùng thật.
Remio là câu trả lời đúng khi agent cần một desktop hệ điều hành thật với các ứng dụng native, đúng phần mềm người dùng đã cài, các tài khoản và tệp thật của người dùng, và một ranh giới phiên có con người trong vòng lặp. Các agent hỗ trợ tiếp cận (accessibility) điều khiển desktop cho người dùng khuyết tật. QA có AI hỗ trợ trên các ứng dụng hệ điều hành thật. Các quy trình agentic buộc phải dùng một công cụ native cụ thể mà người dùng đã sở hữu. Bất kỳ tác vụ nào mà "dùng chính máy của tôi, với mọi thứ trên đó, trong khi tôi giám sát" là cách diễn đạt tự nhiên. Với những trường hợp đó, Remio là môi trường chạy; với mọi thứ khác, hãy chọn công cụ nhẹ hơn.
Các câu hỏi thường gặp về agent trên Remio.
Năm câu hỏi mà việc tích hợp agent hay đặt ra — câu trả lời trung thực bên dưới.
Agent của tôi có thể tự khởi tạo một phiên mà không cần con người không?
Những agent nào hoạt động với Remio hiện nay?
Host có cần một chế độ agent đặc biệt không?
Agent có thể thấy những màn hình mà người dùng không thấy không?
Remio có gửi phiên của agent của tôi tới một LLM trên cloud không?
Cho agent của bạn một desktop thật.
Cài Remio trên chiếc máy bạn muốn agent làm việc và trên thiết bị agent chạy từ đó, ghép cả hai bằng một mã PIN 4 chữ số, và vòng lặp agent của bạn có tay và mắt trên một hệ điều hành thật. Năm primitive, một phiên mã hoá, không cần chế độ agent đặc biệt trên host.