CDP Agentkit 工具包
The CDP Agentkit 工具包包含使LLM代理能够与 Coinbase 开发者平台 交互的工具。该工具包提供了一个围绕 CDP SDK 的封装,允许代理执行诸如转账、交易和智能合约交互等链上操作。
概览
集成细节
| Class | 包 | 序列化 | JS支持 | Package 最新版本 |
|---|---|---|---|---|
| CdpToolkit | cdp-langchain | ❌ | ❌ |
Tool features
该工具包提供了以下工具:<br>
- get_wallet_details - 获取MPC钱包的详细信息
- get_balance - 获取特定资产的余额
- 请求测试资金 - 从水龙头请求测试代币
- 转移 - 在不同地址之间转移资产
- 交易 - 交易资产(仅主网)
- 部署令牌 - 部署ERC-20代币合约
- mint_nft - 从现有合约铸造NFTs
- 部署NFT合约 - 部署新的NFT智能合约
- register_basename - 为钱包注册一个基本名称
我们鼓励您添加自己的工具,无论是使用CDP还是Web2 API,以创建一个量身定制的代理。
设置
在高层次上,我们将:
- 安装 langchain 包
- 设置您的CDP API凭据
- 初始化CDP封装和工具包
- 将工具传递给您的代理,请使用
toolkit.get_tools()
要启用单个工具的自动跟踪,请设置您的LangSmithAPI密钥:
# 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 API创建钱包并在链上进行交互。您可以在CDP门户免费注册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"
Instantiation
现在我们可以实例化我们的工具包:
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)
使用于代理
我们需要一个大语言模型或聊天模型:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
API 参考:ChatOpenAI
使用工具初始化代理:
from langgraph.prebuilt import create_react_agent
tools = toolkit.get_tools()
agent_executor = create_react_agent(llm, tools)
API 参考:create_react_agent
示例用法:
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)
网络支持
该工具包支持多个网络
无气体交易
一些操作可以在Base主网上支持无gas交易:
- USDC 转账
- EURC转移
- cbBTC 转账
API 参考
详细介绍了所有CDP功能和配置的文档,请访问CDP 文档。