这篇文章解决一个具体问题:怎样把 Coinbase for Agents 接入 AI Agent,并在不把账户完全交给模型的前提下,预览一笔股票订单。
先说明边界:Coinbase 官方文档当前把这项能力描述为 Coinbase Advanced Trade 的 Agent 接入,支持加密交易、美国期货和标普 500(S&P 500)美国股票;实际可用范围仍取决于账户、地区、产品和平台授权。股票交易涉及真实资金,本文只讲接入和控制流程,不构成投资建议。
先判断:你需要的是交易 Agent,还是一个会聊天的行情助手?
Coinbase for Agents 的关键变化,不是让模型“更会分析股票”,而是把账户操作暴露给 AI harness。根据 Coinbase 官方总览 和 Coinbase MCP 文档 ,Agent 可以在授权范围内:
- 查看账户余额、持仓和投资组合;
- 查询产品信息、费用以及交易会话;
- 预览订单,确认参数后再创建订单;
- 交易 Coinbase Advanced Trade 支持的加密资产、美国期货和 S&P 500 美国股票;
- 管理部分账户转换和 Portfolio 操作。
这不等于“给模型一个聊天框,它就能稳定替你炒股”。Agent 仍可能误读用户指令、选错标的、使用过大的数量,或者在不同客户端里停在“已生成订单草稿”而没有真正提交。官方文档也提醒,不同模型和 hosted chat 客户端的执行行为并不完全一致。因此,第一次接入的目标应该是:完成一次只读检查,再完成一次订单预览,而不是立即开启自动下单。
1. 开始前准备:只准备四样东西
需要的工具
- 一个符合 Coinbase 产品和地区要求的账户;
- 一个 AI harness,例如支持 Coinbase Remote MCP 的客户端,或本地终端 Agent;
- 如果使用 CLI,一把在 CDP Portal 创建的 API Key;
- 一个单独的项目目录,用来保存非敏感日志、订单 ID 和版本记录。
不要把 API Key、私钥或下载的 JSON 密钥提交到 Git,也不要直接粘贴进聊天记录。第一次测试建议使用可承受损失的少量资金,限制为单一标的、整股、限价单,并保留人工确认。
先决定一个最小任务
把“让 Agent 帮我交易股票”改成一条可验收的指令,例如:
查询 AAPL-USD 是否是当前支持的股票产品,读取账户可用余额,
只生成 1 股、限价 200 USD、正常交易时段的 BUY 订单预览,
不要创建订单,不要转账,不要修改账户设置。
这条指令有三个好处:标的、数量和价格都明确;预览和执行被分开;还把不允许的动作写了出来。先让流程停在 orders_preview,确认输出可读后,再考虑是否需要执行权限。
2. 选接入方式:Remote MCP 还是 CLI?
两种方式连接的是同一类 Coinbase for Agents 能力,但控制面不同。
| 方式 | 更适合谁 | 授权方式 | 主要特点 |
|---|---|---|---|
| Remote MCP | 网页端、对话式 Agent、低频使用 | OAuth 登录并选择授权范围 | 上手快,不必在本机保存 API Key |
| CLI | 终端 Agent、脚本化流程、需要稳定执行 | 本地 CDP API Key | 可纳入 shell、日志和版本化流程,但密钥保护责任在本机 |
方式 A:Remote MCP
Remote MCP 的官方地址是:
https://agents.coinbase.com/mcp
以 Claude Code 为例,官方文档给出的添加方式是:
claude mcp add coinbase \
--transport http \
https://agents.coinbase.com/mcp
启动客户端后,用 /mcp 查看连接并完成 Authenticate。其他客户端通常是在 Connectors、Plugins 或自定义 MCP 连接中填写同一个地址,再通过 OAuth 登录 Coinbase。具体菜单会随客户端版本变化,不能把某一个客户端的按钮名称当成通用步骤。
通过闸门: Agent 能调用余额或产品查询,并且授权页面显示的 Portfolio 范围符合预期。若授权页面无法确认范围,先不要继续交易。
Remote MCP 的优点是不用把 CDP API Key 放在本机。缺点是交易执行受客户端、模型和推理模式影响:有的客户端会预览并等待确认,有的会停在草稿阶段,有的需要你明确说“执行订单”。因此,连接成功不等于订单已提交。
方式 B:Coinbase CLI
当前官方文档的手动安装示例是:
node --version
npm install -g @coinbase/coinbase-cli
coinbase --version
CLI 使用 CDP API Key。创建 Key 时,进入 CDP Portal 的 API Keys,在 Advanced Settings → Coinbase App & Advanced Trade 中选择允许访问的账户,并只开启实际需要的权限。下载 JSON 文件后,按官方 CLI 文档配置环境;不要把文件内容打印到终端日志。
coinbase env live --key-file <path-to-key.json>
coinbase env
coinbase balance
如果要让本地 Claude Code 通过 stdio MCP 调用 CLI,可以使用:
claude mcp add --scope user \
--transport stdio coinbase -- coinbase mcp
这里的 --scope user、命令名和可用子命令,都应以本机安装版本的帮助输出为准:
coinbase --help
coinbase orders --help
通过闸门: coinbase balance 能返回账户信息,且你能从 API Key 的权限设置中确认没有多开提现或不必要的转账范围。
3. 先搞清股票订单的限制
根据 Coinbase 当前的 Coinbase for Agents 官方文档
,股票产品使用 TICKER-USD 或 TICKER-USDC 这类 Product ID,当前股票范围是 S&P 500 tickers。不要把任意美股代码都当成可交易产品;先查询产品,再让 Agent 生成订单参数。
正常交易时段是默认路径。若要使用延长时段,需要设置 equity_trading_session,官方列出的值包括:
PRE_MARKET
AFTER_HOURS
OVERNIGHT
MULTI_SESSION
这四类延长时段只接受整股限价单;市价单、quote_size 和碎股数量会被拒绝。这个限制会直接影响提示词和风控设计:不要让模型在盘后用“按 100 美元买入”这种金额型指令,也不要让它默认改用市价单。
订单类型、交易时段、可用余额、产品资格和实际账户状态都可能影响结果。最稳妥的顺序是:先查产品,再查余额,再预览订单,最后才讨论创建订单。
4. 用 CLI 跑通第一笔订单预览
下面以一股 AAPL 的限价预览为例。它只是示例参数,不代表当前价格,也不构成买入建议。
第一步:确认产品和余额
coinbase products get AAPL-USD
coinbase balance
coinbase portfolios list
检查重点:
- 产品是否存在并且账户可交易;
- 报价货币是 USD 还是 USDC;
- 余额是否足够覆盖订单;
- Agent 使用的是哪个 Portfolio。
第二步:只预览,不创建
coinbase orders preview \
product_id=AAPL-USD \
side=BUY \
type=limit \
base_size=1 \
limit_price=200
预览结果至少要核对:产品、方向、数量、限价、费用、预计金额、交易时段和错误提示。预览接口返回成功,不代表订单已进入市场;它的作用正是让你在创建前检查参数。
如果测试延长时段,使用整股限价单并显式写会话:
coinbase orders preview \
product_id=AAPL-USD \
side=BUY \
type=limit \
base_size=1 \
limit_price=200 \
equity_trading_session=AFTER_HOURS
第三步:只有确认后才创建
创建订单前,人工重新确认至少五项:标的、买卖方向、数量、价格和交易时段。再使用唯一的 client_order_id,避免网络重试造成重复订单。命令字段以当前 CLI 的 coinbase orders create --help 为准,示例结构如下:
coinbase orders create \
product_id=AAPL-USD \
side=BUY \
type=limit \
base_size=1 \
limit_price=200 \
client_order_id=<unique-id>
提交后不要根据命令返回就猜测成交状态,继续查询:
coinbase orders list
coinbase orders get <order_id>
coinbase orders fills
5. 把研究和执行拆成两层
Coinbase for Agents 能执行交易,不代表它自带完整的股票研究系统。官方文档列出的工具和订单能力,应与外部新闻、财报或行情数据区分开。尤其不要让任意网页内容直接进入“创建订单”工具。
一个更可控的结构是:
研究层:读取被允许的数据源,输出结构化假设
↓
校验层:检查标的、账户、余额、会话、数量和限价
↓
预览层:调用 orders_preview
↓
人工闸门:确认订单字段和有效期
↓
执行层:调用 orders_create
↓
审计层:记录 order_id、状态、fills 和错误
研究层只输出事实和待确认条件,不直接拥有交易权限;执行层只接受固定字段,例如:
symbol: AAPL-USD
side: BUY
order_type: LIMIT
base_size: 1
limit_price: 200
equity_trading_session: REGULAR
human_confirmation: required
expires_at: 2026-09-12T23:30:00-04:00
这里的 expires_at 是你在策略层定义的约束,不是 Coinbase CLI 的统一必填字段。不要把示例 YAML 原样当成官方 API schema。
6. 权限、安全和回退路径
从只读开始
先使用余额、Portfolio、产品和订单查询。确认日志正常后,再增加预览权限,最后才考虑创建订单。转账和资金移动不要与交易测试同时开启。
能隔离就隔离
Coinbase 文档说明,独立 Agent Portfolio 主要用于隔离现货加密交易;美国衍生品使用默认 Portfolio。股票账户的隔离能力、资格和范围要以当前账户页面为准,不能假定股票天然拥有一个独立的 Agent 子账户。更现实的做法是同时限制 API Key、可用余额、订单额度和策略层数量。
处理超时和重复提交
遇到网络超时,先查询订单列表或指定订单状态,再决定是否重试。不要因为 Agent 没有即时回复,就再次创建同一笔订单。每一笔创建请求都生成唯一 client_order_id,并将订单 ID 写入审计日志。
立即撤权
Remote MCP 授权异常时,在 Coinbase 账户的连接或安全设置中撤销连接。CLI Key 泄露时,立即在 CDP Portal 删除或禁用 Key,取消未成交订单,并检查最近的订单和成交记录。撤权路径应该在第一次测试前就写进运行手册。
常见问题
Remote MCP 已连接,为什么没有下单?
连接只说明 OAuth 通道建立。客户端可能只允许预览,或者模型在高推理模式下停在草稿阶段。先查看工具调用和订单预览结果;需要执行时,用明确的订单字段和授权语句重新确认,或者改用 CLI 测试。
为什么盘后订单被拒?
延长时段要求整股限价单。检查是否误用了市价单、quote_size 或碎股数量,同时确认 equity_trading_session 的枚举值正确。
为什么普通股票代码不能交易?
Coinbase 当前文档把股票范围限定为 S&P 500 tickers。先用 products get 查询 Product ID 和账户资格,不要根据其他券商支持的股票列表推断 Coinbase 也支持。
预览成功是不是已经买入?
不是。预览用于检查订单参数;只有创建订单后才会产生订单记录,随后还要查询状态和成交。把“预览成功”“订单创建成功”和“订单成交”当成三个不同状态。
CLI 找不到命令怎么办?
先运行 node --version、npm prefix -g 和 coinbase --version,确认全局 npm bin 目录在 PATH 中,再查看 coinbase --help。不要直接复制旧教程里的包名;以 官方 Coinbase CLI 文档
和当前 npm 包说明为准。
完成标准:不是“模型说它完成了”
一次合格的 Coinbase for Agents 最小闭环,应满足:
- 你知道当前账户和地区是否具备相应产品资格;
- Remote MCP 或 CLI 的授权范围可以被人工检查;
- Agent 能读取余额、Portfolio 和产品信息;
- 你能生成一笔明确的股票限价订单预览;
- 预览、创建和成交被记录为三个不同状态;
- 重试前会查询订单,且每笔订单使用唯一
client_order_id; - API Key、Portfolio、订单额度和撤权路径都有明确责任人;
- 任意研究资料都不能绕过人工闸门直接触发真实交易。
Coinbase for Agents 更适合被当成一组可编排的账户工具,而不是一个“自动赚钱按钮”。先把只读、预览、确认、执行和审计拆开,跑通单一标的的低风险流程,再决定是否需要更复杂的自动化。
本文只解释 Coinbase for Agents 的接入方式、订单参数和安全边界,不构成股票、加密货币或衍生品投资建议。产品范围、地区资格、费用、订单限制和客户端行为可能变化,请以 Coinbase 当前账户页面和官方文档为准。