Ga naar hoofdinhoud
AGNO INTEGRATIE

Agno betalingsintegratie.

Er is geen Agno-pakket, en je hebt er geen nodig. Wikkel de echte blockchain0x-client in een kleine Toolkit en jouw agent kan USDC verplaatsen op Base - minimale abstractie, de Agno-manier.

KORTE ANTWOORD

Er is geen Agno-specifiek pakket, en je hebt er ook geen nodig. Agno maakt van een -methode een tool, dus wikkel je de echte Python client in een kleine toolkit en voeg je die toe aan je . De agent kan USDC versturen, facturen afwikkelen en wallets uitlezen, voor elk Agno-model (OpenAI, Anthropic, DeepSeek, Llama, Mistral). Betalingen worden afgerekend op Base.

WAAROM AGNO

Het lichte Python-framework. Geen abstractiebelasting.

Agno (voorheen Phidata) is het agentenframework dat je gebruikt wanneer je minimale ceremonie wilt. Er is geen Graph builder, geen Crew, geen Workflow - alleen Agent, Tools en een run() methode. Tools zijn Python-callables. Het framework voegt voldoende scaffolding toe om LLM's met toolondersteuning aan te roepen, geheugen te beheren en streamingoutput te produceren, en gaat dan uit de weg.

Het recept volgt dezelfde filosofie. Je schrijft een kleine Toolkit-subklasse die één methode registreert die de echte client aanroept - het ziet eruit en gedraagt zich als elke andere Agno-tool. Geen speciale setup buiten instantiatie, geen grafiek om aan te sluiten, geen adapterversie om bij te houden. De eenvoud is het punt: als je grafieken wilde, zou je op LangGraph zijn.

INSTALLATIE

Installeer Agno en de kern SDK. Twee sleutels.

Er is geen blockchain0x Agno-pakket om toe te voegen. Je installeert Agno (Python 3.10+, de 1.0+ lijn na de Phidata-naamverandering) en de echte blockchain0x kern SDK, en schrijft dan de toolkit hieronder. Als je nog steeds op phi.* imports zit, voer dan eerst pip install -U agno uit.

INSTALLEREN
pip install agno blockchain0x
OMGEVINGSVARIABLES
export OPENAI_API_KEY=sk-...
export BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

OPENAI_API_KEY (of het equivalent voor welk Agno-supported model je ook gebruikt). BLOCKCHAIN0X_API_KEY is een sk_test_ testnet- of sk_live_ mainnet-sleutel uit je dashboard; de client leest die uit de omgeving. Als je agent ook geld ontvangt, heeft de webhook handler daarnaast BLOCKCHAIN0X_WEBHOOK_SECRET nodig.

HET RECEPT

Een Toolkit die betaalt, overhandigd aan een Agent.

Hieronder is de hele integratie. WalletTools is een Toolkit-subklasse die send_usdc registreert, die de echte blockchain0x-client aanroept. Voeg het toe aan de Agent en de run() oproep organiseert de aanroep van het hulpmiddel. Agno leest de methodehandtekening en docstring om het schema op te bouwen.

AGENT.PY
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools import Toolkit
from blockchain0x import Client

blockchain0x = Client()  # reads BLOCKCHAIN0X_API_KEY from the environment

# Wrap the real client in an Agno Toolkit. No dedicated package needed.
class WalletTools(Toolkit):
    def __init__(self):
        super().__init__(name="wallet_tools")
        self.register(self.send_usdc)

    def send_usdc(self, 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(
    model=OpenAIChat(id="gpt-4o"),
    tools=[WalletTools()],
    instructions=["You pay vendor invoices in USDC within owner-set limits."],
)

result = agent.run("Pay 0.01 USDC from agent agt_123 to 0xVendor for the dataset.")
print(result.content)

When agent.run() executes, the model decides to pay, 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_. Register more methods on the toolkit - read a wallet, settle an invoice - the same way.

WEBHOOK AFHANDELING

Bevestig inkomende betalingen met een ondertekende webhook.

Als je agent ook USDC ontvangt, bevestig het dan met de webhook in plaats van te polleren. De verify-helper wordt geleverd in de Node SDK; in een Python-service verifieer je handmatig tegen de gedocumenteerde HMAC, wat is wat de helper doet. Voorbeeld van FastAPI hieronder; dezelfde code werkt in elk asynchroon Python-framework.

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}

Het algoritme is HMAC-SHA256 over de string t.rawBody, een constante tijdsvergelijking, en een replayvenster van 300 seconden. Lees het ruwe lichaam via await request.body(), nooit request.json() opnieuw-serialized, omdat dat de bytes verandert die de handtekening dekt. De verzonden evenementen zijn payment.received, payment.sent, wallet.deployed, en webhook.test. Voor zware vervolgwerkzaamheden, voeg een taak toe (Celery, arq) en reageer onmiddellijk met 200 in plaats van de handler te blokkeren.

BRON EN DOCUMENTEN

De client die je aan het wikkelen bent is open. Lees het.

Er is geen Agno starter package om te klonen - de bovenstaande recipe is de integratie. De blockchain0x SDKs zijn open source op GitHub; deze recipe omhult de Python SDK (blockchain0x-python), met de volledige method surface in de docs. Lees die als referentie voor de toolkit methods.

github.com/tosh-labs/blockchain0x-python

De volledige SDK method surface en scopes zijn gedocumenteerd in de docs. Begin met een sk_test_ key op Base Sepolia en schakel daarna over naar sk_live_ wanneer de toolkit doet wat je verwacht.

GEMEENSCHAPPELIJKE VALKUILEN

Vijf Agno-specifieke dingen om op te letten.

Agno is een van de schonere agentenframeworks om mee te integreren, maar het heeft zijn eigen valkuilen - vooral rond de hernoeming van Phidata en markdown-rendering.

PITFALL 1

Er is geen Agno-pakket - je wikkelt de SDK in een Toolkit

Blockchain0x levert adapters voor LangChain en CrewAI plus de MCP-server; er is geen speciale Agno-pakket. Het bovenstaande recept is het pad: een Toolkit-subklasse die een methode registreert die de echte blockchain0x-client aanroept. Agno leest de methodehandtekening en docstring om het hulpschema op te bouwen, dus houd de docstring nauwkeurig.

PITFALL 2

Phidata naar Agno migratie verwarring

Agno werd hernoemd van Phidata in 2024. Oudere codebases die importeren van phi.agent of phi.tools werken nog steeds via een compatibiliteitslaag, maar de agno.* imports zijn de huidige. Het recept gebruikt agno.* door het hele proces; als je code nog steeds op phi.* imports staat, voer dan pip install -U agno uit en wissel de importpaden voordat je de Toolkit toevoegt.

PITFALL 3

Bedragen zijn USDC basis eenheden, als strings

payments.create takes amountWei: a string of USDC base units (6 decimals), so 0.01 USDC is "10000" and 5 USDC is "5000000". Type the method argument as str. It also does not retry by default and can answer 503 until the chain adapter is wired for your network - return a clear message rather than letting the agent loop.

PITFALL 4

Sync vs async uitvoering

Agno ondersteunt agent.run() (sync) en agent.arun() (async). Kies één modus per agent - roep agent.run() aan en probeer het resultaat af te wachten en je krijgt een coroutine waar je een string verwachtte. De blockchain0x-aanroep binnen de Toolkit is synchroon; als je op het asynchrone pad bent en echt volume verplaatst, wikkel het dan met asyncio.to_thread zodat de gebeurtenislus responsief blijft.

PITFALL 5

Verifieer webhooks tegen de ruwe body

Als je agent ook USDC ontvangt, bevestig het dan met de webhook, niet door te polleren. Verifieer de handtekening over de RAW-aanroepbytes (await request.body()), nooit request.json() opnieuw-serialiseerd, omdat de HMAC de exacte bytes dekt. Het is HMAC-SHA256 met een replay-venster van 300 seconden. De handler hieronder is het geheel.

VAKANT VRAAG

Drie Agno-specifieke vragen.

Is er een speciaal Agno-pakket om te installeren?

Nee. Agno verandert al een Toolkit-methode in een tool, dus het eerlijke pad is om de echte blockchain0x-client zelf in een Toolkit-subklasse te wikkelen, zoals hierboven weergegeven. De enige verzonden framework-pakketten zijn blockchain0x-langchain en blockchain0x-crewai (beide Python) plus de @blockchain0x/mcp-server. Agno, net als de andere frameworks zonder een speciale adapter, is dit paar-regel recept.

Werkt dit met Agno Teams (multi-agent samenwerking)?

Ja. Agno Teams combineren meerdere Agents tot één gecoördineerde eenheid. De WalletTools-toolkit werkt in elke agent die deze opneemt. Het nette patroon voor Teams is om de wallet-toolkit toe te kennen aan één toegewijde treasurer agent en de andere leden het werk te laten doen, zodat de bestedingsbevoegdheid op één plek blijft - dezelfde opzet als het CrewAI-recept. Voeg read- en settle-methoden op dezelfde manier toe aan de toolkit (blockchain0x.transactions.get, blockchain0x.agents.get, blockchain0x.payment_requests.settle).

Werkt het met redeneermodellen en AgentUI?

Ja. Redeneringsmodellen (o1, DeepSeek R1) roepen tools op dezelfde manier aan, alleen langzamer per beurt, dus stream de gedeeltelijke respons als je wilt dat de gebruiker vooruitgang ziet voordat de oproep is voltooid. In AgentUI, Agno's run inspector, verschijnt de send_usdc-aanroep in het tool-calls-paneel zoals elke andere tool, wat handig is om een betaling te volgen op Base Sepolia tijdens de ontwikkeling.

Vraag betaling voor het werk van uw Agno agent.

Een kleine Toolkit die de echte client omhult, geen pakket om te installeren. Gratis om te beginnen.