CDP Agentkit 工具套件
CDP Agentkit
工具套件包含使 LLM 代理程式能夠與 Coinbase 開發者平台 互動的工具。此工具套件提供 CDP SDK 的封裝器,允許代理程式執行鏈上操作,例如轉帳、交易和智慧合約互動。
概觀
整合詳細資訊
類別 | 套件 | 可序列化 | JS 支援 | 套件最新版本 |
---|---|---|---|---|
CdpToolkit | cdp-langchain | ❌ | ❌ |
工具功能
此工具套件提供以下工具
- get_wallet_details - 取得 MPC 錢包的詳細資訊
- get_balance - 取得特定資產的餘額
- request_faucet_funds - 從水龍頭請求測試代幣
- transfer - 在地址之間轉移資產
- trade - 交易資產(僅限主網)
- deploy_token - 部署 ERC-20 代幣合約
- mint_nft - 從現有合約鑄造 NFT
- deploy_nft - 部署新的 NFT 合約
- register_basename - 為錢包註冊基本名稱
我們鼓勵您新增自己的工具,無論是使用 CDP 還是 web2 API,以建立符合您需求的代理程式。
設定
在高階層級,我們將
- 安裝 langchain 套件
- 設定您的 CDP API 憑證
- 初始化 CDP 封裝器和工具套件
- 使用
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 API 以建立錢包並在鏈上互動。您可以在 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-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)
網路支援
此工具套件支援 多個網路
無 Gas 交易
某些操作支援 Base 主網上的無 Gas 交易
- USDC 轉帳
- EURC 轉帳
- cbBTC 轉帳
API 參考
如需所有 CDP 功能和配置的詳細文件,請前往 CDP 文件。
相關
- 工具概念指南 conceptual guide
- 工具操作指南 how-to guides