OpenHands 1.15 教學:安裝、模型設定與 workspace 排錯
OpenHands 是可以在工作環境中讀取檔案、修改程式碼、執行終端機指令,再依測試結果繼續工作的開源 AI Agent。它和只在編輯器裡補完程式碼的工具不同,因此安裝時不只要確認模型能回覆,也要確認 Docker、掛載路徑、權限和驗證流程都可控。
本文已依 OpenHands 1.15.0(2026-08-21) release 與目前官方文件更新。你會完成本機 GUI 安裝、模型與 API Key 設定、workspace 路徑確認和第一個可回復任務,也會知道 Docker、Windows WSL、權限和舊映像問題要分開排查。
OpenHands 1.15 有哪些值得注意的變更
1.15.0 的變更會影響第一次設定和日常檢查,主要包括:
| 變更 | 實際用途 |
|---|---|
| Getting started checklist 可在設定中切換 | 初次設定可以逐項完成,也能在熟悉後關閉提示 |
| Files view 顯示 workspace path | 直接確認 Agent 目前看到的實際工作目錄 |
| local agent-server 增加 LLM provider connections UI | 在介面中管理模型供應商連線,不必只靠舊教學中的環境變數 |
| Automation catalog 可以安裝包含 script bundle 的項目 | 將可重複的工作流程納入 automation,而不是每次從空白提示開始 |
| Conversation overview 與 unified commits drawer | 在較長任務中查看對話摘要和變更提交狀態 |
| 修正 agent profile 靜默降級與 home LLM 選擇被覆蓋 | 發現模型不符預期時,先檢查目前 profile 和設定頁選擇 |
這些是產品功能與 bug fix,不代表 Agent 會自動安全地修改任何 repository。仍要用 Git branch、限定掛載目錄和可驗證的小任務控制變更範圍。
開始前的環境與安全邊界
官方本機設定路徑需要:
- Docker Desktop 或 Docker Engine 正在執行,
docker ps能正常完成。 - Python 3.12 以上版本。
uv套件工具;預設 MCP server 也會使用它。- 可用的模型 API Key,或已設定好的本機模型端點。
macOS 可以直接在終端機執行;Linux 依官方 Docker 環境準備。Windows 原生 PowerShell 和 Command Prompt 不是本文的執行入口,請先使用 WSL,再確認 Docker Desktop 已啟用 WSL 2 engine 和該 distribution 的整合。
在把 repository 交給 Agent 前,先建立 Git branch、執行 git status --short,並確認目前工作目錄沒有你不想被讀取或修改的憑證。第一次測試最好使用不含 secrets 的小型專案。
掛載目錄代表 Agent 可以修改檔案
--mount-cwd會把目前所在的資料夾掛載給 OpenHands。它不是唯讀模式;請先確認目前路徑、Git 狀態和檔案權限,再啟動 Agent。
用官方 CLI launcher 安裝
先依 uv 官方安裝說明 安裝 uv,再安裝 OpenHands:
uv tool install openhands --python 3.12進入準備交給 Agent 的專案目錄,啟動 GUI:
cd /path/to/your-projectopenhands serve --mount-cwdCLI launcher 會檢查 Docker、拉取需要的映像並啟動 GUI server。完成後開啟:
http://localhost:3000如果只想先確認介面,不希望 OpenHands 讀取目前專案,可以在不含敏感檔案的目錄執行:
openhands serve日後更新 launcher:
uv tool upgrade openhands --python 3.12官方也提供直接執行 Docker image 的方式,但 image、agent-server tag 和啟動參數會隨版本更新。第一次安裝優先使用 launcher;若要固定 image 或部署到共用環境,應以目前 Local setup 官方文件 的指令為準,不要複製舊文章中的 ghcr.io/all-hands-ai/ 路徑。
設定 LLM provider、model 與 API Key
第一次開啟 OpenHands 時會看到設定流程,也可以進入 Settings → LLM。基本設定依序完成:
- 在
LLM Provider選擇供應商。 - 在
LLM Model選擇模型。 - 填入
API Key。 - 按下
Save Changes。
目前官方 LLM 文件列出 OpenHands、Anthropic、OpenAI 和 Mistral AI 等已驗證供應商。模型名稱、可用性和費用都會變動,請以設定頁當下的清單與供應商文件為準,不要把舊文章中的 model id 當成固定答案。
如果基本清單沒有你的端點,開啟 Advanced:
Custom Model:依 LiteLLM provider 格式填入 provider prefix。Base URL:填入相容 API 或自架服務的端點。API Key:填入該端點的金鑰。
設定變更會套用到新的 conversation;官方文件提醒,舊 conversation 若要使用新的 LLM,可能需要重新啟動。1.15 的 provider-connections UI 適合用來檢查目前儲存的連線,但仍要確認 profile 沒有把 home LLM 選擇覆蓋掉。
API Key 與費用雲端模型通常需要另外計費。先在供應商後台設定用量上限,不要把 Key 寫進 repository、prompt 或 shell history。OpenHands Cloud 的登入和模型額度也有自己的條件,不能把網站帳號當成無限 API 額度。
先確認 workspace path,再交付任務
啟動後先在 Files view 查看 workspace path,確認它就是預期的 repository。這個 1.15 新增的資訊很適合抓出「在錯誤資料夾啟動」的問題;不要只看瀏覽器 URL 或對話標題。
第一個任務先要求唯讀盤點:
先讀取這個專案的 README 與套件腳本,不要修改檔案。告訴我使用哪個套件管理器、可執行哪些測試,並列出你讀過的檔案。確認 workspace、模型和工具呼叫都正常後,再交付一個小而可回復的修改:
建立 hello-openhands.txt,內容只有 OpenHands is ready。完成後讀回檔案,並執行 git diff -- hello-openhands.txt 回報結果。不要修改其他檔案。最後回到自己的終端機驗證:
git status --shortgit diff -- hello-openhands.txt這個循序流程能確認四件事:Agent 看到正確目錄、模型能呼叫工具、檔案真的被建立,以及實際 diff 沒超出要求。若你同時使用多個 coding agent,可以先用 Git worktree 管理多個 AI coding agent 分離工作副本,降低互相覆蓋檔案的機會。
常見故障排除
Launch docker client failed
先確認 Docker daemon,而不是先重裝 OpenHands:
docker ps如果命令本身失敗,先啟動或修復 Docker,再重新執行 openhands serve。使用 Docker Desktop 時,依目前環境檢查 Docker socket、WSL 2 engine 和必要的整合設定。
一開始就出現 Permission Denied
先看 OpenHands 狀態目錄和 workspace 的擁有者:
ls -ld ~/.openhandsls -ld /path/to/your-project如果 ~/.openhands 意外屬於 root,確認路徑後再把擁有者改回目前使用者,而不是把整個家目錄開成所有人可寫:
sudo chown -R "$(id -un)":"$(id -gn)" ~/.openhands修改前先確認沒有把命令套到錯誤目錄;workspace 也必須讓執行 OpenHands 的使用者擁有必要權限。
Windows 能開介面,但指令或掛載異常
確認 uv、openhands 和 Docker 相關命令都在 WSL distribution 中執行,不要混用 PowerShell 的路徑。再到 Docker Desktop 檢查 WSL 2 engine 和該 distribution 的 integration;若 GUI 可開但 Files view 路徑不對,先停止服務並從正確的 WSL workspace 重新執行 openhands serve --mount-cwd。
舊教學的 Docker image 拉不到
舊文章可能仍使用 All-Hands-AI 組織或 ghcr.io/all-hands-ai/ image。OpenHands 已改用新的組織與文件路徑;不要只替換一個 tag,請回到官方 Local setup 文件重新確認 image、agent-server 和版本組合。CLI launcher 能減少手動拼接這些版本的機會。
Agent 像聊天機器人,不會操作檔案
依序檢查:
- 是否用
--mount-cwd啟動,且啟動時所在路徑正確。 - Files view 顯示的 workspace path 是否就是目標 repository。
- Agent 是否有讀取和寫入該目錄的權限。
- LLM provider、model 和 API Key 是否已儲存到目前 conversation 使用的設定。
- 本機模型的 context length 是否足夠,是否持續出現工具格式錯誤。
前四項都正常但仍失敗時,問題可能在模型能力或相容端點,不一定是 OpenHands 安裝錯誤。先改用一個小任務和官方文件列出的 provider 做對照。
OpenHands CLI 的另一種入口
安裝 launcher 後,也可以在終端機使用互動式 CLI:
openhands loginopenhandsCLI 會引導登入 OpenHands Cloud 或設定模型;也可以直接帶入小型任務:
openhands -t "Read the test failure and explain the likely cause without editing files"GUI 適合觀察完整執行過程,CLI 適合已經在終端機工作的開發者。兩者都應遵守同一個原則:先限制 workspace,要求 Agent 回報驗證,再人工查看 diff。
如果你正在比較終端機 coding agent,可以接著看 OpenCode Go 的安裝與模型設定;那篇討論另一種終端機工作流,這篇則聚焦 OpenHands 的 Docker 隔離、workspace 掛載和 Agent 驗證。
常見問題
Q: OpenHands 1.15 一定要使用 Docker 嗎?
A: 官方本機 GUI launcher 的流程會檢查並使用 Docker;文件也提供傳統 pip 安裝,但預設 MCP server 仍需要 uv,因此不能把「安裝 Python 套件」理解成完全不需要 Docker 的等價路徑。依你的執行模式查看目前官方文件。
Q: 設定了新的 LLM,舊 conversation 為什麼還像在用舊模型?
A: 官方 LLM 設定文件說明,新的 LLM 會套用到新的 conversations;舊 conversation 可能需要重新啟動。1.15 也修正了 home LLM dropdown 和 agent profile 選擇的優先順序,請重新檢查目前 profile 和 Settings → LLM。
Q: --mount-cwd 可以掛載整個家目錄嗎?
A: 不建議。它會讓 Agent 看到並可能修改掛載範圍內的檔案;請只掛載專案 workspace,先移除 secrets,並以 Git branch 和可回復的小任務驗證。若需要跨多個專案工作,使用分開的 worktree 或專用資料夾。
參考資料:
回報錯字、失效連結,或告訴我你想看的延伸主題。