跳至內容
0%

別再把私鑰貼進 Cursor:如何為你的 coding agent 建立錢包

發布於 2026年7月29日閱讀時間 2 分鐘

別再把私鑰貼進 Cursor:如何讓你的 coding agent 擁有一個 wallet

你正埋首於一項開發工作。你在 Cursor 中的 agent 已經寫好合約呼叫、選好網路,準備發送測試交易。此刻,計畫與已簽署交易之間,只剩一件事:一把金鑰。於是你把私鑰貼進一個 agent 可以讀取的 .env 檔案,然後繼續開發。

正是這一個步驟,讓許多資深開發者不敢讓 AI 碰觸任何涉及真實資金的事。私鑰是全有或全無的東西。一旦 agent 能讀取它,它就能動用該錢包在任何鏈上的所有資產,且無法復原。而 agent 就設計上而言本質是機率性的:大多數時候表現很好,偶爾卻會自信滿滿地做錯事。

其實有更好的做法:給 agent 一個錢包,但不給它金鑰。以下說明 Alchemy CLI 中的 agent wallets 如何運作,以及真正的限制在哪裡。

問題出在金鑰,不是 agent

把 agent 當成風險來源很誘人,但 agent 其實不是真正的問題。私鑰從一開始就不是設計來被分享的。它沒有「最多可以送出這麼多」「只能在這些鏈上」「只限接下來一小時」或「其實,現在停止」這類概念。它是一個授予完全控制權的單一密鑰,而使用它的唯一方式就是暴露它。

到目前為止,開發者只有兩種選擇,而兩者都要付出實際代價。你可以把金鑰貼進 .env,接受 agent 對資金擁有完全控制權,這讓你隨時可能因為一個誤導性的提示而被清空錢包。或者你可以把 wallet SDK 接進自訂後端,自己重建驗證、簽章與撤銷機制,這對大多數團隊來說是好幾週不該承擔的工作量。前者風險太高,後者成本太高。

你真正想要的,其實比較接近你在整個技術堆疊中對「存取權限」已經習慣的思考方式。你不會把 root 密碼交出去,而是核發一個範圍受限的憑證,設定它能做什麼,用完就撤銷。錢包也該用同樣的方式運作。

Agent wallets 如何運作

Alchemy CLI 中的 agent wallets 讓你能從 dashboard 建立錢包,授予你的終端機一個範圍受限、有時效限制的 session,並讓 agent 從指令列發送真實交易。私鑰從未經過 CLI,也從未經過 Alchemy,更不會出現在任何 .env 檔案中。可以把它理解為三個層次,各由不同的一方掌控。

保管層:金鑰由別人持有

錢包的私鑰由我們的嵌入式錢包合作夥伴 Privy 持有,儲存在他們的基礎設施上。它不在你的筆電裡,不在你的程式庫裡,也不在我們的系統裡。這正是改變風險計算方式的關鍵。你原本打算貼進 .env 的那個機密,現在變成一個你和你的 agent 都不需要直接接觸的東西。

Session 層:agent 拿到的是權限,不是機密本身

當你執行 alchemy wallet connect 時,CLI 會在你的機器上產生一組全新的 P-256 金鑰對,其中的私鑰部分永遠不會離開這台機器。你的瀏覽器會開啟 Alchemy dashboard,讓你選擇錢包並核准一個 session。核准動作會把你 CLI 的公鑰設為該錢包的簽署者,範圍限定在特定能力內,並受你設定的到期時間限制。

從那之後,每一次簽署呼叫都是一個兩階段的挑戰流程。我們的後端會建立 Privy 所需的確切 payload,你的 CLI 在本機對這些精確的位元組進行簽署,之後請求才會送達 Privy。如果 session 已過期、已被撤銷,或未通過任何綁定檢查,下一次簽署嘗試會在離開我們的基礎設施之前就被拒絕。agent 是透過你定義的 session 在行動,而不是持有某個機密。

控制層:主導權(kill switch)在你手上

Dashboard 是唯一能建立或撤銷錢包的地方,撤銷只需一鍵,且立即生效。你也可以從終端機執行 alchemy wallet disconnect。如果某個 session 開始做出你未預期的行為,你可以終止它,簽署動作就會停止。你永遠不需要單純寄望 session 會表現良好,因為你隨時都能終止它。

Agent 實際能做什麼

一旦 session 啟用,agent 就擁有完整的交易操作範圍。在 EVM 鏈上,它可以發送原生代幣與 ERC-20、進行合約呼叫、管理 ERC-20 授權、進行 swap,以及在各主網之間進行 bridge。在 Solana 上,它可以發送 SOL 與 SPL 代幣。交易是透過我們的 Wallet APIs 執行,因此透過 Gas Manager 提供的 gas 贊助、批次處理、自動重試,以及 ERC-20 支付 gas 的功能也一併涵蓋在內。

由於 CLI 本身就是為 agent 建置的工具介面,你的 agent 會自行辨識這些指令。--json 旗標會回傳結構化輸出,--no-interactive 讓指令不會卡在提示訊息上,而 alchemy agent-prompt 則會輸出一份描述每個指令、旗標與錯誤代碼的 JSON 文件。把它放進 system prompt,agent 就能一次學會整個操作範圍。不需要整合任何 SDK,也不需要它從文件中推敲揣測。

這適合誰,以及適用的流程

這是為在 Cursor 或 Claude Code 中開發鏈上應用的開發者設計的:可能是在整合某個 DeFi 協定、串接支付流程,或測試合約的人,希望 agent 能真正發送交易,而不是在需要簽章時就卡住。如果你曾經讓 agent 寫好程式碼,再自己手動完成鏈上的部分,這正好補上了這個缺口。以下兩種流程能顯示它的價值所在。

第一種是「開發並測試」的循環。你正在整合某個協定,agent 已經寫好程式碼。要知道它是否真的能運作,就必須發送真實交易:為合約注資、呼叫合約、檢查結果狀態、調整、再執行一次。若手動完成,就意味著你得自己核准並貼上每一筆交易,這正是你當初找 agent 來的目的——消除這種繁瑣工作。有了 session,你只需建立一個錢包,注入少量餘額,核准一個到期時間短的 session,然後讓 agent 執行整個循環。它會發送交易、讀取結果、反覆迭代,而你在旁監看;當 session 到期,它的存取權限就會自動結束。

第二種是執行多步驟鏈上任務的 agent。有些工作本質上是一連串步驟,而非單一呼叫:在主網上 swap 一個代幣、將所得 bridge 到某個 L2,再存入某個部位。你可以描述最終想要的結果,讓 agent 透過 session 執行這些步驟,而不必自己一步步操作。Session 限制的是 agent 能使用哪些能力、能用多久——而不是它能動用多少資金——所以請依任務所需為錢包注資,設定短的到期時間,用完即撤銷。

誠實看待其中的限制

當一項工具涉及資金時,如果製作者能清楚說明它的界限在哪裡,會更容易讓人信任。以下幾點限制值得在你將此用於正式環境之前先了解。

Gas 與手續費贊助政策控制的是交易費用,並非錢包的支出上限,因此不要把 Gas Manager 政策當成 agent 能動用資金的上限。Swap 與 bridge 目前僅支援 EVM 主網。Session 簽署者不會直接對原始 EVM 交易進行簽署;所有動作是透過 Alchemy Wallet API 呼叫執行,例如 wallet_prepareCallswallet_sendCalls。而 session 的範圍完全取決於你在 dashboard 中如何設定,因此你所設定的到期時間與能力範圍才是真正的界限,而非建議事項。

這些都不是變通做法,而是這套系統本來就該如此運作。錢包保有金鑰保管權,session 承載權限,而終止的權力始終在你手上。

開始使用

CLI 中的 agent wallets 現已上線,無需候補名單,也沒有獨立的方案層級。你需要 Node 22 或以上版本,以及一個 Alchemy 帳號。三個指令即可讓你擁有一個 agent 可控制的錢包:

bash
Copied
npm i -g @alchemy/cli@latest alchemy auth alchemy wallet connect --mode session

連線步驟會開啟 dashboard,讓你核准 session 並設定其範圍與到期時間。在執行任何會改變狀態的工作流程之前,先讓 agent 驗證 session:

bash
Copied
alchemy --json --no-interactive wallet status --verify

工作完成後,終止 session:

bash
Copied
alchemy wallet disconnect

正在建構鏈上最具挑戰性產品的團隊,已經在使用 Alchemy,每年在 100 多條鏈上處理超過一兆美元的資金流動。Agent wallets 的重點在於:同一套基礎設施,現在也支撐著你交給程式開發 agent 的錢包,而無需交出金鑰。你不必再把私鑰貼進 Cursor,而是能給 agent 一個範圍受限的 session,並隨時保有撤銷的能力。

閱讀 agent wallets 文件、瀏覽 Alchemy for agents,或是 安裝 CLI 親自試試看。

常見問題

如何在不分享私鑰的情況下,給 AI 程式開發 agent 一個錢包?

在 Alchemy dashboard 中建立一個錢包,然後在終端機執行 alchemy wallet connect --mode session。CLI 會產生一組本機金鑰對,而 dashboard 會核准一個範圍受限、有時效限制的 session。Agent 透過該 session 發送交易,私鑰則始終保留在錢包供應商手中,從未被暴露。

私鑰實際儲存在哪裡?

錢包的私鑰由 Alchemy 的嵌入式錢包合作夥伴 Privy 持有,儲存在他們的基礎設施上。它從未寫入你的機器、你的程式庫,或任何 .env 檔案,也從未經過 CLI 或 Alchemy 自身的系統。你的 agent 是透過已核准的 session 行動,而不是透過金鑰本身。

我可以撤銷 agent 對錢包的存取權嗎?

可以。你可以在 Alchemy dashboard 中一鍵撤銷 session,或是在終端機執行 alchemy wallet disconnect。撤銷會立即生效,該 session 之後的任何簽署嘗試都會被拒絕。Session 也會在你核准時設定的時間自動到期。

Agent 能用 agent wallet 做什麼?

在 EVM 鏈上,agent 可以發送原生代幣與 ERC-20、進行合約呼叫、管理授權、進行 swap,以及在各主網之間 bridge。在 Solana 上,它可以發送 SOL 與 SPL 代幣。交易是透過 Alchemy 的 Wallet APIs 執行,因此 gas 贊助、批次處理、重試機制,以及 ERC-20 支付 gas 的功能皆可使用。

贊助政策會限制 agent 能花費多少嗎?

不會。Gas 與手續費贊助政策控制的是交易費用,而非錢包餘額,並非支出上限。真正限制 agent 能做什麼的界限,是你在 dashboard 中為 session 設定的能力範圍與到期時間,因此請謹慎地設定 session 的範圍。

我需要準備什麼才能開始?

你需要 Node 22 或以上版本,以及一個 Alchemy 帳號。CLI 中的 agent wallets 現已上線,無需候補名單,也沒有獨立的方案層級。使用 npm i -g @alchemy/cli@latest 安裝,執行 alchemy auth,然後透過 alchemy wallet connect --mode session 從 dashboard 核准一個 session。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。