一支金鑰、三個欄位,一個綠色勾勾
工作區裝好了,但現在打字進去什麼都不會發生:它還沒接上任何 AI 供應商。這篇幫你接一個——申請一個 OpenRouter 帳號跟金鑰,再設定三個欄位,把這支金鑰變成一條真正能用的路線。
Pi Agent 給你的是工作台,不是引擎
Pi Agent 走的是 BYOK——自帶金鑰。這個附加元件不會幫你決定要用哪家 AI,也不會幫你付錢:你得自己開帳號、建金鑰、貼進來。這件事帶來三個結果。
想像一套音響。擴大機接好了,喇叭也擺上架了,但沒接訊源之前什麼都不會響。這篇要接的就是那個訊源。
- 你自己挑模型,之後想換也不用重裝任何東西。
- 你直接付錢給供應商;附加元件本身不收費。
- 金鑰留在你自己的硬體上,只會送去你設定的那家供應商。
OpenRouter 這篇先示範它,有三個實際的理由:一支金鑰透過一個相容 OpenAI 格式的閘道,就能碰到好幾家廠商的模型家族;註冊只要一個 email 或它支援的登入方式,照當下頁面要求的驗證走就好;而且它本來就是為多地區的 API 存取設計的,只是模型與付款方式仍依國家而異。
它是一個閘道,不是模型開發商本身:一支金鑰接到的目錄會隨時間變動,而直接跟廠商申請的話,你拿到的只有那一家自己的目錄;資料怎麼處理,依循的是 OpenRouter 的條款加上你選的模型供應商,還有你自己的隱私設定。沒有哪家供應商什麼任務都是最強的,很多人會同時掛兩三家——那是第 6 篇的事。現在,先讓一支金鑰能動起來就好。
一段會花你錢的短字串
OpenRouter 金鑰是一段機密字串,通常開頭是 sk-or-v1-。Pi Agent 每次請求都會帶著它送出去;OpenRouter 收到後會檢查、把用量算進你的帳戶,再把請求送到你選的模型。
它的作用像餐廳桌上的點餐卡。認的是桌號,不是你這個人,寫在上面的東西全部算同一張帳單。誰拿到這張卡,都能點餐。
從 Pi Agent v0.13.0 起,供應商金鑰存在本機的 /data/pi-agent/models.json ,在你 Home Assistant 主機上、附加元件的持久化資料裡。WoowTech 收不到這支金鑰,但任何對主機或這份資料有足夠存取權的人,都讀得到這個檔案。
flowchart LR A["你的瀏覽器"] --> B["你 HA 主機上的 pi-web"] B --> C["/data/pi-agent/models.json
金鑰存放的地方"] B --> D["https://openrouter.ai/api/v1
你設定的端點"] D --> E["上游模型
負責寫出回答"]
把它當成付款憑證看待。三個地方是安全的:Pi Agent 的 Models 面板;密碼管理器,例如 1Password、Bitwarden、Apple Passwords 或 KeePass,搭配夠強的主密碼與多因子驗證;以及你實際測過還原沒問題的加密離線備份。以下這些地方絕對不要放:
- 公開的程式碼倉庫。 掃描工具找外洩金鑰非常快,光刪掉最新那次 commit 沒用,只要值還留在 Git 歷史裡就等於沒刪。
- 聊天群組與社群討論串。 其他成員跟平台本身都可能留著這則訊息。
- 共用文件。 連結分享的權限設定很容易設錯,之後也可能被改動。
- 普通的電子郵件。 不要用信件寄送 API 金鑰。
- 截圖與錄影。 字小到肉眼看不清楚,OCR 照樣讀得出來。
- 求助貼文。 用一眼就看得出是假的範例,而且要遮掉整段機密,不是只遮尾巴:
sk-or-v1-REDACTED。
附錄 B 說 debug 等級的 log 裡,憑證會被遮成 ***。就算如此,分享 log 之前還是自己先讀一遍再說。
apiKey 並存檔。檢查你的用量與帳戶活動有沒有你不認得的請求,如果付費額度或帳戶資訊可能受影響,就照帳戶裡顯示的客服流程走。換金鑰能阻止舊金鑰之後再被使用,但無法撤銷已經發生過的請求。.tar 檔案透過你信任的方式搬過去,在那邊還原。在手機或電腦上建立金鑰
後台的文字標籤會變。如果跟下面寫的不一樣,一律以網站上實際看到的為準。
-
步驟 1
打開官方網站
前往
https://openrouter.ai/settings/keys。確認網址列顯示的是 openrouter.ai,而不是長得很像的假網址,例如openrouter.example。 -
步驟 2
登入,或建立新帳號
用 OpenRouter 目前提供的登入方式,email 或它支援的身分供應商都行,照畫面要求完成驗證。不要沿用你的 Home Assistant 密碼。
-
步驟 3
先讀隱私與資料設定
在儲值或送出任何私密內容之前先做這件事:請求可能會經過你選的模型供應商處理,所以設定跟模型要挑適合你要送出的內容的。
-
步驟 4
打開 API Keys 頁面
在後台裡打開 API Keys ,在 Settings 裡面。如果文字標籤變了,就跟著官方設定頁當下的連結走。
-
步驟 5
點 Create Key
OpenRouter 可能會讓你選填這支金鑰的額度上限。真的要設,就設一個符合你自己預算的數字。
-
步驟 6
取一個之後認得出來的名字
用它所屬的安裝來命名:
pi-agent-home,pi-agent-office,test-2026-08。分開的金鑰讓之後換金鑰、查用量都輕鬆很多。 -
步驟 7
建立後,用 Copy 按鈕複製
用 Copy ,不要自己手動選字,才不會漏掉字元。這是唯一一次看得到完整值的機會;之後顯示的遮蔽預覽,像是
sk-or-v1-…,是沒辦法還原回完整值的。 -
步驟 8
存進你的密碼管理器
現在就好好存起來。暫時記在本機的一則備忘也可以——等下面的設定完成後就把它刪掉。
Token、額度,跟帳戶要求你做的事
OpenRouter 用 token 計算用量,而 token 數量因語言、因模型而異,所以不要用字數去推算帳單。Pi Agent 送出的是你的提示,加上 與 每次請求相關的對話上下文,而且回覆本身也要算 token。
它是像水費那樣計量的,不是像月租那樣包月。一段很長的對話就像洗很久的澡:因為之前講過的一切都會當成背景再送一次,水表一直在跑。
費率跟可用性會變動。請以 OpenRouter 目錄跟你自己後台看到的數字為準,不要以任何教學(包括這篇)上印的數字為準。
| 要看什麼 | 去哪裡查 | 值得知道的事 |
|---|---|---|
| 輸入 token | 該模型目前的輸入費率 | 對話歷史可能會當成上下文再送一次 |
| 輸出 token | 該模型目前的輸出費率 | 長回答會消耗更多輸出 token |
| 免費版模型 | 這個模型 ID 目前有沒有免費版 | 可用性與限制會變動;不要當成是正式生產等級的容量 |
| 帳戶額度 | 你的餘額與付款方式 | 只以你自己帳戶裡看到的數字為準 |
盯著實際用量看,不要自己編一個月費估算。花費跟提示與回覆的長度、上下文長度、選的模型,以及在影片流程裡的生成步驟數都有關。如果後台提供單支金鑰的額度上限,就設一個;每個流程各自的用量各自檢查,不要假設有固定的花費。
一本路線登記簿,不是一份模型清單
工作區側欄左下角有三顆小按鈕: Models, Skills, Settings。Models 打開的是設定對話框裡的 Models 分頁——一本服務目錄,每張卡片代表你跟一家公司或閘道談好的一份約定,裡面有一個端點、一支憑證,跟它自己的模型清單。
- Add Provider 會再建一張卡片——現在用一次,第 6 篇還會再用一次接第二條路線。
- Test 是最關鍵的按鈕:綠燈代表這組設定真的能完成一次請求,不只是表單存檔而已。
- Save 會寫進
/data/pi-agent/models.json,這在官方文件記載的 Home Assistant 備份路徑裡有包含。
Add Provider 打開的是一份目錄,不是空白表單,分類方式是依供應商的連線方式,不是依品牌。
- CUSTOM 底下只有一張卡片 ——「OpenAI/Anthropic compatible」,副標是 Custom endpoint format。這篇教學用的就是這張卡片,因為它要你自己手動填端點跟金鑰。
- SUBSCRIPTIONS 底下全部標著 OAuth。 這裡是登入你已經付費的方案,不是貼一段機密字串——順帶一提 OpenRouter 也出現在這裡,叫
OpenRouter OAuth,但這篇走的不是這條路。 - API KEY 卡片各自標著模型數量:Amazon Bedrock 121 個模型、Anthropic 14 個模型。這個數字代表這一個項目碰得到多少模型。
- OpenRouter,366 個模型,就用這個名字列在清單裡。一個帳號、一支金鑰,這個數字就是這篇選它示範的理由。
- 單一廠商的項目小很多 ——xAI 3 個、Z.AI 7 個、Together 21 個。每一家都得自己另外開帳號。
- Radius 顯示 0 個模型,所以出現在這份清單裡,不代表現在就有東西可以選。
所以進去的路有兩條。 OpenRouter 卡片會自動幫你填好端點;這篇是在自訂卡片上手動打出來,不管走哪條路,那三個要設的東西都一樣。
光有金鑰,Pi Agent 什麼都不知道
一段開頭是 sk-or-v1- 的值,只是一份憑證:Pi Agent 沒辦法從它推算出端點、API 模式或模型 ID。這是一次性的設定;之後你會回來 Models 面板,只會是為了換金鑰、加供應商,或改要用哪些模型。
它就是一個地址、一個名字,加一份點餐單。 baseUrl 是要敲哪扇門。 apiKey 是誰在敲門。 models[].name 是你在點什麼。三個裡面隨便錯一個,門都開不了。
| 欄位 | 代表什麼 | OpenRouter 這裡填什麼 |
|---|---|---|
| baseUrl | 接收 Pi Agent 請求的端點 | https://openrouter.ai/api/v1 |
| apiKey | 認證用量算在你帳戶頭上的那段機密字串 | 步驟 7 拿到的完整金鑰,開頭是 sk-or-v1- |
| models[].name | 透過這條路線要請求的精確目錄 ID | anthropic/claude-sonnet-4 |
三個都要對得上。上面那個模型 ID 是這篇教學在倉庫裡驗證過的;目錄會變動,所以先確認它還在清單裡,不在的話就複製一個目前可用模型的精確 ID。
-
步驟 1
打開 Models,選自訂項目
點 Models,接著 Add Provider,選底下的卡片,在 CUSTOM ,標著 OpenAI / Anthropic compatible。表單裡有 Name、API mode、baseUrl、apiKey,接著是 Models 清單。
-
步驟 2
填一個之後看得懂的 Name
OpenRouter就夠了。Pi Agent 是靠 Name 分辨卡片,不是靠端點,所以同一個端點的第二支金鑰得取自己的名字,例如OpenRouter-office。 -
步驟 3
把 API mode 設成 openai-completions
有四個選項
openai-completions,openai-responses,anthropic-messages與google-generative-ai。這個 base URL 暴露的是相容 OpenAI 的 Chat Completions 介面,所以要選openai-completions;模式選錯,回來的是 400 或 404,不會有什麼有用的提示。官方文件記載的直接 Anthropic 設定用的是anthropic-messages,Google 對應的是google-generative-ai,官方文件記載的 OpenAI Responses 端點用的是openai-responses。附錄 B 是供應商對照表。 -
步驟 4
精確輸入 base URL
Copy
https://openrouter.ai/api/v1不要多加任何東西。用 HTTPS。不要在後面加/chat/completions,不要留結尾的斜線,也不要貼成後台裡的路徑,例如/settings/keys。 -
步驟 5
把金鑰貼進 apiKey
從你的密碼管理器貼過來。這個欄位預設會遮住值;眼睛圖示可以短暫顯示出來。檢查頭尾有沒有多餘的空白,有的話用 Backspace 或 Delete 刪掉——空白字元是這裡貼失敗最常見的原因。要看完整的值,用一個本機的文字欄位,絕對不要用共用文件或任何你可能會截圖的地方。
-
步驟 6
加模型,然後按 Test 跟 Save
點 Add Model,輸入
anthropic/claude-sonnet-4當名字,再從contextWindow這個數字要從那個模型自己的詳細頁面拿,絕對不要拿別的模型的。接著按 Test:綠色勾勾代表成功了,就按 Save ,關掉面板。不用重啟任何東西;下一次請求就會用新設定。
reasoning 只有在模型跟路線真的支援的時候才打開。不要啟用 deepSeekThinkingCompat 除非你的模型需要那個相容模式,也不要設定 thinkingLevelMap ,除非有針對那個模型的具體指引。
- 訊息框下面那顆按鈕,寫的是目前的模型名稱 ——這裡是
GPT-5.6 Sol。點它會打開這份清單。 - 打勾的那一個 ,標的是這個對話會送去的模型。確定那是你剛剛測過的那一個。
- 清單只顯示模型名稱,不帶供應商前綴,所以每個模型都要取一個一眼就認得出來的 ID。
之後修改卡片,或刪掉一張
每張供應商卡片都有一個三點選單(⋮),裡面兩個動作,可逆的程度不一樣。
| 動作 | 做什麼 | 什麼時候會用 |
|---|---|---|
| Edit | 重新打開表單,可以改 baseUrl 或 apiKey、更新模型清單,或改 reasoning 設定 | 換金鑰、加一個目前可用的模型,例如 anthropic/claude-sonnet-4、修正它的 context 設定 |
| Delete | 移除這組設定。舊的歷史紀錄還讀得到,但一個 Session 沒辦法透過已經不在的模型繼續下去 | 你已經不再用那家供應商了,或這張卡片需要重建 |
同一家供應商的第二支金鑰,在三種情況下值得另開一張卡:把家裡跟辦公室的用量分開,卡片命名成 OpenRouter-home 與 OpenRouter-office;在後台有提供的情況下,各自帶不同的額度上限,不過這不能取代限制 Home Assistant 管理員的存取權;還有在換另一支金鑰的過程中減少中斷。企業用的憑證與計費,照你組織自己的規定走。用 Add Provider加一張新卡,取不同的 Name,同樣的 baseUrl,換一支 apiKey,加上 anthropic/claude-sonnet-4 ,前提是它還在目前的目錄裡。
動手改東西之前,先讀懂錯誤訊息
Test 失敗會給明確的訊息。對照代碼查下面的表,不要亂改欄位。
| Test 顯示什麼 | 大概代表什麼 | 該查什麼 |
|---|---|---|
| 401 Unauthorized | OpenRouter 拒絕了這份憑證 | 短暫顯示欄位內容,看有沒有少字元或多空白。到後台確認金鑰還有效;沒有的話就換一支。 |
| 404 Not Found | 端點路徑或模型 ID 找不到 | 把 baseUrl 設成精確的 https://openrouter.ai/api/v1 ——不要結尾斜線,也不要是 /chat/completions,更不能是別家廠商的端點,例如 https://api.openai.com/v1,OpenRouter 的金鑰在那裡認證不了。接著檢查 models[].name 跟目前目錄對不對得上: glm-4 失敗是因為 ID 結尾少了 .6。 |
| 400 Bad Request | 請求格式跟端點對不上 | 幾乎都是 API mode 選錯。 anthropic-messages 跟這組設定不合;選 openai-completions ,再試一次。 |
| 402 Payment Required | 金鑰有效,但這條路線扣不到你的額度 | 檢查你的餘額跟這個模型目前的可用狀況。新帳戶不見得會附贈免費額度。 |
| 逾時,或轉圈圈轉個不停 | 請求從頭到尾沒有完成 | 用這個查對外的 DNS 跟 HTTPS: curl -I https://openrouter.ai。如果這樣也失敗,試試 ping 8.8.8.8,再去查服務狀態、重試一次——ping 只能證明網路通不通,證明不了 API 認證有沒有過。 |
有些失敗不會有狀態碼,只會在介面上顯現。
| 症狀 | 怎麼處理 |
|---|---|
| Test 轉圈超過 30 秒 | 如果網路沒問題,用 F5 或 Ctrl+R 重新整理 pi-web,重新打開 Models 再試一次。極少數情況下,需要重啟附加元件,路徑在 設定 → 附加元件 → Pi Agent → Restart。 |
| Test 亮了綠燈,但對話回 401 | 這個對話用的模型跟你剛剛測的不是同一個——Models 面板裡設的是 anthropic/claude-sonnet-4 ,但下拉選單指的是像「OpenRouter / glm-4」這種名字。改選你剛剛測過的那個模型,檢查它的 models[].name。 |
| 每次回覆都很慢 | 延遲跟模型、上游供應商、路線跟當下負載都有關。先確認 baseUrl、API mode 跟模型 ID 都對,再拿另一個合適的模型比較看看。用一個固定的延遲門檻來判斷,並不可靠。 |
| 選單還是顯示「未設定」 | 點 New session——既有的 Session 可能還留著之前的模型狀態——或是用 F5 重新整理 pi-web。如果清單還是空的,檢查 /data/pi-agent/models.json 有沒有真的寫進去。 |
| 選單顯示「Unnamed provider」 | Name 欄位是空的。打開卡片的三點選單,點 Edit,填 OpenRouter 進 Name,存檔。 |
還有一些狀況,是金鑰根本還沒送到 Pi Agent 就出錯了。
| 在 OpenRouter 那邊的症狀 | 怎麼處理 |
|---|---|
| 登入的驗證信一直沒收到 | 查垃圾郵件跟篩選匣,確認地址沒打錯,稍等一下再重新要求一次。如果這個方式一直不通,就改用 OpenRouter 提供的另一種方式——只從官方登入頁面操作。 |
| 複製的金鑰被拒絕 | 金鑰通常開頭是 sk-or-v1- ,而且必須完整複製。用 Copy 按鈕,不要自己選一部分文字,去掉不小心多出來的頭尾空白,也不要加引號。Test 能確認完整的憑證有沒有送到。 |
| 金鑰不見了,Pi Agent 跟後台都找不到 | 如果你在存檔前就關掉頁面,而 models.json 又沒有可還原的備份、密碼管理器裡也沒存,那這個值就真的沒了。建一支新金鑰,如果舊的還列在清單上就把它撤銷——遮蔽過的預覽不是完整的機密值。 |
| 目錄裡的某個模型用不動 | 可不可用跟帳戶設定、供應商路由、地區、額度,還有模型本身的狀態都有關。先讀模型頁面跟確切的錯誤訊息。F5 能重新整理後台,但解不開帳戶或供應商的限制。 |
| 你的帳戶或付款方式不支援 | 不要捏造帳戶資訊,也不要想辦法繞過供應商的限制。用你帳戶本來就提供的付款方式,或改用附錄 B 裡支援的另一家供應商。 |
openrouter.ai 網域,把可能外洩的金鑰換掉,也把在別處重複用過的憑證都改掉。絕對不要點陌生人傳來的登入連結,也絕對不要在第三方的「驗證」頁面輸入你的金鑰。Pi Agent 會把我的金鑰送給 WoowTech 嗎?
pi-web-start.sh 確認,還有你自己的網路設定。但有兩個但書:任何管理這台主機的人都讀得到本機資料,而且 BYOK 完全不管 OpenRouter 或上游模型供應商怎麼處理、保留你送出去的內容。把 Home Assistant 搬到另一台主機,需要重新申請金鑰嗎?
/data/pi-agent/models.json的 Home Assistant 備份。這個系列後面講備份的那篇會講這個流程。一支金鑰可以給不只一個 Pi Agent 用嗎?
pi-agent-home, pi-agent-office。不要假設帳戶對金鑰數量沒有限制——一切以 API Keys 頁面顯示的為準。一定要打開 reasoning 嗎?
deepSeekThinkingCompat 是給需要 DeepSeek 相容模式的路線用的; thinkingLevelMap 則需要針對特定模型的指引才設定。我在 Models 面板改的東西記在哪個檔案?能手動改嗎?
/data/pi-agent/models.json,介面會幫你管理這份 JSON。它的 providers 物件裡的欄位對應表單上的那些—— baseUrl, api, apiKey 與 models[]。你可以手動改,但用介面更安全:少一個或多一個逗號,Models 面板就整個清空、跳出解析錯誤。真的要手動改,記得驗證 JSON 格式,再重新整理 pi-web。盡量不要打開或分享這個檔案——裡面有機密資料。附錄 C 講批次操作。一張供應商卡片能放好幾個模型嗎?
anthropic/claude-sonnet-4 在好幾個範例欄位裡:那是一個驗證過的 ID 出現六次,不是六個推薦選項,而「primary-model」這類標籤只是佔位符,不是目錄 ID。也不要憑後綴猜可用性,例如 -flash 或 -air,也不要從別家廠商的文件(例如 docs.bigmodel.cn)複製一個 ID,指望它在 OpenRouter 上也能用。要用當下目錄裡精確的那個 ID。接下來往哪走
《Pi Agent 入住指南》系列第 3 篇,由 WoowTech 渥屋科技 製作。
內容出自 Woow HA Pi Agent 入住指南,依 CC BY 4.0 釋出。
The Smart Space Solution · 智慧空間解決方案 · © 2026 WOOW Technology Co., Ltd.