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

Tích hợp thanh toán AutoGen.

Không có gói AutoGen, và bạn không cần một cái nào. Bọc khách hàng blockchain0x thực tế trong một hàm, đưa nó cho tác nhân của bạn, và nó có thể chuyển USDC trên Base.

CÂU TRẢ LỜI NGẮN

Không có package riêng cho AutoGen, và bạn cũng không cần một package như vậy. AutoGen đã biến một hàm có kiểu thuần túy thành một tool, vì vậy bạn bọc Python client thực sự trong một hàm, đưa nó cho một qua , và agent có thể gửi USDC, thanh toán hóa đơn và đọc ví trên Base. Chỉ cần đặt và bắt đầu.

TẠI SAO KHÔNG CÓ GÓI

AutoGen đã biến một hàm thành một công cụ. Sử dụng điều đó.

AutoGen xây dựng một sơ đồ công cụ trực tiếp từ chữ ký và chuỗi tài liệu của một hàm Python. Một bộ chuyển đổi AutoGen chuyên dụng chỉ bao bọc một hàm mà chúng tôi đã viết, sau đó sẽ không đồng bộ với API nhanh chóng của AutoGen. Vì vậy, chúng tôi không cung cấp một cái. Bạn viết một vài dòng gọi khách hàng blockchain0x thực, và bạn giữ quyền kiểm soát hoàn toàn các đối số, xác thực và xử lý lỗi.

Đây là cùng một khách hàng mà các bộ chuyển đổi LangChain và CrewAI đã gửi gói bên trong. Ở đây bạn tự gói nó, có nghĩa là không có phiên bản bộ chuyển đổi nào để theo dõi và không có gì giữa đại lý của bạn và API ngoại trừ chức năng của riêng bạn. Các nhóm đa đại lý hoạt động theo cách tương tự: cung cấp chức năng ví cho một đại lý, để lại những người khác không có nó, và quyền chi tiêu vẫn ở một nơi.

CÀI ĐẶT

Cài đặt AutoGen và SDK cốt lõi. Một biến môi trường.

Không có gói AutoGen chuyên dụng nào để thêm. Bạn cài đặt AutoGen (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 autogen-agentchat "autogen-ext[openai]" blockchain0x
BIẾN MÔI TRƯỜNG
export BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

BLOCKCHAIN0X_API_KEY là một khóa sk_test_ testnet hoặc sk_live_ mainnet từ dashboard của bạn; client đọc nó từ môi trường. Nếu agent của bạn cũng nhận tiền, webhook handler còn cần BLOCKCHAIN0X_WEBHOOK_SECRET, giá trị này dashboard chỉ trả về một lần khi bạn tạo hoặc xoay vòng một webhook.

CÔNG THỨC

Một hàm trả tiền, được đưa cho một AssistantAgent.

Dưới đây là toàn bộ tích hợp. send_usdc gọi đến khách hàng blockchain0x thực; AssistantAgent(tools=[send_usdc]) biến nó thành một công cụ mà mô hình có thể gọi. AutoGen đọ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 autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from blockchain0x import Client

blockchain0x = Client()  # reads BLOCKCHAIN0X_API_KEY from the environment

# AutoGen turns a plain typed function into a tool. No dedicated package needed.
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.
    """
    result = blockchain0x.payments.create(
        body={"agentId": agent_id, "to": to, "amountWei": amount_wei},
    )
    return str(result)

treasurer = AssistantAgent(
    name="treasurer",
    model_client=OpenAIChatCompletionClient(model="gpt-4o"),
    tools=[send_usdc],
    system_message="You pay vendor invoices in USDC within owner-set limits.",
)

result = await treasurer.run(
    task="Pay 0.01 USDC from agent agt_123 to 0xVendor for the dataset.",
)

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 becomes another entry in tools.

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, RQ, 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 AutoGen để 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 cạm bẫy trong trò chuyện nhóm và bất đồng bộ cần tránh.

Thiết kế đa đại lý + bất đồng bộ của AutoGen mở khóa các mô hình mạnh mẽ nhưng cũng giới thiệu những cạm bẫy riêng. Những điều này đến từ hộp thư hỗ trợ của chúng tôi.

PITFALL 1

Không có gói AutoGen - 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 AutoGen chuyên dụng. Công thức ở trên là con đường được hỗ trợ: một hàm kiểu đơn giản gọi đến khách hàng blockchain0x thực, được đưa cho AssistantAgent(tools=[...]). AutoGen đọc chữ ký hàm và docstring để xây dựng sơ đồ công cụ, vì vậy hãy giữ docstring chính xác.

PITFALL 2

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 and not a dollar figure. USDC has 6 decimals, so 0.01 USDC is "10000" and 5 USDC is "5000000". Type the tool argument as str and validate it before the call - a float that sneaks through either errors at the backend or moves a millionth of what you meant.

PITFALL 3

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. Đừng để nhóm trò chuyện lặp lại trên một khoản thanh toán thất bại - bắt lỗi trong hàm của bạn, trả về một thông điệp rõ ràng mà mô hình có thể hành động, và dựa vào khóa idempotency tự động được cấp phát để một lần thử lại thủ công không thanh toán gấp đôi.

PITFALL 4

AutoGen 0.4+ là không đồng bộ; lời gọi SDK là đồng bộ

AutoGen 0.4 chạy các công cụ trong một vòng lặp không đồng bộ. Lời gọi khách hàng blockchain0x là đồng bộ, điều này là tốt cho một yêu cầu nhanh, nhưng một lời gọi chậm sẽ chặn vòng lặp. Nếu bạn đang di chuyển khối lượng thực, hãy bao bọc lời gọi SDK bằng asyncio.to_thread để vòng lặp sự kiện vẫn phản hồi. Đối với một khoản thanh toán đơn lẻ mỗi lượt, gọi trực tiếp là ổn.

PITFALL 5

Xác minh các webhook đến với thân dữ liệu thô

Nếu tác nhân của bạn cũng NHẬN tiền, hãy xác nhận điều đó với webhook, không phải bằng cách polling. Xác minh chữ ký trên các byte yêu cầu RAW (await request.body()), không bao giờ request.json() được tái tuần tự hóa, vì HMAC bao phủ các byte chính xác. Nó là HMAC-SHA256 với một cửa sổ phát lại 300 giây. Bộ xử lý bên dưới là toàn bộ.

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

Ba câu hỏi cụ thể về AutoGen.

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

Không. Không có bộ điều hợp AutoGen riêng, và điều đó là cố ý - AutoGen đã biến một hàm kiểu đơn giản thành một công cụ, vì vậy con đường trung thực là bọc khách hàng blockchain0x thực trong một hàm và đưa nó cho tác nhân của bạn, chính xác 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. Mọi thứ khác, bao gồm AutoGen, là công thức vài dòng này.

Công thức này có hoạt động trên AutoGen cổ điển (0.2.x) cũng như 0.4+ không?

Có, vì logic thanh toán chỉ là một Python function - không có gì phụ thuộc riêng vào phiên bản AutoGen trong đó. Trên 0.4+ bạn truyền nó qua AssistantAgent(tools=[...]) như trên. Với dòng ConversableAgent 0.2.x, bạn đăng ký cùng function bằng register_function. Không có submodule .legacy để import vì không có package; bạn sở hữu chính function đó.

Tác nhân của tôi nhận USDC hoặc thanh toán hóa đơn như thế nào, không chỉ gửi nó?

Bọc thêm phần còn lại của client theo cùng cách. blockchain0x.transactions.get đọc một giao dịch, blockchain0x.agents.get và blockchain0x.agents.list đọc wallets, và blockchain0x.payment_requests.settle tất toán một hóa đơn bạn đã tạo trong dashboard bằng bằng chứng on-chain. Mỗi mục sẽ trở thành một hàm có kiểu khác trong danh sách tools của bạn. Thanh toán inbound được xác nhận qua webhook payment.received (xác minh bằng handler bên dưới); không có tool nào để tạo một hóa đơn mới, vì payment request được tạo trong dashboard.

Cung cấp cho tác nhân AutoGen của bạn một ví.

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.