跳至内容
0%

别再把私钥粘贴进 Cursor 了:如何给你的编码 agent 配一个钱包

发布于 2026年7月29日2 分钟阅读

别再将私钥粘贴到 Cursor 里:如何为编码代理配置钱包

你正深陷在一次开发过程中。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 中创建钱包,为你的终端授予一个受限且有时限的会话,再让 agent 通过命令行发送真实交易。私钥不会经过 CLI,不会经过 Alchemy,也不会出现在任何 .env 文件中。可以把它理解为三层,各自由不同的一方掌控。

托管层:密钥由第三方持有

钱包的私钥由我们的嵌入式钱包合作伙伴 Privy 持有,存放在他们的基础设施上。它不在你的笔记本电脑上,不在你的代码仓库中,也不在我们的系统里。这正是改变风险计算方式的关键。原本你打算粘贴进 .env 的秘密,现在成了你和 agent 都不会直接接触的东西。

会话层:agent 获得的是权限,不是秘密本身

当你运行 alchemy wallet connect 时,CLI 会在你的机器上生成一个全新的 P-256 密钥对,这个密钥对的私有部分永远不会离开设备。你的浏览器会打开 Alchemy dashboard,让你选择钱包并批准一个会话。批准操作会把你 CLI 的公钥作为签名者绑定到该钱包上,并限定具体能力范围和你设定的到期时间。

从那之后,每一次签名调用都是一个两步的挑战流程。我们的后端构建出 Privy 所要求的精确 payload,你的 CLI 在本地对这些确切的字节进行签名,之后请求才会到达 Privy。如果会话已过期、已被撤销,或未通过任何绑定检查,下一次签名尝试会在到达我们的基础设施之前就被拒绝。agent 是在通过你所定义的会话行事,而不是持有某个秘密。

控制层:终止开关始终在你手中

dashboard 是创建或撤销钱包的唯一场所,撤销操作只需一次点击,且立即生效。你也可以从终端运行 alchemy wallet disconnect。如果某个会话开始做出你不希望发生的操作,你可以终止它,签名随即停止。你永远不必单纯寄希望于会话按预期行事,因为你随时可以终止它。

agent 实际能做什么

会话开启后,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,也不需要 agent 从文档中自行推断。

适用人群与场景

这适合那些日常在 Cursor 或 Claude Code 中开发链上应用的开发者:正在接入某个 DeFi 协议、搭建支付流程,或测试合约的人,他们希望 agent 能真正执行交易,而不是在需要签名的地方就停下来。如果你曾经让 agent 写好代码,然后自己手动完成链上部分,这正好补上了那个缺口。以下两种场景能体现它的价值。

第一种是构建与测试的循环。你正在对接某个协议,agent 已经写好了代码。要知道它是否真的能用,就需要有人发送真实交易:给合约注资、调用它、检查结果状态、调整、再运行一次。手动完成这些意味着每一笔交易都要你自己批准和粘贴,而这正是你引入 agent 想要省去的繁琐工作。有了会话,你可以创建一个钱包,给它注入一小笔余额,批准一个限定短期到期时间的会话,然后让 agent 完整地运行这个循环。它发送交易、读取结果、迭代改进,你在旁边观察,会话到期后其访问权限也随之自动结束。

第二种是执行多步骤链上任务的 agent。有些工作是一系列步骤,而不是单次调用:在主网上 swap 一个代币,把收益 bridge 到某个 L2,再存入某个仓位。你可以描述目标结果,让 agent 通过会话执行这些步骤,而不必自己逐一操作。会话限制的是 agent 能使用哪些能力、能使用多久——而不是它能转移多少资产——因此按任务所需为钱包注资,设定较短的到期时间,完成后撤销即可。

关于边界的坦诚说明

一个处理资金的工具,如果其开发者能清楚说明它的局限所在,会更容易获得信任。以下是在生产环境中使用前值得了解的几点限制。

Gas 和费用赞助策略控制的是交易费用。它们不是钱包的支出限额,所以不要把 Gas Manager 策略当作 agent 能转移金额的上限。Swap 和 bridge 目前仅支持 EVM 主网。会话签名者不直接对原始 EVM 交易进行签名;所有操作都通过 Alchemy Wallet API 调用来执行,例如 wallet_prepareCallswallet_sendCalls。而且会话的作用范围完全取决于你在 dashboard 中的设置,你所设定的到期时间和能力范围才是真正的边界,而不是一个建议。

这些都不是变通做法,而是系统本应如此运作的方式。钱包保留托管权,会话承载权限,而你始终保有终止它的能力。

开始使用

CLI 中的 agent wallets 现已上线,没有等待名单,也没有单独的付费层级。你需要 Node 22 或更高版本,以及一个 Alchemy 账户。三条命令即可让你拥有一个可由 agent 控制的钱包:

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

连接这一步会打开 dashboard,你可以在其中批准会话,并设置其作用范围和到期时间。在执行任何会改变状态的操作前,先让 agent 验证会话:

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

工作完成后,终止会话:

bash
Copied
alchemy wallet disconnect

在链上构建要求最苛刻产品的团队,已经在使用 Alchemy,每年在 100 多条链上处理超过一万亿美元的资金流转。agent wallets 的意义在于,同一套基础设施现在也支撑着你交给编码 agent 的钱包,而无需交出密钥。你不必再把私钥粘贴进 Cursor,而是可以给 agent 一个受限的会话,并始终保有随时撤销它的能力。

阅读 agent wallets 文档,了解 面向 agent 的 Alchemy,或 安装 CLI 亲自试用。

常见问题

如何在不共享私钥的情况下,给 AI 编码 agent 一个钱包?

在 Alchemy dashboard 中创建一个钱包,然后在终端运行 alchemy wallet connect --mode session。CLI 会生成本地密钥对,dashboard 批准一个受限且有时限的会话。agent 通过该会话发送交易,而私钥始终留在钱包提供方那里,从不暴露。

私钥究竟存放在哪里?

钱包的私钥由 Alchemy 的嵌入式钱包合作伙伴 Privy 持有,存放在他们的基础设施上。它永远不会写入你的机器、你的代码仓库或某个 .env 文件,也不会经过 CLI 或 Alchemy 自身的系统。你的 agent 是通过一个已批准的会话行事,而不是直接持有密钥。

我能撤销 agent 对钱包的访问权限吗?

可以。你可以在 Alchemy dashboard 中一键撤销会话,或从终端运行 alchemy wallet disconnect。撤销操作立即生效,该会话下一次的签名尝试都会被拒绝。会话在你批准时所设定的时间点也会自动过期。

agent wallet 能让 agent 做什么?

在 EVM 链上,agent 可以发送原生代币和 ERC-20,进行合约调用,管理授权,进行 swap,并在主网之间 bridge。在 Solana 上,它可以发送 SOL 和 SPL 代币。这些交易都通过 Alchemy 的 Wallet APIs 运行,因此 gas 赞助、批处理、重试以及 ERC-20 gas 支付都可以使用。

赞助策略会限制 agent 能支出的金额吗?

不会。Gas 和费用赞助策略控制的是交易费用,而不是钱包余额,它们不是支出限额。真正限制 agent 能做什么的边界,是你在 dashboard 中为会话设置的能力范围和到期时间,所以请谨慎设定会话的作用范围。

我需要准备什么才能开始?

你需要 Node 22 或更高版本,以及一个 Alchemy 账户。CLI 中的 agent wallets 现已上线,没有等待名单,也没有单独的付费层级。使用 npm i -g @alchemy/cli@latest 安装,运行 alchemy auth,然后通过 alchemy wallet connect --mode session 在 dashboard 中批准一个会话。

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。