Skip to main content
CDP Agentkit 工具包包含一系列工具,使 LLM 智能体能够与 Coinbase Developer Platform 进行交互。该工具包对 CDP SDK 进行了封装,允许智能体执行链上操作,例如转账、交易以及智能合约交互。

概述

集成详情

可序列化JS 支持版本
CdpToolkitcdp-langchainPyPI - Version

工具功能

该工具包提供以下工具:
  1. get_wallet_details - 获取 MPC 钱包的详细信息
  2. get_balance - 查询特定资产的余额
  3. request_faucet_funds - 从水龙头请求测试代币
  4. transfer - 在地址之间转移资产
  5. trade - 交易资产(仅限主网)
  6. deploy_token - 部署 ERC-20 代币合约
  7. mint_nft - 从现有合约铸造 NFT
  8. deploy_nft - 部署新的 NFT 合约
  9. register_basename - 为钱包注册基础名称
我们鼓励您使用 CDP 和 web2 API 添加自定义工具,以打造满足您需求的智能体。

设置

从高层次来看,我们将:
  1. 安装 langchain 包
  2. 配置您的 CDP API 凭据
  3. 初始化 CDP 包装器和工具包
  4. 通过 toolkit.get_tools() 将工具传递给您的智能体
要启用单个工具的自动追踪,请设置您的 LangSmith API 密钥:
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
os.environ["LANGSMITH_TRACING"] = "true"

安装

该工具包位于 cdp-langchain 包中:
pip install -qU cdp-langchain

设置环境变量

要使用此工具包,您必须首先设置以下环境变量以访问 CDP APIs,从而创建钱包并与链上进行交互。您可以在 CDP Portal 上免费注册 API 密钥:
import getpass
import os

for env_var in [
    "CDP_API_KEY_NAME",
    "CDP_API_KEY_PRIVATE_KEY",
]:
    if not os.getenv(env_var):
        os.environ[env_var] = getpass.getpass(f"Enter your {env_var}: ")

# Optional: Set network (defaults to base-sepolia)
os.environ["NETWORK_ID"] = "base-sepolia"  # or "base-mainnet"

实例化

现在我们可以实例化工具包:
from cdp_langchain.agent_toolkits import CdpToolkit
from cdp_langchain.utils import CdpAgentkitWrapper

# Initialize CDP wrapper
cdp = CdpAgentkitWrapper()

# Create toolkit from wrapper
toolkit = CdpToolkit.from_cdp_agentkit_wrapper(cdp)

工具

查看可用工具
tools = toolkit.get_tools()
for tool in tools:
    print(tool.name)

在智能体中使用

我们需要一个 LLM 或聊天模型:
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4.1-mini")
使用工具初始化智能体:
from langchain.agents import create_agent


tools = toolkit.get_tools()
agent_executor = create_agent(llm, tools)
示例用法:
example_query = "Send 0.005 ETH to john2879.base.eth"

events = agent_executor.stream(
    {"messages": [("user", example_query)]},
    stream_mode="values",
)
for event in events:
    event["messages"][-1].pretty_print()
预期输出:
Transferred 0.005 of eth to john2879.base.eth.
Transaction hash for the transfer: 0x78c7c2878659a0de216d0764fc87eff0d38b47f3315fa02ba493a83d8e782d1e
Transaction link for the transfer: https://sepolia.basescan.org/tx/0x78c7c2878659a0de216d0764fc87eff0d38b47f3315fa02ba493a83d8e782d1

CDP 工具包特有功能

钱包管理

工具包维护一个 MPC 钱包。钱包数据可以导出和导入,以便在会话之间持久化:
# Export wallet data
wallet_data = cdp.export_wallet()

# Import wallet data
values = {"cdp_wallet_data": wallet_data}
cdp = CdpAgentkitWrapper(**values)

网络支持

该工具包支持多种网络

无 Gas 交易

某些操作在 Base 主网上支持无 Gas 交易:
  • USDC 转账
  • EURC 转账
  • cbBTC 转账

API 参考

有关所有 CDP 功能和配置的详细文档,请访问 CDP 文档