---
title: "My Machines"
description: "基於 Cursor 官方 My Machines 文件解釋本機 worker、worker= 路由、repo 匹配、artifacts、網路和 MCP 邊界。"
verifiedAt: "2026-05-09"
---

My Machines 讓 Cloud Agent 使用你已經有的機器：筆記本、devbox、遠端 VM 或團隊內網工作站。

> [!NOTE]
> **閱讀目標**：讀完本章，你應該能把一臺已有開發機註冊給 Cloud Agent，並解釋為什麼任務會在這臺機器執行、什麼時候不會 fallback、哪些資料會離開機器。

## 1. 先判斷

My Machines 適合“這臺機器已經能跑專案”的場景。Cloud Agent 的推理和任務迴圈仍在 Cursor 雲端，但檔案編輯、終端命令、瀏覽器動作和工具呼叫會在你的機器上執行。

這解決的是三類問題：

| 問題 | My Machines 的價值 |
| --- | --- |
| 本地依賴複雜 | 直接複用現有 repo、依賴、構建快取和測試輸出 |
| 內網服務不可公開 | worker 從內網主動連 Cursor，不需要開放入站埠 |
| 金鑰和產物不想進臨時 VM | secrets、cache、build outputs 留在你的機器上 |

不適合把它當成無狀態雲 runner。它依賴 worker 程序持續執行，也依賴 worker 所在目錄的 git remote 正確匹配目標 repo。

## 2. 工作方式

worker 會從你的機器向 Cursor 發起 outbound connection。Cursor 雲端 agent 透過這條連線下發 tool calls，你的機器執行實際操作。

```mermaid
flowchart TD
  User["Start agent from Web / Slack / GitHub / Linear"] --> Cloud["Cursor cloud agent loop"]
  Cloud --> Worker["Outbound connection to your worker"]
  Worker --> Repo["Local repo checkout"]
  Worker --> Tools["Terminal / editor / browser / MCP stdio tools"]
  Worker --> Artifacts["Optional artifacts upload"]
  Worker --> Result["Branch / logs / comments / dashboard result"]
```

這條鏈路沒有入站埠、公開 IP 或 VPN tunnel 要求。如果你的公司網路只允許代理出站，worker 環境裡設定 `HTTPS_PROXY` 或 `https_proxy`。

## 3. 快速啟動

官方路徑是先安裝 `agent` CLI，再登入，再啟動 worker。

```bash
# macOS, Linux, WSL
curl https://cursor.com/install -fsS | bash

# Windows PowerShell
irm 'https://cursor.com/install?win32=true' | iex
```

常用命令：

| 動作 | 命令 |
| --- | --- |
| 檢查 CLI | `agent --version` |
| 瀏覽器登入個人機器 | `agent login` |
| 在當前 repo 啟動 worker | `agent worker start` |
| 給機器命名 | `agent worker start --name "my-devbox"` |
| 指定 repo 目錄 | `agent worker start --worker-dir /path/to/repo` |
| 使用 API key | `agent worker start --api-key "your-api-key"` |
| 使用 user-scoped token | `agent worker start --auth-token "token"` |
| 從檔案讀取長期 token | `agent worker start --auth-token-file /var/run/cursor/token` |

`--auth-token-file` 對 Kubernetes 或長期 devbox 更實用，因為掛載檔案可以被輪換；環境變數通常在程序啟動時固定。

## 4. 從聊天入口指定機器

Slack、GitHub、Linear 這些入口預設不一定知道你要用哪臺機器。要指定 My Machines，使用 `worker=` 或 `machine=`。

| 入口 | 示例 |
| --- | --- |
| Slack | `@Cursor worker=my-devbox fix the flaky test` |
| GitHub | `@cursoragent machine=my-devbox fix the failing build` |
| Linear | 在 issue body 寫 `worker=my-devbox` 或使用 `worker / my-devbox` 這類父子 label |

Cursor 只有在三個條件同時成立時才會把任務路由到這臺機器：

1. 機器屬於觸發請求的 Cursor 使用者。
2. 機器的 `--name` 和請求中的 `worker=<name>` 或 `machine=<name>` 匹配。
3. 機器註冊的 repo 與觸發入口解析出的目標 repo 匹配。

repo 來源不是機器名，而是觸發入口：

| 入口 | repo 解析 |
| --- | --- |
| Slack | 優先看訊息裡的 `repo=`，然後是頻道預設 repo、使用者預設 repo、團隊預設 repo |
| Linear | 從 issue、project、`repo=`、labels 或 dashboard 預設值解析 |
| GitHub | 使用提到 `@cursoragent` 的 issue、PR 或 review comment 所屬 repo |

每臺機器的註冊 repo 來自啟動 worker 的目錄中的 git remote。要服務多個 repo，就在每個 repo checkout 裡分別啟動 worker。

## 5. 失敗時不會亂跑

如果 `worker=<name>` 找到同名機器，但這臺機器註冊的是另一個 repo，Cursor 會拒絕任務，而不是把 repo A 的任務丟到 repo B 的 checkout。

如果沒有機器同時匹配 linked user、machine name 和 target repo，請求也會失敗，不會自動 fallback 到其他環境。

常見修復：

- 確認 GitHub / Slack / Linear 賬號和 Cursor 使用者已正確關聯。
- 確認 worker 在目標 repo checkout 下啟動。
- 確認 git remote 指向目標 repo。
- 確認機器名拼寫一致。
- 用 `agent worker start --debug` 生成 preflight report，看認證、repo label 和可見 worker 狀態。

`self_hosted`、`pool=` 和單獨的 `repo=` 不會指定 My Machines。它們屬於 Self-hosted Pool 路由；如果要用個人機器，必須配 `worker=` 或 `machine=`。

## 6. Artifacts 和網路

artifacts 行為與 Cursor-hosted agents 一致：agent 在 worker 內生成截圖、影片或日誌引用，再由 worker 透過 HTTPS 上傳到 Cursor-managed storage。

worker 至少需要 outbound HTTPS 訪問：

| Host | 用途 | 阻斷後結果 |
| --- | --- | --- |
| `api2.cursor.sh` | agent session | worker 無法啟動或維持 session |
| `api2direct.cursor.sh` | agent session | worker 無法啟動或維持 session |
| `cloud-agent-artifacts.s3.us-east-1.amazonaws.com` | artifact 上傳 | session 繼續，但 PR 嵌入、dashboard preview 或通知附件缺失 |

如果防火牆只支援 wildcard，`*.s3.us-east-1.amazonaws.com` 能覆蓋 artifacts host，但會放開該 region 的其他 bucket。能配精確 host 時優先精確 host。

## 7. MCP 路由邊界

My Machines 下 MCP 按 transport 分流：

| Transport | 執行位置 | 適合場景 |
| --- | --- | --- |
| Command / stdio | 你的機器 | 訪問內網 API、本地服務、資料庫代理或私有網路 |
| HTTP / SSE URL | Cursor backend | Cursor 管 OAuth、session cache 和 HTTP 連線 |

如果 MCP server 必須訪問私有網路，優先用 command / stdio，因為程序直接跑在 worker 機器上。HTTP MCP 則從 Cursor backend 發起連線，適合公開可達或已經有 OAuth 邊界的服務。

## 本章自檢

上線前至少回答這 4 個問題：

1. worker 是從哪個 repo checkout 啟動的，git remote 是否匹配目標 repo？
2. 觸發入口中是否顯式寫了 `worker=` 或 `machine=`？
3. 防火牆是否允許 `api2.cursor.sh`、`api2direct.cursor.sh` 和 artifact host？
4. artifacts、日誌和 PR diff 中是否可能出現 secrets、客戶資料或內網截圖？

透過標準：你能讓 Cloud Agent 在指定機器上跑一個真實任務，並能用 debug report、worker name、repo remote 和 PR 結果解釋整條鏈路。

## 官方來源

- [Cursor My Machines](https://cursor.com/docs/cloud-agent/my-machines.md) —— 官方 My Machines、worker 啟動、worker routing、artifacts、networking 和 MCP 行為。
- [Cursor Self-Hosted Pool](https://cursor.com/docs/cloud-agent/self-hosted-pool.md) —— 官方企業 worker pool 路由。
- [Cursor Cloud Agent Security](https://cursor.com/docs/cloud-agent/security-network.md) —— 官方 Cloud Agent 安全和網路邊界。

## 接下來去哪

<Cards>
  <Card title="Self-hosted Pool" description="繼續學習企業級共享 worker fleet、labels、routing 和監控。" href="/zh-Hant/docs/cursor/official/04-cloud-agents/54-self-hosted-pool" />
  <Card title="Cloud Agent Capabilities" description="回看 artifacts、remote desktop 和 MCP 安全差異。" href="/zh-Hant/docs/cursor/official/04-cloud-agents/52-capabilities" />
</Cards>
