---
title: "别再把私钥粘贴进 Cursor 了：如何给你的编码 agent 配一个钱包"
description: "给你的编码 agent 配一个钱包，而不必把私钥交给它。了解 Alchemy CLI agent 钱包如何使用限定范围的会话，让 agent 无需在 .env 中存放私钥即可完成交易。"
---

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

<ImageBlock
  src="https://media.alchemy.com/walletagents.png"
  alt="别再将私钥粘贴到 Cursor 里：如何为编码代理配置钱包"
  width={3840}
  height={1800}
/>

你正深陷在一次开发过程中。Cursor 里的 agent 已经写好了合约调用代码，选好了网络，准备发送一笔测试交易。计划和一笔已签名的交易之间，只差一样东西：一个密钥。于是你把私钥粘贴进 agent 能读取的 `.env` 文件，继续开发。

正是这一步，让许多经验丰富的开发者不愿让 AI 接触任何涉及真实资金的操作。私钥是全有或全无的东西。一旦 agent 能读取它，它就能转移这个钱包在任何链上的全部资产，且无法撤销。而 agent 本质上是概率性的：大多数时候表现很好，偶尔会自信地犯错。

有更好的做法。你可以给 agent 一个钱包，而不给它密钥。下面说明这在 [Alchemy CLI 中的 agent wallets](https://www.alchemy.com/docs/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](https://www.alchemy.com/docs/wallets) 运行，因此通过 [Gas Manager](https://www.alchemy.com/docs/wallets/transactions/sponsor-gas) 实现的 gas 赞助、批处理、自动重试以及 ERC-20 gas 支付也都随之可用。

由于 CLI 是作为面向 agent 的工具接口构建的，你的 agent 会自行掌握这些命令。`--json` 标志返回结构化输出，`--no-interactive` 让命令不会因为等待交互提示而阻塞，而 [`alchemy agent-prompt`](https://www.alchemy.com/docs/alchemy-cli) 会输出一份 JSON 文档，描述每个命令、标志和错误码。把它放进 system prompt，agent 就能一次性了解完整的操作面。不需要集成任何 SDK，也不需要 agent 从文档中自行推断。

## 适用人群与场景

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

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

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

## 关于边界的坦诚说明

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

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

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

## 开始使用

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

<CodeSnippet
  language="bash"
  code={`npm i -g @alchemy/cli@latest
alchemy auth
alchemy wallet connect --mode session`}
/>

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

<CodeSnippet
  language="bash"
  code="alchemy --json --no-interactive wallet status --verify"
/>

工作完成后，终止会话：

<CodeSnippet language="bash" code="alchemy wallet disconnect" />

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

阅读 [agent wallets 文档](https://www.alchemy.com/docs/agent-wallets)，了解 [面向 agent 的 Alchemy](https://www.alchemy.com/agents)，或 [安装 CLI](https://www.alchemy.com/docs/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 中批准一个会话。
