ମୁଖ୍ୟ ବିଷୟବସ୍ତୁକୁ ଛାଡ଼ନ୍ତୁ
Agno ସମନ୍ୱୟ

Agno ଦେୟ ଏକତ୍ରଣ।

Agno package ନାହିଁ, ଏବଂ ଆପଣଙ୍କୁ ତାହା ଦରକାର ମଧ୍ୟ ନାହିଁ। ଆସଲ blockchain0x client କୁ ଏକ ଛୋଟ Toolkit ଭିତରେ wrap କରନ୍ତୁ ଏବଂ ଆପଣଙ୍କ agent Base ଉପରେ USDC move କରିପାରିବ - minimal abstraction, Agno ଭଳି।

ସଂକ୍ଷିପ୍ତ ଉତ୍ତର

Agno-ନିର୍ଦ୍ଦିଷ୍ଟ କୌଣସି package ନାହିଁ, ଏବଂ ଆପଣଙ୍କୁ ଦରକାର ମଧ୍ୟ ନାହିଁ। Agno ଗୋଟିଏ method କୁ tool ରେ ପରିଣତ କରେ, ସେଥିପାଇଁ ଆପଣ ସତ୍ୟ Python client କୁ ଛୋଟ toolkit ଭିତରେ wrap କରି ଆପଣଙ୍କ ରେ add କରନ୍ତୁ। agent USDC ପଠାଇପାରେ, invoice settle କରିପାରେ, ଏବଂ wallet ପଢ଼ିପାରେ, ସମସ୍ତ Agno model (OpenAI, Anthropic, DeepSeek, Llama, Mistral) ରେ। Payments Base ରେ settle ହୁଏ।

କାହିଁକି AGNO

ହାଲୁକା Python framework। ଅତିରିକ୍ତ abstraction tax ନାହିଁ।

Agno (ପୂର୍ବରୁ Phidata) ହେଉଛି ସେହି ଏଜେଣ୍ଟ ଫ୍ରେମ୍ୱର୍କ ଯାହାକୁ ଆପଣ ଅତି କମ୍ ସମାରୋହ ଚାହାଁଲେ ନେଇଯିବେ। ଏଠାରେ କୌଣସି ଗ୍ରାଫ୍ ବିଲ୍ଡର୍, କୌଣସି କ୍ରୁ, କୌଣସି କାର୍ଯ୍ୟପ୍ରବାହ ନାହିଁ - କେବଳ ଏଜେଣ୍ଟ, ଟୁଲ୍, ଏବଂ ଏକ run() ପ୍ରଣାଳୀ। ଟୁଲ୍ ହେଉଛି Python କଲେବଲ୍। ଫ୍ରେମ୍ୱର୍କ ଟୁଲ୍ ସହାୟତା ସହିତ LLMs କୁ କଲ୍ କରିବା, ସ୍ମୃତିକୁ ପରିଚାଳନା କରିବା, ଏବଂ ସ୍ଟ୍ରିମିଂ ଆଉଟପୁଟ୍ ଉତ୍ପାଦନ କରିବା ପାଇଁ ପ୍ରୟାପ୍ତ ସ୍କାଫୋଲ୍ଡିଂ ଯୋଗ କରେ, ପରେ ଆପଣଙ୍କର ରାସ୍ତାରୁ ବାହାରିଯାଏ।

recipe ଏକେ ଦର୍ଶନକୁ ଅନୁସରଣ କରେ। ଆପଣ ଏକ ଛୋଟ Toolkit subclass ଲେଖନ୍ତି ଯାହା real client କୁ call କରୁଥିବା ଗୋଟିଏ method register କରେ - ଏହା ଅନ୍ୟ ସବୁ Agno tool ଭଳି ଦେଖାଯାଏ ଏବଂ କାମ କରେ। instantiation ଛଡ଼ା କୌଣସି special setup ନାହିଁ, wire up କରିବାକୁ କୌଣସି graph ନାହିଁ, track କରିବାକୁ କୌଣସି adapter version ନାହିଁ। ସରଳତା ହିଁ ମୁଖ୍ୟ: ଯଦି ଆପଣ graphs ଚାହାନ୍ତି, ଆପଣ LangGraph ରେ ଥାନ୍ତେ।

ଇନ୍ସ୍ଟଲେସନ୍

Agno ଏବଂ core SDK ଇନଷ୍ଟଲ୍ କରନ୍ତୁ। ଦୁଇଟି key।

ଯୋଡିବା ପାଇଁ blockchain0x Agno package ନାହିଁ। ଆପଣ Agno (Python 3.10+, Phidata rename ପରେ 1.0+ line) ଏବଂ ଆସଲ blockchain0x core SDK install କରନ୍ତୁ, ତାପରେ ତଳେ ଥିବା toolkit ଲେଖନ୍ତୁ। ଯଦି ଆପଣ ଏବେବି phi.* imports ଉପରେ ଅଛନ୍ତି, ପ୍ରଥମେ pip install -U agno ଚଳାନ୍ତୁ।

ଇନ୍ସ୍ଟଲ୍
pip install agno blockchain0x
ପରିବେଶ ଚଳକଗୁଡିକ
export OPENAI_API_KEY=sk-...
export BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

OPENAI_API_KEY (କିମ୍ବା ଆପଣ ବ୍ୟବହାର କରୁଥିବା କୌଣସି Agno-supported model ପାଇଁ ସମାନ key)। BLOCKCHAIN0X_API_KEY ହେଉଛି ଆପଣଙ୍କ dashboard ରୁ sk_test_ testnet କିମ୍ବା sk_live_ mainnet key; client ଏହାକୁ environment ରୁ ପଢ଼େ। ଯଦି ଆପଣଙ୍କ agent ଟଙ୍କା ମଧ୍ୟ ଗ୍ରହଣ କରେ, webhook handler କୁ ଅତିରିକ୍ତ ଭାବେ BLOCKCHAIN0X_WEBHOOK_SECRET ଦରକାର।

ରେସିପି

ପେ କରୁଥିବା ଏକ Toolkit, ଯାହା Agent କୁ ଦିଆଯାଏ।

ନିମ୍ନରେ ସମ୍ପୂର୍ଣ୍ଣ integration ଅଛି। WalletTools ହେଉଛି ଏକ Toolkit subclass, ଯାହା send_usdc register କରେ, ଯାହା real blockchain0x client କୁ call କରେ। ଏହାକୁ Agent ରେ add କରନ୍ତୁ ଏବଂ run() call tool invocation କୁ orchestrate କରେ। Agno schema build କରିବା ପାଇଁ method signature ଏବଂ docstring ପଢେ।

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.

ୱେବ୍‌ହୁକ୍ ହ୍ୟାଣ୍ଡଲିଂ

ସାଇନ୍ କରାଯାଇଥିବା ଓବ୍‌ହେକ୍ ସହିତ ଆସନ୍ତା ଦେୟଗୁଡିକୁ ନିଶ୍ଚୟ କରନ୍ତୁ।

ଯଦି ଆପଣଙ୍କ agent ମଧ୍ୟ USDC receive କରେ, polling ଚାଇଁତି ନୁହେଁ, webhook ଦ୍ୱାରା ଏହାକୁ confirm କରନ୍ତୁ। verify helper Node SDK ସହିତ ଆସେ; Python service ରେ ଆପଣ documented HMAC ଅନୁସାରେ ହାତେ verify କରନ୍ତି, ଯାହା helper ହିଁ କରେ। ତଳେ FastAPI example ଅଛି; ସେଇ code ଯେକୌଣସି async Python framework ରେ କାମ କରେ।

ୱେବ୍‌ହୁକ୍.ପାଇ
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}

algorithm ଟି t.rawBody string ଉପରେ HMAC-SHA256, constant-time compare, ଏବଂ 300-second replay window ବ୍ୟବହାର କରେ। await request.body() ମାଧ୍ୟମରେ raw body ପଢ଼ନ୍ତୁ, କେବେ ମଧ୍ୟ request.json() re-serialized କରନ୍ତୁ ନାହିଁ, କାରଣ ଏହା signature ଆବର୍ତ୍ତିତ bytes କୁ ପରିବର୍ତ୍ତନ କରେ। shipped events ହେଉଛି payment.received, payment.sent, wallet.deployed, ଏବଂ webhook.test। heavy follow-up work ପାଇଁ, job (Celery, arq) enqueue କରନ୍ତୁ ଏବଂ handler କୁ block କରିବା ପେକ୍ଷା ସତ୍ୱର 200 respond କରନ୍ତୁ।

ସୋର୍ସ ଏବଂ ଡକ୍ସ

ଆପଣ wrap କରୁଥିବା client open ଅଟେ। ଏହାକୁ ପଢ଼ନ୍ତୁ।

Clone କରିବା ପାଇଁ Agno starter package ନାହିଁ - ଉପରେ ଥିବା recipe ହିଁ integration। blockchain0x SDKs GitHub ଉପରେ open source ଅଟେ; ଏହି recipe Python SDK (blockchain0x-python) କୁ wrap କରେ, ଏବଂ docs ରେ full method surface ଅଛି। toolkit methods ପାଇଁ reference ଭାବେ ଏହାକୁ ପଢନ୍ତୁ।

github.com/tosh-labs/blockchain0x-python

Full SDK method surface ଏବଂ scopes the docs ରେ documented ଅଛି। Base Sepolia ବିରୁଦ୍ଧରେ sk_test_ key ରୁ ଆରମ୍ଭ କରନ୍ତୁ, ପରେ toolkit ଆପଣ ଆଶା କରୁଥିବାଭଳି କାମ କଲେ sk_live_ କୁ switch କରନ୍ତୁ।

ସାଧାରଣ ବିପଦ

ଆଗ୍ନୋ-ନିର୍ଦ୍ଦିଷ୍ଟ ଦେଖିବାକୁ ପାଞ୍ଚ ଜିନିଷ।

Agno ହେଉଛି ଏକ ସଫା ଏଜେଣ୍ଟ ଫ୍ରେମ୍ୱର୍କ ଯାହା ସହିତ ଏକତ୍ରିତ କରିବାକୁ, କିନ୍ତୁ ଏହାର କିଛି ସ୍ୱୟଂ ଗୋଟିଆ - ବିଶେଷତଃ Phidata ପୁନର୍ନାମୀକରଣ ଏବଂ ମାର୍କଡାଉନ୍ ରେଣ୍ଡରିଂ ଚାରିପାଖରେ।

PITFALL 1

Agno package ନାହିଁ - ଆପଣ SDK କୁ Toolkit ଭିତରେ wrap କରନ୍ତି

Blockchain0x LangChain ଏବଂ CrewAI ପାଇଁ adapters ସହିତ MCP server ମଧ୍ୟ ship କରେ; Agno ପାଇଁ dedicated package ନାହିଁ। ଉପରେ ଥିବା recipe ହିଁ path: ଏକ Toolkit subclass, ଯାହା real blockchain0x client କୁ call କରୁଥିବା method register କରେ। Agno tool schema build କରିବା ପାଇଁ method signature ଏବଂ docstring ପଢେ, ସେଥିପାଇଁ docstring କୁ ସଠିକ୍ ରଖନ୍ତୁ।

PITFALL 2

Phidata ରୁ Agno ମାଇଗ୍ରେସନ୍ ଗୋଠନ

Agno 2024 ରେ Phidata ରୁ ପୁନର୍ନାମୀତ ହୋଇଛି। phi.agent କିମ୍ବା phi.tools ରୁ ଆମଦାନି କରୁଥିବା ପୁରୁଣା କୋଡ୍ବେସ୍ ଏହାର ସହଯୋଗୀ ଶିମ୍ ଦ୍ୱାରା କାମ କରେ, କିନ୍ତୁ agno.* ଆମଦାନିଗୁଡିକ ବର୍ତ୍ତମାନ ଅଟେ। ବ୍ୟଞ୍ଜନ agno.* ସମସ୍ତ ଦିଗରେ ବ୍ୟବହାର କରେ; ଯଦି ଆପଣଙ୍କର କୋଡ୍ ଏପର୍ଯ୍ୟନ୍ତ phi.* ଆମଦାନିରେ ଅଛି, pip install -U agno କୁ ଚାଲାନ୍ତୁ ଏବଂ Toolkit ଯୋଗ କରିବା ପୂର୍ବରୁ ଆମଦାନି ପଥଗୁଡିକୁ ବଦଳାନ୍ତୁ।

PITFALL 3

ରାଶିଗୁଡ଼ିକ USDC base units ରେ, string ଭାବେ

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

ସିଙ୍କ୍ vs ଏସିଙ୍କ୍ ଚାଲନ୍ତୁ

Agno agent.run() (ସିଙ୍କ୍) ଏବଂ agent.arun() (ଏସିଙ୍କ୍) କୁ ସମର୍ଥନ କରେ। ପ୍ରତି ଏଜେଣ୍ଟ ପାଇଁ ଏକ ମୋଡ୍ ବାଛନ୍ତୁ - agent.run() କୁ କଲ୍ କରନ୍ତୁ ଏବଂ ଫଳାଫଳକୁ ଅପେକ୍ଷା କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ ଏବଂ ଆପଣଙ୍କୁ ଏକ କୋରୋଟିନ୍ ମିଳିବ ଯେଉଁଠାରେ ଆପଣ ଏକ ସ୍ତ୍ରିଙ୍ଗ୍ ଆପେକ୍ଷା କରୁଥିଲେ। Toolkit ମଧ୍ୟରେ blockchain0x କଲ୍ ସିଙ୍କ୍ରୋନସ୍; ଯଦି ଆପଣ ଏସିଙ୍କ୍ ପଥରେ ଅଛନ୍ତି ଏବଂ ବାସ୍ତବ ଆୟତନକୁ ଗତି କରୁଛନ୍ତି, ଏହାକୁ asyncio.to_thread ସହିତ ଘେରାଇବେ ଯାହା ଘଟଣା ଲୁପ୍କୁ ସ୍ରୋତାବାହୀ ରଖେ।

PITFALL 5

କଚା ଦେହ ବିପରୀତ ଓେଭୁକ୍ସକୁ ପରୀକ୍ଷା କରନ୍ତୁ

ଯଦି ଆପଣଙ୍କ agent ମଧ୍ୟ USDC receive କରେ, polling ଦ୍ୱାରା ନୁହେଁ, webhook ଦ୍ୱାରା ଏହାକୁ confirm କରନ୍ତୁ। RAW request bytes (await request.body()) ଉପରେ signature verify କରନ୍ତୁ, କେବେ ମଧ୍ୟ request.json() କୁ re-serialized କରିବେ ନାହିଁ, କାରଣ HMAC exact bytes କୁ ଆବରଣ କରେ। ଏହା 300-second replay window ସହିତ HMAC-SHA256। ତଳର handler ହିଁ ସମ୍ପୂର୍ଣ୍ଣ।

ପ୍ରାୟତଃ ପ୍ରଶ୍ନ

ତିନି Agno-ନିର୍ଦ୍ଦିଷ୍ଟ ପ୍ରଶ୍ନ।

ଇନଷ୍ଟଲ୍ କରିବାକୁ dedicated Agno package ଅଛି କି?

ନା। Agno ପୂର୍ବରୁ Toolkit method କୁ tool ରେ ପରିଣତ କରେ, ସେହିପାଇଁ ସତ୍ୟ path ହେଉଛି ଉପରେ ଦେଖାଯାଇଥିବା ପରି ଆପଣ ସ୍ୱୟଂ real blockchain0x client କୁ Toolkit subclass ଭିତରେ wrap କରନ୍ତୁ। ଏକମାତ୍ର shipped framework packages ହେଉଛି blockchain0x-langchain ଏବଂ blockchain0x-crewai (ଦୁହେଁ Python) ସହ @blockchain0x/mcp server। Agno, dedicated adapter ନଥିବା ଅନ୍ୟ frameworks ଭଳି, ଏହି କେତେକ line ର recipe ହେଉଛି।

ଏହା Agno Teams (ମଲ୍ଟି-ଏଜେଣ୍ଟ ସହଯୋଗ) ସହ କାମ କରେ କି?

ହଁ। Agno Teams ଅନେକ Agents କୁ ଗୋଟିଏ coordinated unit ଭିତରେ ମିଶାଏ। WalletTools toolkit ଏହାକୁ ତାଲିକାଭୁକ୍ତ କରୁଥିବା ଯେକୌଣସି agent ରେ କାମ କରେ। Teams ପାଇଁ ସଫା pattern ହେଲା wallet toolkit କୁ ଗୋଟିଏ dedicated treasurer agent କୁ ଦେବା ଏବଂ ଅନ୍ୟ ସଦସ୍ୟମାନଙ୍କୁ କାମ କରିବାକୁ ଦେବା, ଯାହାଦ୍ୱାରା spending authority ଗୋଟିଏ ଜାଗାରେ ରହେ - CrewAI recipe ର ସେଇ ଆକୃତି। read ଏବଂ settle methods toolkit ରେ ସେଇ ଭାବରେ ଯୋଗ କରନ୍ତୁ (blockchain0x.transactions.get, blockchain0x.agents.get, blockchain0x.payment_requests.settle)।

କି ଏହା ଚିନ୍ତନ ମଡେଲ୍ ଏବଂ AgentUI ସହିତ କାମ କରେ?

ହଁ। reasoning models (o1, DeepSeek R1) tools କୁ ସେଇ ଭାବରେ call କରନ୍ତି, କେବଳ ପ୍ରତି turn ଧୀରେ, ସେହିପାଇଁ call ସମାପ୍ତ ହେବା ପୂର୍ବରୁ user କୁ progress ଦେଖାଇବାକୁ partial response stream କରନ୍ତୁ। AgentUI, Agno ର run inspector ରେ, send_usdc call ଅନ୍ୟ tool ପରି tool-calls panel ରେ ଦେଖାଯାଏ, ଯାହା development ସମୟରେ Base Sepolia ଉପରେ ପେମେଣ୍ଟ ଚାଲିଯାଉଥିବାକୁ ଦେଖିବା ପାଇଁ ଉପଯୋଗୀ।

ଆପଣଙ୍କର Agno ଏଜେଣ୍ଟଙ୍କର କାମ ପାଇଁ ଶୁଳ୍କ ନିଅନ୍ତୁ।

ଏକ ଛୋଟ Toolkit ଯାହା ବାସ୍ତବ କ୍ଲାଇଏଣ୍ଟକୁ ଘେରାଇଛି, କୌଣସି ପ୍ୟାକେଜ୍ ଇନ୍ସ୍ଟଲ୍ କରିବାକୁ ଆବଶ୍ୟକ ନୁହେଁ। ଆରମ୍ଭ କରିବାକୁ ମାଗଣା।