CrewAI ಪಾವತಿ ಸಮೀಕರಣ.
CrewAI ಕ್ರೂಗೆ ಒಂದು ವಾಲೆಟ್ ನೀಡಿ. ಒಬ್ಬ ನಿಷ್ಠಾವಂತ ಖಜಾಂಚಿ ಏಜೆಂಟ್ USDC ಕಳುಹಿಸುತ್ತಾನೆ, ಬಿಲ್ಗಳನ್ನು ನಿಗಮಿಸುತ್ತಾನೆ ಮತ್ತು ಕೆಲಸ ಏಜೆಂಟ್ಗಳು ಕೆಲಸದ ಮೇಲೆ ಗಮನ ಕೇಂದ್ರೀಕರಿಸುತ್ತಿರುವಾಗ ಶ್ರೇಣಿಗಳನ್ನು ಓದುತ್ತಾನೆ.
Blockchain0x ನಿಜವಾದ Python package, , ಅನ್ನು ship ಮಾಡುತ್ತದೆ. ಅದನ್ನು install ಮಾಡಿ, set ಮಾಡಿ, call ಮಾಡಿ, ಮತ್ತು tools ಅನ್ನು dedicated treasurer agent ಗೆ ನೀಡಿ. ಆ agent USDC ಕಳುಹಿಸಬಹುದು, on-chain proof ಜೊತೆಗೆ invoice settle ಮಾಡಬಹುದು, ಮತ್ತು wallets ಓದಬಹುದು, ಆದರೆ crew ನ work agents ಗಳಿಗೆ ಯಾವುದೇ wallet access ಇರುವುದಿಲ್ಲ. USDC Base ನಲ್ಲಿ settle ಆಗುತ್ತದೆ.
CrewAI ಯ ಶಕ್ತಿ ಪಾತ್ರ ವಿಭಜನೆಯಾಗಿದೆ. ಇದನ್ನು ವಾಲೆಟ್ಗಾಗಿ ಬಳಸಿರಿ.
ಇತರ ಫ್ರೇಮ್ವರ್ಕ್ಗಳು ಪ್ರತಿಯೊಂದು ಸಾಧನವನ್ನು ಒಬ್ಬ ಏಜೆಂಟ್ಗೆ ಒಟ್ಟುಗೂಡಿಸುತ್ತವೆ. CrewAI ಯ ವಿನ್ಯಾಸವು ಪಾತ್ರ ವಿಭಜನೆಗೆ ಉತ್ತೇಜನ ನೀಡುತ್ತದೆ: ಒಂದು ಸಂಶೋಧಕ ಸಂಶೋಧನೆ ಮಾಡುತ್ತಾನೆ, ಒಂದು ಲೇಖಕ ಬರೆಯುತ್ತಾನೆ, ಒಂದು ವಿಮರ್ಶಕ ವಿಮರ್ಶೆ ಮಾಡುತ್ತಾನೆ. ಹಣಕ್ಕೆ ಒಂದೇ ರೀತಿಯ ಚಿಕಿತ್ಸೆ ಅಗತ್ಯವಿದೆ - ಒಂದು ಸಮರ್ಪಿತ ಖಜಾಂಚಿ ಏಜೆಂಟ್ ವಾಲೆಟ್ ಸಾಧನಗಳನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಕೆಲಸದ ಏಜೆಂಟ್ಗಳಿಗೆ ಏನೂ ಇಲ್ಲ. ಖರ್ಚು ಅಧಿಕಾರವು ಕ್ರೂನಲ್ಲಿ ಇರುವ ಪ್ರತಿಯೊಂದು ಏಜೆಂಟ್ ಮೂಲಕ ಲೀಕ್ ಆಗುವುದಿಲ್ಲ.
ಈ ರೂಪವು ಆಡಿಟ್ ಪಥಗಳನ್ನು ಹೆಚ್ಚು ಸ್ಪಷ್ಟವಾಗಿಸುತ್ತದೆ. USDC ಚಲಿಸುತ್ತಿರುವಾಗ, ನೀವು ಯಾವ ಏಜೆಂಟ್ ಇದನ್ನು ಚಲಾಯಿಸುತ್ತಿದೆ ಎಂಬುದನ್ನು (ಖಜಾಂಚಿ) ಮತ್ತು ಇದು ಯಾವ ಕಾರ್ಯಕ್ಕಾಗಿ ಎಂಬುದನ್ನು (ಇದಕ್ಕೆ ಹಸ್ತಾಂತರಿಸಿದದು) ಖಚಿತವಾಗಿ ತಿಳಿಯುತ್ತೀರಿ. ಒಬ್ಬ ಏಜೆಂಟ್ ಇಂಟಿಗ್ರೇಶನ್ ಆ ಸಾಲನ್ನು ಮಸುಕಾಗಿಸುತ್ತದೆ ಮತ್ತು ಕಾರ್ಯದ ಪ್ರಕಾರ ಖರ್ಚು ವಿಶ್ಲೇಷಣೆಯನ್ನು ಕಠಿಣವಾಗಿಸುತ್ತದೆ.
ಒಂದು ಪಿಪ್ ಸ್ಥಾಪನೆ. ಒಂದು ಪರಿಸರ ಚರ.
ಈ ಪ್ಯಾಕೇಜ್ಗೆ Python 3.10 ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೊಸದು ಬೇಕು ಮತ್ತು poetry ಅಥವಾ pip ಜೊತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು core blockchain0x SDK ಮತ್ತು crewai ಅನ್ನು dependencies ಆಗಿ pull ಮಾಡುತ್ತದೆ; ಮತ್ತೇನನ್ನೂ ಸೇರಿಸುವ ಅಗತ್ಯವಿಲ್ಲ.
pip install blockchain0x-crewaiexport BLOCKCHAIN0X_API_KEY=sk_test_... # sk_test_ = Base Sepolia, sk_live_ = Base mainnet
BLOCKCHAIN0X_API_KEY ನಿಮ್ಮ Blockchain0x dashboard ನಿಂದ ಬಂದಿರುವ sk_test_ testnet ಅಥವಾ sk_live_ mainnet key ಆಗಿದೆ, ಮತ್ತು adapter ಗೆ ಬೇಕಾಗುವ ಏಕೈಕ variable ಅದೇ - ಅದು key ಅನ್ನು backend ಗೆ forward ಮಾಡುತ್ತದೆ ಮತ್ತು ತನ್ನದೇ secret ಅನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಕೆಳಗಿನ webhook handler ಗಾಗಿ ನೀವು BLOCKCHAIN0X_WEBHOOK_SECRET ಅನ್ನು ಕೂಡ ಹೊಂದಿಸಬೇಕು, webhook ಅನ್ನು create ಅಥವಾ rotate ಮಾಡುವಾಗ dashboard ಅದನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ನೀಡುತ್ತದೆ.
ಬಿಲ್ಲಿಂಗ್ + ಸಂಶೋಧನಾ ಪಾತ್ರಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಣೆಯ ಎರಡು ಏಜೆಂಟ್ ಕ್ರೂ.
ಕೆಳಗೆ USDC ನಲ್ಲಿ ಡೇಟಾ ವಿಕ್ರೇತಾಳಿಗೆ ಪಾವತಿಸುವ ಖಜಾಂಚಿ ಏಜೆಂಟ್ ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಬಳಸುವ ಸಂಶೋಧಕ ಏಜೆಂಟ್ ಇರುವ ಸಂಪೂರ್ಣ CrewAI ತಂಡವಿದೆ. ಖಜಾಂಚಿ ವಾಲೆಟ್ ಸಾಧನಗಳನ್ನು ಹೊಂದಿರುತ್ತಾನೆ; ಸಂಶೋಧಕನಿಗೆ ಯಾವುದೂ ಇಲ್ಲ. ಇದು ಖರ್ಚು ಮಾಡುವ ತಂಡಕ್ಕೆ ಶ್ರೇಣೀಬದ್ಧ ಮಾದರಿಯಾಗಿದೆ.
from crewai import Agent, Task, Crew from blockchain0x import Client from blockchain0x_crewai import create_blockchain0x_toolset client = Client() # reads BLOCKCHAIN0X_API_KEY from the environment tools = create_blockchain0x_toolset(client) # A dedicated treasurer holds the wallet tools; the work agents do not. treasurer = Agent( role="Treasurer", goal="Pay vendor invoices in USDC within owner-set limits", backstory="Operates a Blockchain0x agent wallet on Base.", tools=tools, allow_delegation=False, ) researcher = Agent( role="Senior Market Analyst", goal="Produce a thorough Q4 LLM market analysis", backstory="A specialist analyst with 10 years in tech-market research.", tools=[], allow_delegation=False, ) pay_task = Task( description="Pay 0.01 USDC from our agent wallet to the data vendor at 0xVendor.", expected_output="The transaction hash of the settled payment.", agent=treasurer, ) research_task = Task( description="Using the purchased dataset, write the Q4 LLM market analysis.", expected_output="A 1,500-word market analysis.", agent=researcher, context=[pay_task], ) crew = Crew(agents=[treasurer, researcher], tasks=[pay_task, research_task]) result = crew.kickoff()
When you call crew.kickoff(), the pay_task runs first: the treasurer calls blockchain0x_send_payment, the SDK submits the transfer on Base, and the transaction hash is the task output. The research_task runs next and uses the purchased result. amount_wei is USDC base units, so 0.01 USDC is the string "10000". On a sk_test_ key the whole flow runs on Base Sepolia, and payments.create can answer 503 until the chain adapter is wired for your network.
ಪಾವತಿ ನೆಲೆಸುವಾಗ ಮುಂದಿನ ಕ್ರೂವನ್ನು ಪ್ರಚೋದಿಸುತ್ತಿದೆ.
USDC ನಿಮ್ಮ agent ಗೆ settle ಆದಾಗ, Blockchain0x ನಿಮ್ಮ webhook URL ಗೆ signed event ಅನ್ನು POST ಮಾಡುತ್ತದೆ. verify helper Node SDK ಯಲ್ಲಿ ship ಆಗಿದೆ; Python service ದಾಖಲಾಗಿರುವ HMAC ವಿರುದ್ಧ ಕೈಯಾರೆ verify ಮಾಡುತ್ತದೆ, helper ಮಾಡುವುದೂ ಅದೇ. ಕೆಳಗೆ Flask example ಇದೆ; ಅದೇ code FastAPI ಅಥವಾ ಯಾವುದೇ Python web framework ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ.
import hmac, hashlib, os, time from flask import Flask, request, abort app = Flask(__name__) SECRET = os.environ["BLOCKCHAIN0X_WEBHOOK_SECRET"].encode() @app.post("/webhooks/payment") def receive(): raw = request.get_data() # RAW bytes - do not parse first sig = request.headers.get("X-Blockchain0x-Signature", "") ts = request.headers.get("X-Blockchain0x-Timestamp", "") # Header is "t=<unix>,v1=<hex>"; some proxies send bare hex + the ts header. 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: abort(401) if request.headers.get("X-Blockchain0x-Event-Type") == "payment.received": run_followup_for(request.get_json()) # USDC landed - do the work return "ok", 200
ಇದು ವಾಸ್ತವ ಆಲ್ಗಾರಿತಮ್: HMAC-SHA256 ಸ್ಟ್ರಿಂಗ್ t.rawBody ಮೇಲೆ, ನಿರಂತರ-ಕಾಲ ಹೋಲಿಸುವಿಕೆ ಮತ್ತು 300-ಸೆಕೆಂಡು ಪುನರಾವೃತ್ತ ಕಿಟಕಿ. ಕಚ್ಚಾ ಶರೀರವನ್ನು ಓದಿ (request.get_data()), request.get_json() ಪುನಃ-ಸೀರಿಯಲೈಜ್ ಮಾಡಬೇಡಿ, ಏಕೆಂದರೆ ಅದು ಸಹಿ ಕವರ್ ಮಾಡುವ ಬೈಟ್ಸ್ ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ವಾಸ್ತುಶಾಸ್ತ್ರ: ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಕಾರ್ಯವನ್ನು.enqueue ಮಾಡಲು ಹೊಂದಿಸಿ (Celery, RQ, Redis ಪಟ್ಟಿ) ಇದು ವಾಸ್ತವ CrewAI ಕಾರ್ಯವನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ. ಹ್ಯಾಂಡ್ಲರ್ನಲ್ಲಿ crew.kickoff() ಅನ್ನು ಕರೆ ಮಾಡುವುದು ನಿಮಿಷಗಳ ಕಾಲ ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಮತ್ತು HTTP ವಿನಂತಿಯನ್ನು ಸಮಯ ಮಿತಿಯೊಳಗೆ ಮುಗಿಸುತ್ತದೆ.
ಕ್ರೂಗೆ ಸಂಪೂರ್ಣ ಸಾಧನಗಳನ್ನು ಅಥವಾ ಒಂದೇ ಸಾಧನವನ್ನು ನೀಡಿ.
create_blockchain0x_toolset ಎಲ್ಲಾ ಐದು ಸಾಧನಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ: blockchain0x_send_payment, blockchain0x_settle_invoice, blockchain0x_get_wallet, blockchain0x_list_wallets, ಮತ್ತು blockchain0x_get_transaction. ಕ್ರೂಗೆ ಕೇವಲ ಪಾವತಿಸುವ ಅಗತ್ಯವಿದ್ದರೆ, ಅದನ್ನು ಒಬ್ಬ ಏಕಕಾಲದಲ್ಲಿ ಮಾತ್ರ ನೀಡಿ.
from blockchain0x_crewai import create_payment_tool pay = create_payment_tool(client) # amount_wei is USDC base units: 6 decimals, so 10000 = 0.01 USDC. pay.run(agent_id="agt_123", to="0xRecipient", amount_wei="10000")
ಪ್ರತಿ capability ಗಾಗಿ ಇರುವ factories create_payment_tool, create_invoice_tool, create_wallet_tool, create_wallets_list_tool, ಮತ್ತು create_transaction_tool. Source ಮತ್ತು testnet examples the Python SDK repo ನಲ್ಲಿ ಲಭ್ಯ; CrewAI support matrix the docs ನಲ್ಲಿ ಇದೆ.
ಕ್ರೂಗೆ ಬಿಲ್ಲಿಂಗ್ ಅನ್ನು ವೈರ್ ಮಾಡುವಾಗ ಗಮನಿಸುವ ಐದು ವಿಷಯಗಳು.
CrewAI ಯ ಪಾತ್ರ ಆಧಾರಿತ ವಿನ್ಯಾಸವು ಇತರ ಫ್ರೇಮ್ವರ್ಕ್ಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಪಾವತಿ ಸಮೀಕರಣವನ್ನು ಶುದ್ಧವಾಗಿಸುತ್ತದೆ. ಇದರಲ್ಲಿ ತನ್ನದೇ ಆದ ಅಪಾಯಗಳೂ ಇವೆ. ಇವನ್ನು ಮುಂಚಿತವಾಗಿ ತಿಳಿದುಕೊಳ್ಳುವುದು ಸಮಯವನ್ನು ಉಳಿಸುತ್ತದೆ.
ತಪ್ಪಾದ ಏಜೆಂಟ್ ಮೇಲೆ ವಾಲೆಟ್ ಸಾಧನಗಳನ್ನು ಇಡುವುದು
CrewAI ಏಜೆಂಟ್ಗಳಿಗೆ ಪಾತ್ರಗಳಿವೆ. ವಾಲೆಟ್ ಸಾಧನಗಳನ್ನು ಸಂಶೋಧಕನಿಗೆ ನೀಡಿ, ಅವರು ಸಂಶೋಧಿಸುತ್ತಿರುವಾಗ, LLM ವಿಶ್ಲೇಷಣೆಯ ಮಧ್ಯದಲ್ಲಿ ಹಣವನ್ನು ಚಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. ಶುದ್ಧ ಮಾದರಿಯು ಸಾಧನಗಳನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಂಡು ತನ್ನದೇ ಆದ ಕಾರ್ಯವಾಗಿ ಓಡಿಸುವ ಸಮರ್ಪಿತ ಖಜಾನೆ ಏಜೆಂಟ್; ಕಾರ್ಯ ಏಜೆಂಟ್ಗಳಿಗೆ ವಾಲೆಟ್ ಪ್ರವೇಶವಿಲ್ಲ. ಮೇಲಿನ ಉದಾಹರಣೆ ಆ ರೂಪವನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ಇದನ್ನು ನಕಲು ಮಾಡಿ.
ಕ್ರಮಬದ್ಧ vs ಹಿರಾರ್ಕಿಕ ಪ್ರಕ್ರಿಯೆಗಳು
CrewAI ಕ್ರಮಬದ್ಧ (ಡೀಫಾಲ್ಟ್) ಮತ್ತು ಶ್ರೇಣೀಬದ್ಧ ಕಾರ್ಯಗತಗೊಳಣೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಶ್ರೇಣೀಬದ್ಧದಲ್ಲಿ, ನಿರ್ವಹಕ ಏಜೆಂಟ್ ಕ್ರೂ ಅನ್ನು ಆಯೋಜಿಸುತ್ತಾನೆ. ನಿರ್ವಹಕನು ವಾಲೆಟ್ ಸಾಧನಗಳನ್ನು ನಿಯೋಜಿಸಲು ಅನುಮತಿಸಿದರೆ, ಅದು ಯಾವುದೇ ಅಧೀನರಿಗೆ ನೀಡಬಹುದು, ಇದು ಖರ್ಚು ಅಧಿಕಾರಕ್ಕಾಗಿ ನೀವು ಬಯಸುವುದಿಲ್ಲ. ಸಾಧನಗಳನ್ನು ಒಂದೇ ಸಮರ್ಪಿತ ಏಜೆಂಟ್ನಲ್ಲಿ ಇಟ್ಟುಕೊಳ್ಳಿ ಮತ್ತು ಕ್ರಮಬದ್ಧವಾಗಿ ಓಡಿಸಿ, ಅಥವಾ ನಿರ್ವಹಕರ ನಿಯೋಜನೆ ನಿಯಮಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ.
ಕಾರ್ಯದ ಸಂದರ್ಭದಿಂದ ನಿಗಮ ಸ್ಥಿತಿಯನ್ನು ಓದುತ್ತಿದೆ
ಒಳನೋಡು ನಿಗಮವು ಅಸಿಂಕ್ರೋನಸ್ ಆಗಿದೆ. ಸಂಶೋಧನಾ ಕಾರ್ಯವು ಅದರ ಸಂದರ್ಭದಲ್ಲಿ ಪಾವತಿ ಕಾರ್ಯವನ್ನು ಪಟ್ಟಿ ಮಾಡಿದರೆ (ಚೆನ್ನಾಗಿದೆ) ಆದರೆ LLM ನಂತರ ಆ ಸಂದರ್ಭದಿಂದ ಅಂತಿಮ ಪಾವತಿ ಸ್ಥಿತಿಯನ್ನು ಓದಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೆ (ಚೆನ್ನಾಗಿಲ್ಲ, ದೃಢೀಕರಣವು ನಂತರ ವೆಬ್ಹುಕ್ ಮೂಲಕ ಬರುತ್ತದೆ), ನೀವು ಗೊಂದಲದ ಔಟ್ಪುಟ್ ಅನ್ನು ಪಡೆಯುತ್ತೀರಿ. ಕಾರ್ಯದ ಸಂದರ್ಭದ ಮೇಲೆ ಅಲ್ಲ, ವೆಬ್ಹುಕ್-ಚಾಲಿತ ಸಂಕೇತದ ಮೇಲೆ ಹಿಂಬಾಲ ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸಿ. CrewAI ಯ ಕಾರ್ಯದ ಪ್ರತಿಕ್ರಿಯೆಗಳು ಸರಿಯಾದ ಹೂಕ್.
ಮೌಲ್ಯಗಳು USDC ಆಧಾರ ಘಟಕಗಳಾಗಿವೆ, ಸ್ಟ್ರಿಂಗ್ಗಳಂತೆ
blockchain0x_send_payment takes amount_wei: a string of USDC base units, not a float and not a dollar figure. USDC has 6 decimals, so 0.01 USDC is "10000". CrewAI passes tool inputs through as-is, so a Python float arrives as a float and the SDK rejects it - but the error reads like a CrewAI tool error, which throws off first integrators. Pass a string.
Webhook ಹ್ಯಾಂಡ್ಲರ್ ಕ್ರೂ ಪ್ರಕ್ರಿಯೆಯ ಹೊರಗೆ
ನಿಮ್ಮ ವೆಬ್ಹುಕ್ ಹ್ಯಾಂಡ್ಲರ್ ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರತ್ಯೇಕ Flask ಅಥವಾ FastAPI ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ, ಕ್ರೂ ರನ್ಟೈಮ್ನ ಭಾಗವಲ್ಲ. ಕ್ರೂ ತನ್ನ kickoff() ಅನ್ನು ಮುಗಿಸುತ್ತದೆ ಮತ್ತು ಹಿಂದಿರುಗುತ್ತದೆ; ಪಾವತಿ ನಿಗಮವಾಗುವಾಗ ವೆಬ್ಹುಕ್ ನಂತರ ಬೀಳುತ್ತದೆ. ವೆಬ್ಹುಕ್ ಬರೆಯುವ ಮತ್ತು ಕ್ರೂ ತನ್ನ ಮುಂದಿನ ಓಟದಲ್ಲಿ ಓದುವ ಡೇಟಾಬೇಸ್ ಸಾಲು ಅಥವಾ ಕ್ಯೂ ಮೂಲಕ ಈ ಎರಡನ್ನು ಸೇರುವಂತೆ ಮಾಡಿ. ವೆಬ್ಹುಕ್ ಕಾಯುವುದಕ್ಕಾಗಿ ಕ್ರೂ ಅನ್ನು ಜೀವಂತವಾಗಿ ಇಡಬೇಡಿ - CrewAI ಓಟಗಳು ವಿನ್ಯಾಸದಿಂದ ಶ್ರೇಣೀಬದ್ಧವಾಗಿವೆ.