মূল বিষয়বস্তুতে যান
CREWAI ইন্টিগ্রেশন

Add supported payment workflows to CrewAI.

একটি CrewAI ক্রুকে একটি ওয়ালেট দিন। একটি নিবেদিত ট্রেজারার এজেন্ট USDC পাঠায়, ইনভয়েসগুলি নিষ্পত্তি করে এবং ব্যালেন্স পড়ে যখন কাজের এজেন্টরা কাজের উপর মনোযোগ দেয়।

সংক্ষিপ্ত উত্তর

AgentCredia একটি বাস্তব Python package, , ship করে। এটি install করুন, সেট করুন, কল করুন, এবং tool-গুলো একটি dedicated treasurer agent-কে দিন। সেই agent USDC পাঠাতে পারে, on-chain proof সহ invoice settle করতে পারে, এবং wallet পড়তে পারে, আর crew-এর work agent-দের কোনো wallet access থাকে না। USDC Base-এ settle হয়।

কেন একটি নিবেদিত অর্থমন্ত্রী ভূমিকা

CrewAI এর শক্তি হল ভূমিকা পৃথকীকরণ। এটিকে ওয়ালেটের জন্যও ব্যবহার করুন।

অন্যান্য ফ্রেমওয়ার্কগুলি প্রতিটি টুলকে একটি একক এজেন্টে চাপিয়ে দেয়। CrewAI এর ডিজাইন ভূমিকা বিচ্ছিন্নতা উৎসাহিত করে: একজন গবেষক গবেষণা করে, একজন লেখক লেখে, একজন পর্যালোচক পর্যালোচনা করে। অর্থের একই আচরণের প্রয়োজন - একটি নিবেদিত ট্রেজারার এজেন্ট ওয়ালেট টুলগুলি ধারণ করে, এবং কাজের এজেন্টগুলির কিছুই নেই। খরচের কর্তৃত্ব একটি জায়গায় থাকে পরিবর্তে ক্রুর মধ্যে ঘটে যাওয়া প্রতিটি এজেন্টের মধ্যে ফাঁস হওয়ার।

এই আকারটি অডিট ট্রেইলগুলিকে আরও স্পষ্ট করে। যখন USDC চলে, আপনি জানেন ঠিক কোন এজেন্ট এটি স্থানান্তরিত করেছে (অর্থমন্ত্রী) এবং এটি কোন কাজের জন্য ছিল (যেটি এটি হস্তান্তর করেছিল)। একক-এজেন্ট ইন্টিগ্রেশনগুলি সেই রেখাটি অস্পষ্ট করে এবং প্রতি-কাজের ব্যয় বিশ্লেষণকে কঠিন করে তোলে।

ইনস্টলেশন

একটি পিপ ইনস্টল। একটি পরিবেশের পরিবর্তনশীল।

প্যাকেজটির Python 3.10 বা তার নতুন সংস্করণ প্রয়োজন এবং এটি কবিতা বা পিপের সাথে কাজ করে। এটি মূল agentcredia SDK এবং crewai-কে নির্ভরতা হিসাবে টেনে আনে; যোগ করার জন্য আর কিছু নেই।

ইনস্টল করুন
pip install agentcredia-crewai
পরিবেশ ভেরিয়েবল
export AGENTCREDIA_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

AGENTCREDIA_API_KEY আপনার AgentCredia ড্যাশবোর্ড থেকে একটি sk_test_ testnet বা sk_live_ mainnet কী, এবং এটি একমাত্র পরিবর্তনশীল যা অ্যাডাপ্টারের প্রয়োজন - এটি কীটি ব্যাকএন্ডে ফরওয়ার্ড করে এবং নিজস্ব কোন গোপনীয়তা রাখে না। নিচের ওয়েবহুক হ্যান্ডলারের জন্য আপনি AGENTCREDIA_WEBHOOK_SECRET সেট করেন, যা আপনি একটি ওয়েবহুক তৈরি বা রোটেট করার সময় একবার ড্যাশবোর্ড ফেরত দেয়।

সম্পূর্ণ ক্রু উদাহরণ

বিলিং + গবেষণা ভূমিকা সহ একটি কার্যকর দুই-এজেন্ট ক্রু।

নিচে একটি সম্পূর্ণ CrewAI ক্রু রয়েছে যেখানে একটি ট্রেজার এজেন্ট একটি ডেটা বিক্রেতাকে USDC-তে পরিশোধ করে, এবং একটি গবেষক এজেন্ট ফলাফলটি ব্যবহার করে। ট্রেজার ওয়ালেট টুলস ধারণ করে; গবেষক কোনও ধারণা করে না। এটি একটি খরচকারী ক্রুর জন্য আদর্শ প্যাটার্ন।

CREW.PY
from crewai import Agent, Task, Crew
from agentcredia import Client
from agentcredia_crewai import create_agentcredia_toolset

client = Client()  # reads AGENTCREDIA_API_KEY from the environment
tools = create_agentcredia_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 an AgentCredia 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 agentcredia_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 আপনার এজেন্টে সেটেল হয়, AgentCredia আপনার ওয়েবহুক URL-এ একটি স্বাক্ষরিত ইভেন্ট POST করে। যাচাইকরণ সহায়ক নোড SDK-তে শিপ করা হয়; একটি পাইথন পরিষেবা নথিভুক্ত HMAC-এর বিরুদ্ধে হাতে যাচাই করে, যা আসলে সহায়কটি করে। নিচে Flask উদাহরণ; একই কোড FastAPI বা যেকোনো পাইথন ওয়েব ফ্রেমওয়ার্কে কাজ করে।

ওয়েবহুক_HANDLER.PY
import hmac, hashlib, os, time
from flask import Flask, request, abort

app = Flask(__name__)
SECRET = os.environ["AGENTCREDIA_WEBHOOK_SECRET"].encode()

@app.post("/webhooks/payment")
def receive():
    raw = request.get_data()  # RAW bytes - do not parse first
    sig = request.headers.get("X-AgentCredia-Signature", "")
    ts = request.headers.get("X-AgentCredia-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-AgentCredia-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() পুনরায় সিরিয়ালাইজড নয়, কারণ এটি স্বাক্ষরের কভার করা বাইটগুলি পরিবর্তন করে। স্থাপত্য: হ্যান্ডলারকে একটি কাজ (Celery, RQ, একটি Redis তালিকা) এনকিউ করতে দিন যা প্রকৃত CrewAI রানকে ট্রিগার করে। হ্যান্ডলারের ভিতরে crew.kickoff() কল করা মিনিট সময় নিতে পারে এবং HTTP অনুরোধটি টাইম আউট করে।

একটি টুল, অথবা সব পাঁচটি

ক্রুকে পুরো টুলসেট দিন, অথবা শুধু একটি টুল।

create_agentcredia_toolset পাঁচটি টুল ফেরত দেয়: agentcredia_send_payment, agentcredia_settle_invoice, agentcredia_get_wallet, agentcredia_list_wallets, এবং agentcredia_get_transaction। যদি একটি ক্রুর কেবল পেমেন্ট করতে হয়, তবে এটিকে একটি একক কারখানার সাথে কেবল সেটি দিন।

SINGLE_TOOL.PY
from agentcredia_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")

প্রতি-ক্ষমতা কারখানাগুলি হল create_payment_tool, create_invoice_tool, create_wallet_tool, create_wallets_list_tool, এবং create_transaction_tool। সোর্স এবং টেস্টনেট উদাহরণগুলি Python SDK রিপো এ বিদ্যমান; CrewAI সমর্থন ম্যাট্রিক্স ডকস এ রয়েছে।

সাধারণ ফাঁদ

একটি ক্রুতে বিলিং সংযোগ করার সময় লক্ষ্য করার জন্য পাঁচটি বিষয়।

CrewAI-এর ভূমিকা ভিত্তিক ডিজাইনই পেমেন্ট ইন্টিগ্রেশনকে অন্যান্য ফ্রেমওয়ার্কের তুলনায় পরিষ্কার করে। এর নিজস্ব কিছু সমস্যা রয়েছে। এগুলো আগে থেকেই জানা থাকলে সময় বাঁচায়।

PITFALL 1

ভুল এজেন্টে ওয়ালেট টুলগুলি রাখা

CrewAI এজেন্টের ভূমিকা রয়েছে। ওয়ালেট টুলগুলি গবেষককে দিন, যিনি গবেষণা করছেন, এবং LLM বিশ্লেষণের মধ্যবর্তী সময়ে অর্থ স্থানান্তর করার চেষ্টা করতে শুরু করে। পরিষ্কার প্যাটার্ন হল একটি নিবেদিত কোষাধ্যক্ষ এজেন্ট যা টুলগুলি ধারণ করে এবং তার নিজস্ব কাজ হিসাবে চলে; কাজের এজেন্টগুলির কোনও ওয়ালেট অ্যাক্সেস নেই। উপরের উদাহরণটি সেই আকার অনুসরণ করে। এটি অনুলিপি করুন।

PITFALL 2

সিকোয়েন্সিয়াল বনাম হায়ারার্কিকাল প্রক্রিয়া

CrewAI ধারাবাহিক (ডিফল্ট) এবং হায়ারার্কিকাল কার্যকরী সমর্থন করে। হায়ারার্কিকাল সহ, একটি ম্যানেজার এজেন্ট ক্রুকে সংগঠিত করে। যদি ম্যানেজারকে ওয়ালেট টুলগুলি অর্পণ করার অনুমতি দেওয়া হয়, তবে এটি যেকোনো অধীনস্থকে তা দিতে পারে, যা আপনি ব্যয় কর্তৃত্বের জন্য চান না। বা একটি নিবেদিত এজেন্টে টুলগুলি রাখুন এবং ধারাবাহিকভাবে চালান, অথবা ম্যানেজারের অর্পণ নিয়মগুলি সীমাবদ্ধ করুন।

PITFALL 3

কাজের প্রসঙ্গ থেকে নিষ্পত্তির স্থিতি পড়া

ইনবাউন্ড নিষ্পত্তি অ্যাসিঙ্ক্রোনাস। যদি গবেষণা কাজটি এর প্রসঙ্গে পেমেন্ট কাজ তালিকাবদ্ধ করে (ভাল) কিন্তু LLM তখন সেই প্রসঙ্গ থেকে একটি চূড়ান্ত পেমেন্ট স্থিতি পড়ার চেষ্টা করে (ভাল নয়, নিশ্চিতকরণ পরে ওয়েবহুক দ্বারা আসে), আপনি মিশ্রিত আউটপুট পান। ওয়েবহুক-প্রণোদিত সংকেতের উপর নিম্নগামী কাজ গেট করুন, কাজের প্রসঙ্গের উপর নয়। CrewAI এর কাজের কলব্যাকগুলি সঠিক হুক।

PITFALL 4

পরিমাণগুলি USDC বেস ইউনিট, স্ট্রিং হিসাবে

agentcredia_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.

PITFALL 5

ক্রু প্রক্রিয়ার বাইরে ওয়েবহুক হ্যান্ডলার

আপনার ওয়েবহুক হ্যান্ডলার সাধারণত একটি পৃথক Flask বা FastAPI প্রক্রিয়া, ক্রু রানটাইমের অংশ নয়। ক্রু তার kickoff() শেষ করে এবং ফিরে আসে; ওয়েবহুকটি পরে আসে যখন একটি পেমেন্ট সেটেল হয়। একটি কিউ বা একটি ডাটাবেস সারির মাধ্যমে দুটি সংযোগ করুন যা ওয়েবহুক লেখে এবং ক্রু তার পরবর্তী রানটিতে পড়ে। একটি ওয়েবহুকের জন্য অপেক্ষা করে ক্রুকে জীবিত রাখবেন না - CrewAI রানগুলি ডিজাইনের দ্বারা স্বল্পকালীন।

প্রায়শই জিজ্ঞাসিত

তিনটি CrewAI-নির্দিষ্ট প্রশ্ন।

এটি কি CrewAI Flows (নতুন গ্রাফ-ভিত্তিক কার্যকরী) এর সাথে কাজ করে?

হ্যাঁ। create_agentcredia_toolset স্ট্যান্ডার্ড CrewAI টুলগুলি ফেরত দেয়, তাই এগুলি ক্লাসিক Crew + Task কাঠামো এবং CrewAI Flow-এর @start/@listen প্যাটার্নে কাজ করে। ফ্লোতে, কাজের পদক্ষেপগুলির আগে একটি নিবেদিত কোষাধ্যক্ষ পদক্ষেপে পেমেন্ট বা সেটেলমেন্ট পদক্ষেপটি রাখুন এবং কাজের পদক্ষেপগুলি একটি ফ্লো ইভেন্টে শোনার জন্য রাখুন যা আপনার ওয়েবহুক হ্যান্ডলার শেয়ার করা রাষ্ট্র আপডেট করার পরে চালু হয়।

একই ক্রু কি একসাথে একাধিক পেইড টাস্ক চালাতে পারে?

হ্যাঁ। payments.create (যা agentcredia_send_payment মোড়ায়) একটি স্থিতিশীল Idempotency-Key স্বয়ংক্রিয়ভাবে তৈরি করে, তাই একটি পুনরায় চেষ্টা করা জমা একটি একক অন-চেইন স্থানান্তরে সংকুচিত হয় বরং দ্বিগুণ পেমেন্টে। যদি আপনি সমান্তরাল কিকঅফগুলি ছড়িয়ে দেন যা প্রতিটি অর্থ স্থানান্তর করে, তবে প্রতিটি তাদের নিজস্ব উদ্দেশ্য (বিভিন্ন প্রাপক বা মেটাডেটা) দিন যাতে তারা একে অপরের অনুরূপ না দেখায়। আপনি যদি প্রক্রিয়াগুলির মধ্যে ডিডুপ করতে চান তবে আপনি নিজে idempotency হেডার পরিচালনা করেন না।

ক্রু কি ইনভয়েস নিষ্পত্তি করতে পারে, এবং কি একটি ফেরত টুল আছে?

এটি নিষ্পত্তি করতে পারে: agentcredia_settle_invoice একটি পেমেন্ট রিকোয়েস্ট নিষ্পত্তি করে যা আপনি ড্যাশবোর্ডে তৈরি করেছেন এবং অন-চেইন প্রমাণ (tx hash, পেমেন্টকারী, যাচাইকৃত USDC পরিমাণ) রেকর্ড করে। কোন রিফান্ড সহায়ক নেই - সেই শনাক্তকারী বিদ্যমান নেই। তহবিল ফেরত দিতে, ট্রেজারার কেবল একটি নতুন USDC পেমেন্ট পেমেন্টকারীকে agentcredia_send_payment এর মাধ্যমে পাঠায়। এটি ট্রেজারার ভূমিকার উপর রাখুন যাতে ব্যয় কর্তৃত্ব এক জায়গায় থাকে।

আপনার ক্রুকে একটি বিলিং ভূমিকা যোগ করুন।

পিপ ইনস্টল থেকে আপনার প্রথম পেইড ক্রু কিকঅফে মিনিটের মধ্যে। শুরু করতে ফ্রি।