Mọi cuộc trò chuyện về AI coding agent rồi cũng sẽ chạm đến cùng một câu hỏi thực tế, thường là muộn hơn mức cần thiết: code thực sự chạy ở đâu? Không phải dùng model nào, mà là cỗ máy nào đang giữ repository, thông tin xác thực, cache của bạn, và cả shell mà agent đang gõ lệnh vào.
Sharkly biến câu trả lời đó thành một khái niệm hạng nhất có tên là Computer. Computer cung cấp host thực thi cho công việc của Agent. Nó có thể là một máy local, một server remote, một container, hoặc một cloud host được hỗ trợ. Chiếc laptop của bạn cũng đủ điều kiện. Máy Linux trong rack của bạn cũng vậy. Bạn chọn host, bạn kiểm soát nó, và Sharkly điều phối công việc lên đó thay vì chạy code của bạn ở một nơi nào đó mà bạn không nhìn thấy.
Sharkly không thay thế Claude Code, Codex hay các công cụ thực thi khác. Nó bổ sung lớp tác vụ chung, Computer, ngữ cảnh, kiểm soát và review bao quanh những công cụ mà đội của bạn đã dùng. Các công cụ đó vẫn được cài trên máy của bạn, và việc dùng model vẫn diễn ra thông qua subscription hoặc API key đã cấu hình trong chúng.
TL;DR
Computer là host thực thi cho công việc của Agent trong Sharkly: một máy local, một server remote, một container, hoặc một cloud host được hỗ trợ mà bạn kiểm soát. Một local service nhỏ kết nối Computer với Sharkly, phát hiện các Runtime khả dụng (những công cụ agent cụ thể đã cài ở đó, ví dụ Claude Code hay Codex), nhận các run trong hàng đợi, chuẩn bị thư mục tác vụ, khởi chạy Runtime đã chọn, và truyền tiến độ trở lại Task. Kết nối máy cá nhân bằng Sharkly Desktop, hoặc host remote bằng Sharkly CLI cùng một install token dùng một lần. Việc dùng model diễn ra qua subscription và API key đã cấu hình sẵn trong công cụ của bạn; giới hạn concurrency quyết định một host gánh được bao nhiêu việc chạy song song.
Computer là gì và không phải là gì
Sharkly chia việc thực thi thành bốn vai trò, mỗi vai trò chỉ có đúng một nhiệm vụ:
- Agent định nghĩa cách công việc nên được xử lý: hướng dẫn, Skills, repository, thiết lập run.
- Computer cung cấp host và các tài nguyên local: hệ điều hành, tệp, thông tin xác thực, mạng, công cụ.
- Runtime thực hiện phiên agent thực tế: công cụ coding được phát hiện trên Computer đó.
- Task vẫn là bản ghi chung: mục tiêu, thảo luận, trạng thái thực thi, trace, kết quả.
Sự tách bạch đó giải thích phần lớn những gì được nói ở dưới. Agent không phải là host thực thi; cùng một cấu hình Agent có thể trỏ tới những Computer khác nhau theo thời gian. Computer không phải là agent; nó chứa một hoặc nhiều Runtime và không làm gì cho đến khi có công việc được điều tới. Và một Computer có thể phục vụ nhiều Agent cùng lúc, trong giới hạn concurrency của nó.

Điều đó cũng giải thích luôn điểm bán của sản phẩm. Các nền tảng hosted gộp model, runner và hạ tầng vào một sản phẩm duy nhất, nghĩa là code của bạn chạy trên hạ tầng mà bạn không vận hành. Sharkly chọn lập trường ngược lại: host thực thi là của bạn, và thứ nó thêm vào là phân công, xếp hàng đợi và review. Nếu bạn mới làm quen với mô hình này, bài Sharkly là gì sẽ cho bạn bức tranh đầy đủ.
Local service: thành phần thực sự làm việc
Một local service nhỏ kết nối từng Computer với Sharkly. Nó đăng ký Computer, phát hiện các Runtime đã cài, gửi heartbeat, nhận các run trong hàng đợi, chuẩn bị thư mục tác vụ, khởi chạy công cụ agent đã chọn, rồi báo cáo tiến độ và kết quả trở lại.
Có một chi tiết thiết kế mang ý nghĩa vận hành rất lớn: local service là bên khởi tạo kết nối tới server, nên một cấu hình điển hình không cần mở cổng inbound. Nhờ vậy, một chiếc laptop sau router tại nhà, một workstation sau tường lửa doanh nghiệp, và một server trong subnet riêng đều là những Computer khả thi như nhau.
Heartbeat là cách Sharkly biết một Computer còn sống: Online khi server nhận được heartbeat, Offline khi chúng ngừng gửi. Ranh giới này giúp bạn tiết kiệm thời gian gỡ lỗi: online chỉ có nghĩa là heartbeat vẫn đang tới. Nó không có nghĩa là Runtime đã chọn có thể thực thi Task.
Runtime: Computer của bạn thực sự chạy được gì
Runtime là một năng lực thực thi agent được hỗ trợ và được phát hiện trên một Computer. Local service quét các công cụ agent được hỗ trợ và báo cáo từng công cụ dùng được, nên một Computer đã cài Claude Code và Codex sẽ phơi ra cả hai như những Runtime để Agent lựa chọn.
Trang chi tiết Computer báo cáo trạng thái năng lực cho từng Runtime:
- Available: Runtime đã kết nối và có thể thực thi công việc của Agent.
- Needs configuration: công cụ đã được phát hiện nhưng thiếu cấu hình bắt buộc.
- Not installed: công cụ không khả dụng với local service; hãy cài đặt nó hoặc chọn Runtime khác.
- Unsupported: Runtime hoặc môi trường nằm ngoài tập năng lực được hỗ trợ.
Việc cài đặt vẫn là trách nhiệm của bạn, và đó là chủ ý. Bạn cài và xác thực từng công cụ y như khi dùng trực tiếp; trang chi tiết Computer có liên kết tới hướng dẫn cài đặt chính thức, và một lần quét lại sẽ xác nhận local service nhìn thấy nó. Nếu một năng lực bạn phụ thuộc không được phát hiện, bạn có thể thêm Runtime ACP tùy chỉnh với tên và lệnh khởi chạy, rồi kiểm tra kết nối.
Hai hệ quả kéo theo. Cách nói "mang theo subscription của riêng bạn" là theo đúng nghĩa đen: hạn mức model phụ thuộc vào các công cụ AI coding, gói dịch vụ và tài khoản API mà đội bạn kết nối, nên lỗi hết hạn mức là trỏ tới tài khoản đã cấu hình trong công cụ chứ không phải một thiết lập nào đó của Sharkly. Và việc chọn model thuộc về công cụ: một Agent sẽ dùng model mặc định của Runtime mà nó gắn với. Cách cấu hình Agent được trình bày trong bài Agent trong Sharkly.
Kết nối Computer đầu tiên
Computer đầu tiên thường chính là chiếc máy bạn đang ngồi. Mở Settings, vào Computers, chọn Connect Computer, rồi chọn hướng thiết lập phù hợp với hệ điều hành của bạn. Với máy cá nhân được hỗ trợ, hướng được khuyến nghị là cài Sharkly Desktop, bộ này đóng gói sẵn local service và hướng dẫn bạn từng bước đăng ký. Bài hướng dẫn bắt đầu sẽ dẫn bạn đi hết quy trình này trong khoảng mười phút.
Sau khi kết nối, hãy xác nhận rằng ít nhất một Runtime báo Available. Đây là bước kiểm tra mà nhiều người bỏ qua: một Computer đã kết nối nhưng không có Runtime dùng được thì không thể thực thi công việc của Agent.
Có hai thiết lập chỉ dành cho desktop mà bạn cần lưu ý khi dùng laptop. Prevent sleep giữ máy luôn thức để một run dài không bị ngắt, còn Keep running with lid closed là một tùy chọn riêng của macOS. Cả hai chỉ xuất hiện trên máy local, không bao giờ có trên Computer remote.
Thêm một server remote
Laptop là Computer đầu tiên tốt, nhưng là Computer lâu dài tồi. Nó ngủ, nó di chuyển, và nó tranh giành bộ nhớ với IDE của bạn. Bước tiếp theo tự nhiên là một host remote luôn bật. Hãy cài Sharkly CLI và local service trực tiếp trên đó:
curl -fsSL https://file-assets.sharkly.ai/download/install.sh | bash
sharkly version
Sau đó, từ trang Computers, tạo một install token dùng một lần và chạy lệnh đăng ký mà nó đưa ra trên host đích:
sharkly computer register --install-token sit_...
Việc đăng ký sẽ ghi nhận Computer vào tổ chức của bạn, khởi động local service và kích hoạt phát hiện Runtime. Install token hết hạn sau 30 phút và chỉ dùng được một lần, dẫn tới một nguyên tắc vệ sinh mà tài liệu nói thẳng: đừng đưa nó vào image, script, Task hay comment có thể tái sử dụng.
Các loại thông tin xác thực ở đây được tách bạch có chủ đích. Personal access token không đăng ký computer, và install token không tạo phiên đăng nhập CLI cho người dùng. Personal access token shk_ xác thực bạn cho các lệnh tài nguyên như sharkly task list; install token sit_ tạo phiên mà local service sử dụng. Bề mặt lệnh rộng hơn là chủ đề của bài hướng dẫn Sharkly CLI và API.
Sau khi đăng ký, chính CLI đó cũng là bộ công cụ chẩn đoán của bạn: sharkly computer status và sharkly computer logs đọc trạng thái local trên host, trong khi sharkly computer list, show, usage và ping cho phép kiểm tra các Computer đã đăng ký từ bất cứ đâu. Host remote cần đúng những thứ mà laptop của bạn đã có: công cụ agent được cài và xác thực, cùng quyền truy cập Git cho các repository riêng tư.
Local, remote hay container: so sánh thẳng thắn
Không có một host đúng duy nhất. Tài liệu coi tất cả đều là Computer, và những đánh đổi cũng chỉ là những đánh đổi hạ tầng thông thường.
| Host | Phù hợp nhất với | Ưu điểm | Điều cần lưu ý |
|---|---|---|---|
| Máy local (Sharkly Desktop) | Thiết lập ban đầu, làm việc cá nhân, các run dùng thư mục chỉ định tận dụng checkout và cache sẵn có của bạn | Không cần thêm hạ tầng; đúng môi trường và thông tin xác thực của bạn; thư mục làm việc chỉ định chỉ khả dụng trên Computer local | Việc sleep và tắt máy làm gián đoạn tính sẵn sàng; các run tranh CPU và bộ nhớ với công việc của chính bạn |
| Server remote (CLI + local service) | Khối lượng công việc của nhóm, năng lực luôn bật, concurrency cao hơn | Luôn online; tách tải của agent khỏi laptop của mọi người; một host có thể phục vụ nhiều Agent | Bạn phải tự cài và xác thực Runtime cùng quyền truy cập Git; bạn phải tự lo hoạch định năng lực |
| Container hoặc cloud host được hỗ trợ | Môi trường thực thi có thể tái lập và dùng xong là bỏ | Môi trường sạch, có thể dựng lại; cùng luồng đăng ký qua install token | Token dùng một lần phải được tạo riêng cho mỗi lần đăng ký, tuyệt đối không nhúng vào image tái sử dụng |
Cặp lựa chọn quan trọng nhất: dùng Computer local khi bạn muốn Agent làm việc trong môi trường mà bạn đã tin tưởng; dùng Computer remote khi các Task cần tiếp tục chạy trong lúc laptop của bạn đã gập lại. Nhiều đội rốt cuộc dùng cả hai, vì định tuyến công việc sang một host khác chỉ là thay đổi cấu hình, không phải thay đổi quy trình làm việc.
Điều gì diễn ra trong một run
Khi một Task được giao cho một Agent chuyển sang trạng thái sẵn sàng, Sharkly xếp một run vào hàng đợi và điều nó tới Computer đã chọn. Trước khi Runtime khởi chạy, local service có thể chờ đủ năng lực concurrency, chuẩn bị thư mục, lấy các repository về, và chiếu các biến môi trường được phép.
Việc chuẩn bị thư mục diễn ra theo một trong hai chế độ. Ở chế độ Temporary, mỗi Task có một thư mục riêng biệt, và các run gắn với repository có thể chuẩn bị một Git worktree mới từ dữ liệu repository đã cache; hãy dùng chế độ này cho hầu hết công việc với repository và mỗi khi nhiều Task có thể cùng sửa một codebase song song, như đã phân tích trong bài cách Sharkly chạy các Agent song song mà không xảy ra xung đột merge. Ở chế độ Specified, run dùng lại một thư mục tuyệt đối đã cấu hình trên một Computer local, cùng với các dependency và cache đã có trong đó, và mỗi thư mục chỉ định phục vụ một run tại một thời điểm.
Trong lúc Runtime làm việc, tiến độ được truyền về liên tục. Trạng thái run đi qua Queued, Dispatched, Waiting for local directory, Running, rồi tới Completed, Failed hoặc Canceled. Các trace event, lệnh gọi công cụ và phản hồi cuối cùng đều quay về Task. Computer là nơi việc thực thi diễn ra về mặt vật lý; Task là nơi việc nghiệm thu diễn ra.
Concurrency: một Computer nên gánh bao nhiêu?
Mỗi Computer có một giới hạn concurrency cho task, và mỗi Agent có mức tối đa riêng cho số Task chạy song song. Các giá trị mặc định được đặt thấp một cách có chủ đích: một Agent dùng thư mục tạm mặc định ở mức 50% giới hạn của Computer, còn Agent dùng thư mục chỉ định mặc định bằng số thư mục đã cấu hình. Nếu bạn đẩy giá trị thủ công lên cao hơn con số đó, sản phẩm sẽ cảnh báo rằng các thao tác ghi có thể đụng nhau. Hãy tin vào cảnh báo đó.
Lời khuyên trong tài liệu là thứ bạn nên theo: concurrency cao hơn tiêu tốn nhiều CPU, bộ nhớ, dung lượng đĩa, năng lực của nhà cung cấp và băng thông repository hơn, nên chỉ tăng sau khi cấu hình hiện tại xử lý ổn định được khối lượng công việc đang có. Năng lực của nhà cung cấp là trần mà nhiều người quên: mười run song song qua cùng một tài khoản model sẽ chạm giới hạn tốc độ nhanh gấp mười lần. Về các mô hình mở rộng quy mô, xem bài chạy nhiều Claude Code agent song song.
Một Agent đang online vẫn có thể còn công việc trong hàng đợi chỉ đơn giản vì concurrency hoặc số thư mục đã đầy. Trạng thái Queued là một trạng thái lành mạnh, không phải bị kẹt.
Chia sẻ, quyền sở hữu và giữ host sạch sẽ
Khi một Computer đã phục vụ cho cả nhóm, có ba cơ chế kiểm soát cần lưu tâm. Visibility quyết định ai có thể nhìn thấy và sử dụng nó: Personal, Organization hoặc Space. Quyền sở hữu là chuyện khác: chủ sở hữu có thể chuyển nhượng Computer và là người duy nhất có thể xóa nó. Và với một Computer cá nhân đặt tại máy local, chủ sở hữu kiểm soát việc những Organization nào được phép dùng nó, nên khi bạn tham gia một tổ chức mới, laptop của bạn không bao giờ bị tự động đem ra dùng mà bạn không biết.
Các run của Agent để lại thư mục làm việc, cache và artifact, nên tính năng dọn dẹp được tích hợp sẵn. Theo mặc định, nó đánh dấu các run đã hoàn thành hoặc đã hủy là có thể dọn sau khoảng 7 ngày, có thể áp một ngưỡng dung lượng trống tối thiểu, và không bao giờ đụng tới công việc đang chạy hay đang trong hàng đợi, các run được ghim, hay các run thất bại vẫn đang được điều tra. Muốn kiểm tra ngay, sharkly daemon disk-usage báo cáo mức sử dụng và sharkly daemon cleanup xem trước những gì sẽ được giải phóng.
Bắt đầu với chiếc máy bạn đang có
Khái niệm Computer trả lời một câu hỏi mà các nền tảng hosted thích bạn đừng đặt ra: agent đang chạy trên hạ tầng của ai? Ở đây câu trả lời là của bạn, từ một chiếc laptop cho tới cả một đội server dùng chung. Bạn không cần cả đội server ngay từ ngày đầu. Hãy kết nối một Computer, xác nhận một Runtime báo Available, tạo một Agent, và giao cho nó một việc nhàm chán nào đó. Khi những giới hạn của laptop lộ ra, hãy đăng ký thêm một server bên cạnh nó. Tài liệu Sharkly đi sâu hơn vào từng thiết lập được nhắc ở đây.
Câu hỏi thường gặp
Computer trong Sharkly là gì?
Computer là host thực thi cho công việc của Agent: một thiết bị, server hoặc container đã kết nối, cung cấp hệ điều hành, tệp, thông tin xác thực, quyền truy cập mạng và các công cụ mà Agent cần. Một local service nhỏ kết nối nó với Sharkly, phát hiện Runtime, nhận các run và truyền tiến độ trở lại Task.
Sharkly có chạy code của tôi trên cloud riêng của nó không?
Không. Công việc của Agent được thực thi trên những Computer mà bạn kết nối, tức là những máy do bạn kiểm soát. Sharkly điều phối việc phân công, xếp hàng đợi, tiến độ và review quanh những host đó. Việc dùng model cũng thuộc về bạn: nó diễn ra qua subscription hoặc API key đã cấu hình trong các công cụ coding được cài trên từng Computer.
Làm sao để kết nối một server remote thành Computer?
Cài Sharkly CLI trên host, tạo một install token dùng một lần từ trang Computers, rồi chạy sharkly computer register --install-token sit_... trên máy đó. Token hết hạn sau 30 phút và chỉ dùng được một lần, nên tuyệt đối đừng nhúng nó vào image hay script. Sau đó cài và xác thực các công cụ agent bạn muốn dùng, rồi xác nhận từng Runtime báo Available.
Vì sao Computer của tôi báo Online nhưng run không khởi chạy?
Online chỉ có nghĩa là local service đang gửi heartbeat; nó không có nghĩa là Runtime đã chọn có thể thực thi công việc. Hãy mở phần chi tiết Computer và kiểm tra trạng thái năng lực của Runtime: cả Needs configuration lẫn Not installed đều chặn run. Lệnh sharkly computer ping xác nhận liệu một Runtime cụ thể có hoàn thành một vòng round trip hay không.



