Bỏ qua nội dung chính
TÍCH HỢP SDK OPENAI AGENTS

Tích hợp OpenAI Agents SDK.

Không có gói Agents SDK, và bạn không cần một cái nào. Trang trí một hàm với @function_tool, gọi khách hàng blockchain0x thực tế, và tác nhân của bạn có thể chuyển USDC trên Base.

CÂU TRẢ LỜI NGẮN

Không có package riêng cho OpenAI Agents SDK, và bạn cũng không cần một package như vậy. SDK biến một hàm được decorate thành một tool với , vì vậy bạn bọc Python client thực sự trong một hàm và thêm nó vào của bạn. Agent có thể gửi USDC, thanh toán hóa đơn và đọc ví - trên single agents, handoffs và Responses API nền tảng. Thanh toán được chốt trên Base.

TẠI SAO CHỌN OPENAI AGENTS SDK

Bề mặt gọi công cụ sạch nhất mà OpenAI phát hành.

SDK OpenAI Agents (phát hành 2025) là cách mà OpenAI khuyến nghị để xây dựng các tác nhân trên API Responses. Nó trừu tượng hóa các phần mã xung quanh việc đăng ký công cụ, vòng lặp tin nhắn, và chuyển giao giữa các tác nhân, và nó tạo ra mã Python sạch, có kiểu. Nếu bạn đang bắt đầu một dự án tác nhân tập trung vào OpenAI hôm nay và không có sở thích về khung, đây là SDK mà chúng tôi khuyến nghị.

Công thức được thiết kế mỏng. send_usdc là một hàm đơn giản được trang trí bằng @function_tool; bạn thêm nó vào danh sách công cụ của một tác nhân và Runner sẽ lấy nó. Không có cấu hình đặc biệt nào, không có bọc thêm, không có nhánh nào của SDK. Khi SDK của các tác nhân phát hành một tính năng mới (đầu vào đa phương thức, tác nhân giọng nói), hàm của bạn vẫn hoạt động vì nó dựa trên bề mặt gọi công cụ tiêu chuẩn - không có gì cụ thể cho phiên bản sống trong đó.

CÀI ĐẶT

Cài đặt Agents SDK và SDK cốt lõi. Hai khóa.

Không có gói blockchain0x Agents SDK nào để thêm. Bạn cài đặt OpenAI Agents SDK (gói openai-agents, Python 3.10+) và SDK cốt lõi blockchain0x thực tế, sau đó viết hàm bên dưới. Đó là toàn bộ danh sách phụ thuộc.

CÀI ĐẶT
pip install openai-agents blockchain0x
BIẾN MÔI TRƯỜNG
export OPENAI_API_KEY=sk-...
export BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

OPENAI_API_KEY là khóa OpenAI hiện có của bạn (Agents SDK sử dụng nó cho Responses API bên dưới). BLOCKCHAIN0X_API_KEY là khóa sk_test_ testnet hoặc sk_live_ mainnet từ dashboard của bạn; client sẽ đọc khóa này từ biến môi trường. Nếu agent của bạn cũng nhận tiền, webhook handler còn cần thêm BLOCKCHAIN0X_WEBHOOK_SECRET.

CÔNG THỨC

Một @function_tool trả tiền, được đưa cho một Đại lý.

Dưới đây là toàn bộ tích hợp. send_usdc gọi đến khách hàng blockchain0x thực; @function_tool biến nó thành một công cụ, và Runner điều phối cuộc gọi. SDK đọc các gợi ý kiểu và docstring để xây dựng sơ đồ, vì vậy hãy giữ chúng trung thực. Chạy nó và tác nhân chuyển USDC trên Base.

AGENT.PY
from agents import Agent, Runner, function_tool
from blockchain0x import Client

blockchain0x = Client()  # reads BLOCKCHAIN0X_API_KEY from the environment

@function_tool
def send_usdc(agent_id: str, to: str, amount_wei: str) -> str:
    """Send a USDC payment from an agent wallet.

    amount_wei is USDC base units (6 decimals), so "10000" is 0.01 USDC.
    """
    return str(
        blockchain0x.payments.create(body={"agentId": agent_id, "to": to, "amountWei": amount_wei})
    )

agent = Agent(
    name="treasurer",
    instructions="You pay vendor invoices in USDC within owner-set limits.",
    tools=[send_usdc],
    model="gpt-4o",
)

result = await Runner.run(
    agent,
    input="Pay 0.01 USDC from agent agt_123 to 0xVendor for the dataset.",
)
print(result.final_output)

When the agent decides to pay, it calls send_usdc, the SDK submits the transfer, and you get a transaction hash back. amount_wei is base units, so 0.01 USDC is "10000". A sk_test_ key keeps it on Base Sepolia until you switch to sk_live_. Add more functions - read a wallet, settle an invoice - the same way; each is another @function_tool in the list.

XỬ LÝ WEBHOOK

Xác nhận các khoản thanh toán đến với một webhook đã ký.

Nếu tác nhân của bạn cũng nhận USDC, hãy xác nhận điều đó với webhook thay vì polling. Trợ giúp xác minh có trong Node SDK; trong một dịch vụ Python, bạn xác minh bằng tay theo HMAC đã được tài liệu hóa, đó là tất cả những gì trợ giúp làm. Ví dụ FastAPI bên dưới; cùng một mã hoạt động trong bất kỳ khung Python bất đồng bộ nào.

WEBHOOK.PY
import hmac, hashlib, os, time
from fastapi import FastAPI, Request, HTTPException

app = FastAPI()
SECRET = os.environ["BLOCKCHAIN0X_WEBHOOK_SECRET"].encode()

@app.post("/webhooks/payment")
async def receive(request: Request):
    raw = await request.body()  # RAW bytes - do not parse first
    sig = request.headers.get("X-Blockchain0x-Signature", "")
    ts = request.headers.get("X-Blockchain0x-Timestamp", "")
    parts = dict(p.split("=", 1) for p in sig.split(",") if "=" in p)
    t, v1 = parts.get("t", ts), parts.get("v1", sig)
    want = hmac.new(SECRET, t.encode() + b"." + raw, hashlib.sha256).hexdigest()
    if not hmac.compare_digest(want, v1) or abs(time.time() - int(t)) > 300:
        raise HTTPException(status_code=401)
    if request.headers.get("X-Blockchain0x-Event-Type") == "payment.received":
        await trigger_followup()  # USDC landed - run the next step
    return {"ok": True}

Thuật toán là HMAC-SHA256 trên chuỗi t.rawBody, so sánh thời gian không đổi và cửa sổ phát lại 300 giây. Đọc nội dung thô qua await request.body(), không bao giờ request.json() được tái tuần tự hóa, vì điều đó thay đổi các byte mà chữ ký bao phủ. Các sự kiện đã được gửi là payment.received, payment.sent, wallet.deployed và webhook.test. Đối với công việc theo dõi nặng, hãy xếp hàng một công việc (Celery, arq) và phản hồi 200 ngay lập tức thay vì chặn trình xử lý.

NGUỒN VÀ TÀI LIỆU

Khách hàng mà bạn đang bọc là mở. Đọc nó.

Không có starter package của Agents SDK để clone - recipe ở trên chính là phần tích hợp. Các SDK của blockchain0x là mã nguồn mở trên GitHub; recipe này bọc Python SDK (blockchain0x-python), với toàn bộ bề mặt phương thức nằm trong docs. Hãy đọc để tham khảo phần thân hàm.

github.com/tosh-labs/blockchain0x-python

Toàn bộ bề mặt phương thức và các scope của SDK được tài liệu hóa tại the docs. Hãy bắt đầu với một key sk_test_ trên Base Sepolia, rồi chuyển sang sk_live_ khi hàm hoạt động đúng như bạn mong đợi.

CÁC CẠNH TRÁNH THƯỜNG GẶP

Năm điều cần chú ý trong lần tích hợp đầu tiên.

Những điều này đến từ hộp thư hỗ trợ của chúng tôi. Biết chúng trước giúp tiết kiệm một giờ cho mỗi điều.

PITFALL 1

Không có gói Agents SDK - bạn bọc SDK

Blockchain0x cung cấp các bộ chuyển đổi cho LangChain và CrewAI cùng với máy chủ MCP; không có gói OpenAI Agents SDK chuyên dụng. Công thức ở trên là con đường: trang trí một hàm kiểu đơn giản với @function_tool, gọi đến khách hàng blockchain0x thực bên trong, và thêm nó vào Agent(tools=[...]). SDK đọc chữ ký và docstring để xây dựng sơ đồ công cụ, vì vậy hãy giữ docstring chính xác.

PITFALL 2

Agents SDK không phải là Assistants API

SDK của OpenAI Agents (gói openai-agents, được nhập khẩu dưới dạng agents) là một sản phẩm khác với API Assistants cũ hơn. Công thức nhắm đến SDK của Agents: Tác nhân + Runner + @function_tool qua API Responses. Nếu bạn đang gọi client.beta.assistants.create(...), bạn đang ở trên mô hình threads/runs cũ hơn mà OpenAI đang dần ngừng - hãy chuyển sang SDK của Agents và hàm ở trên sẽ được đưa vào ngay.

PITFALL 3

Các số lượng là đơn vị cơ sở USDC, dưới dạng chuỗi

payments.create takes amountWei: a string of USDC base units, not a float. USDC has 6 decimals, so 0.01 USDC is "10000" and 5 USDC is "5000000". Type the function argument as str; a float will lose precision before it reaches the API. Keep it a string end to end.

PITFALL 4

send_payment có thể trả về 503 sớm

payments.create không tự động thử lại và có thể trả về 503 cho đến khi bộ chuyển đổi chuỗi được kết nối với mạng của bạn. Bắt lỗi bên trong hàm của bạn và trả về một thông điệp rõ ràng mà mô hình có thể hành động, thay vì để Runner lặp lại. Khóa idempotency tự động được cấp phát có nghĩa là một lần thử lại thủ công sẽ không thanh toán gấp đôi.

PITFALL 5

Môi trường thực thi chỉ không đồng bộ

SDK của Agents ưu tiên bất đồng bộ - await Runner.run(...). Cuộc gọi blockchain0x bên trong công cụ của bạn là đồng bộ, điều này là tốt cho một khoản thanh toán nhanh nhưng chặn vòng lặp dưới tải. Nếu bạn đang chạy nhiều tác nhân đồng thời, hãy bọc cuộc gọi SDK với asyncio.to_thread. Từ một điểm vào đồng bộ, asyncio.run() ở cấp độ cao nhất.

CÂU HỎI THƯỜNG GẶP

Ba câu hỏi về OpenAI Agents SDK.

Có gói OpenAI Agents SDK chuyên dụng nào để cài đặt không?

Không. SDK của Agents đã biến một hàm được trang trí thành một công cụ với @function_tool, vì vậy con đường trung thực là bọc khách hàng blockchain0x thực của bạn, như đã chỉ ra ở trên. Các gói khung duy nhất được gửi đi là blockchain0x-langchain và blockchain0x-crewai (cả hai đều là Python) cộng với máy chủ @blockchain0x/mcp. SDK của Agents, giống như các khung khác không có bộ điều hợp riêng, là công thức vài dòng này.

Tôi có thể sử dụng điều này với OpenAI Responses API trực tiếp, mà không cần Agents SDK không?

Có. Responses API là lớp gọi tool mà Agents SDK xây dựng lên trên. Nếu bạn gọi trực tiếp client.responses.create(), hãy khai báo cùng function đó là một tool trong danh sách tools của request và tự dispatch lệnh khi model yêu cầu - phần nội dung chỉ là lệnh blockchain0x.payments.create từ công thức. Agents SDK là con đường ít trở ngại nhất vì @function_tool tự xây dựng schema tool đó và dispatch cho bạn.

Điều này có hoạt động với việc chuyển giao đa tác nhân không?

Có, và bạn quyết định agent nào sở hữu wallet. Mẫu sạch nhất là giao hàm thanh toán cho một agent đối diện người dùng và để nó chuyển phần việc thực tế cho các agent chuyên trách không mang công cụ wallet. Quyền chi tiêu được giữ ở một nơi, nên không có chuyện agent sai bị tính phí. Thêm các hàm đọc và tất toán theo cùng cách - blockchain0x.transactions.get, blockchain0x.agents.get, blockchain0x.payment_requests.settle - mỗi hàm là một @function_tool riêng.

Thêm thanh toán vào bản xây dựng Agents SDK của bạn.

Một vài dòng bao bọc khách hàng thực tế, không cần cài đặt gói. Miễn phí để bắt đầu.