Bindu
English |
Deutsch |
Español |
Français |
हिंदी |
বাংলা |
中文 |
Nederlands |
தமிழ்
AI এজেন্টদের জন্য পরিচয়, যোগাযোগ ও পেমেন্টের স্তর।
পরিস্থিতিটা এমন। আপনি একটা agent বানিয়েছেন। সে কাজও করছে। কিন্তু তাকে সত্যিই ছেড়ে দিতে চাইলে — অন্য agents-এর সাথে কথা বলা, সে কে তা প্রমাণ করা, কাজের বিনিময়ে টাকা নেওয়া — আপনাকে অনেক বিরক্তিকর প্লাম্বিং নিজে করতে হবে। একটা DID লাইব্রেরি বসানো। একটা OAuth ফ্লো দাঁড় করানো। পেমেন্ট মিডলওয়্যার। একটা HTTP লেয়ার যেটা agent দুনিয়ার বাকিরা যে protocol-ই ব্যবহার করছে সেটাই বলে।
Bindu হল এই পুরো প্লাম্বিং — মাত্র একটা ফাংশন কলের পেছনে। আপনি আপনার handler-কে `bindufy()` দিয়ে মুড়ে দেন, আর কয়েক সেকেন্ডের মধ্যে আপনার agent অনলাইন — নিজের ক্রিপ্টোগ্রাফিক পরিচয় নিয়ে, [A2A](https://github.com/a2aproject/A2A) (যে protocol অন্যান্য agents আগে থেকেই বলে) ভাষায় কথা বলতে বলতে, এবং কোনো কাজ শুরুর আগেই যেকোনো EVM চেইনে USDC দাবি করার জন্য তৈরি ([x402](https://github.com/coinbase/x402))। আপনার handler থাকে ঠিক ততটাই ছোট — `(messages) -> response`। handler-এর ভেতরে কোন framework — Agno, LangChain, CrewAI, নাকি আপনার নিজের — Bindu-র কিছু আসে যায় না।
Python, TypeScript, Kotlin-এর SDK আছে, এবং সবাই একই gRPC core ভাগ করে নেয়। ভাষাটা একটা পছন্দ; protocol আর পরিচয় যেকোনোভাবেই এক। যখন আরও গভীরে যেতে চাইবেন, [docs](https://docs.getbindu.com) পরের গন্তব্য।
## ইনস্টলেশন
আপনাকে Python 3.12+ এবং [uv](https://github.com/astral-sh/uv) লাগবে।
```bash
uv add bindu
```
যদি আপনি Bindu শুধু ব্যবহার নয়, Bindu-র ভেতরেই কাজ করছেন:
```bash
git clone https://github.com/getbindu/Bindu.git
cd Bindu
uv sync --dev
```
উদাহরণগুলো চালাতে অন্তত একটা LLM প্রোভাইডারের API key লাগবে — `OPENROUTER_API_KEY`, `OPENAI_API_KEY`, অথবা `MINIMAX_API_KEY`।
## কুইকস্টার্ট
যে agent বানাতে চান তা বানান, `bindufy()`-এর হাতে দিন, ব্যাস সে অনলাইন। নিচের ব্লকটাই পুরো জিনিস — একটা ফাইলে কপি করুন, আপনার `OPENAI_API_KEY` সেট করুন, চালান।
```python
import os
from bindu.penguin.bindufy import bindufy
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
agent = Agent(
instructions="You are a research assistant.",
model=OpenAIChat(id="gpt-4o"),
tools=[DuckDuckGoTools()],
)
config = {
"author": "you@example.com",
"name": "research_agent",
"description": "Research assistant with web search.",
"deployment": {"url": "http://localhost:3773", "expose": True},
"skills": ["skills/question-answering"],
}
def handler(messages: list[dict[str, str]]):
return agent.run(input=messages)
bindufy(config, handler)
```
Agent এখন `http://localhost:3773`-এ লাইভ। `expose: True` একটা FRP টানেল খুলে দেয়, যাতে বাকি ইন্টারনেট port forwarding না সেট করেই তার কাছে পৌঁছাতে পারে।
TypeScript সমতুল্য
```typescript
import { bindufy } from "@bindu/sdk";
import OpenAI from "openai";
const openai = new OpenAI();
bindufy({
author: "you@example.com",
name: "research_agent",
description: "Research assistant.",
deployment: { url: "http://localhost:3773", expose: true },
skills: ["skills/question-answering"],
}, async (messages) => {
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: messages.map(m => ({ role: m.role as "user" | "assistant" | "system", content: m.content })),
});
return response.choices[0].message.content || "";
});
```
TypeScript SDK ব্যাকগ্রাউন্ডে Python core চালু করে — আপনি তাকে দেখবেন না, এবং আপনার নিজের codebase-এ Python-এর একটাও লাইন লাগবে না। একই protocol, একই DID। পূর্ণ উদাহরণ [`examples/typescript-openai-agent/`](../examples/typescript-openai-agent/) এ।
curl দিয়ে agent-কে কল করা
```bash
curl -X POST http://localhost:3773/ \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "message/send",
"id": "",
"params": {
"message": {
"role": "user",
"kind": "message",
"parts": [{"kind": "text", "text": "Hello"}],
"messageId": "",
"contextId": "",
"taskId": ""
}
}
}'
```
তারপর একই `taskId` দিয়ে `tasks/get` poll করুন যতক্ষণ না state `completed`-এ পৌঁছায়।
## ফিচার
প্রতিটা সারি গাইডে লিংক করছে যেখানে আসলে বিস্তারে আলোচনা আছে।
| ফিচার | কী করে | Docs |
|---|---|---|
| **A2A JSON-RPC** | অন্যান্য agents যে protocol-ই আগে থেকে বলে। `message/send`, `tasks/get`, `message/stream` — পোর্ট 3773-এ। | — |
| **DID পরিচয়** | আপনার agent যে উত্তরই পাঠায় তাতে Ed25519 key দিয়ে সাইন করা থাকে। কল করা পক্ষ W3C DID দিয়ে যাচাই করে — কোনো শেয়ার করা secret নেই যা ফাঁস হতে পারে। | [DID.md](../docs/DID.md) |
| **Hydra-র মাধ্যমে OAuth2** | scoped token (`agent:read`, `agent:write`, `agent:execute`) — সব দরজা খোলে এমন একটাই bearer-এর বদলে। | [AUTHENTICATION.md](../docs/AUTHENTICATION.md) |
| **x402 পেমেন্ট** | একটা flag চালু করুন, agent USDC দাবি করতে শুরু করবে — আপনার handler request দেখার আগেই। **৫টা চেইন আগে থেকে কনফিগার করা** — Base, Base Sepolia, Ethereum, Ethereum Sepolia, SKALE Europa — আর অন্য যেকোনো EVM চেইন (Polygon, Avalanche, Arbitrum, …) একটা `extra_networks` এন্ট্রিতে ধরে যায়। | [PAYMENT.md](../docs/PAYMENT.md) |
| **পুশ নোটিফিকেশন** | টাস্কের state বদলালে agent আপনাকে webhook করে। polling বন্ধ করুন। | [NOTIFICATIONS.md](../docs/NOTIFICATIONS.md) |
| **Skills সিস্টেম** | ঘোষণা করুন আপনার agent কী করতে পারে; কল করা পক্ষ একটা token খরচের আগেই agent card-এ দেখে নেয়। | [SKILLS.md](../docs/SKILLS.md) |
| **প্রাইভেট skills** | আপনার বাণিজ্যিক skill বিবরণ পাবলিক ক্যাটালগের বাইরে রাখুন। পাবলিক crawler একটা সাধারণ "আমরা X করি" দেখে — allowlist-এ থাকা পার্টনার DID-রা আপনার আসল মেন্যু দেখে দ্বিতীয় auth-গেটেড endpoint-এ। যখন আপনার skill বিবরণ-ই আপনার প্রোডাক্ট রোডম্যাপ, তখন কাজে লাগে। | [PRIVATE_SKILLS.md](../docs/PRIVATE_SKILLS.md) |
| **এজেন্ট নেগোসিয়েশন** | দুই agent দাম, latency আর SLA নিয়ে আগেই একমত হয়ে নেয়। কোনো surprise bill নেই। | [NEGOTIATION.md](../docs/NEGOTIATION.md) |
| **স্টোরেজ** | task আর message-এর জন্য Postgres। পছন্দ হলে backend বদলে নিন। | [STORAGE.md](../docs/STORAGE.md) |
| **শিডিউলার** | Redis-ভিত্তিক retry, timeout আর পুনরাবৃত্ত task। | [SCHEDULER.md](../docs/SCHEDULER.md) |
| **পাবলিক টানেল** | `expose: true` আপনার ল্যাপটপকে ইন্টারনেটে এনে দাঁড় করায়। port forwarding না, router কনফিগও না। | [TUNNELING.md](../docs/TUNNELING.md) |
| **পলিগ্লট SDK** | Python, TypeScript, Kotlin — নিচে একই gRPC core, একই DID, একই auth। | [GRPC_LANGUAGE_AGNOSTIC.md](../docs/GRPC_LANGUAGE_AGNOSTIC.md) |
| **ক্লাউড ডিপ্লয়** | `bindu deploy agent.py --runtime=boxd` আপনার স্ক্রিপ্টকে একটা microVM-এ পাঠায় এবং HTTPS URL ছেপে দেয়। কোনো Dockerfile নেই। | [runtime/quickstart.md](../docs/runtime/quickstart.md) |
| **Gateway** | একটা planner LLM যেটা A2A-র মাধ্যমে agent-এর একটা বহরকে অর্কেস্ট্রেট করে এবং ফলাফল স্ট্রিম করে ফিরিয়ে দেয়। | [GATEWAY.md](../docs/GATEWAY.md) |
| **অবজার্ভেবিলিটি** | OpenTelemetry trace, Sentry error, একটা health endpoint। যে বিরক্তিকর জিনিসগুলো রাত ২টায় আপনাকে বাঁচায়। | [OBSERVABILITY.md](../docs/OBSERVABILITY.md) |
## ডেমো
[`inbox/`](../inbox/)-এ একটা Gmail-আকৃতির operator inbox-ও আছে। `cd inbox && npm run dev` চালান আর `http://localhost:3775` খুলুন।
## উদাহরণ
[`examples/`](../examples/) থেকে কিছু:
| উদাহরণ | কী দেখায় |
|---|---|
| [Agent Swarm](../examples/agent_swarm/) | Agno agents-এর একটা ছোট সমাজ, যারা একে অপরকে কাজ পাচার করে। |
| [Premium Advisor](../examples/premium-advisor/) | x402 বাস্তবে — কল করা পক্ষকে কিছু শুরু হওয়ার আগে USDC দিতে হয়। |
| [Hermes via Bindu](../examples/hermes_agent/) | Nous Research-এর Hermes agent, ~৯০ লাইনে bindufied। |
| [Gateway Test Fleet](../examples/gateway_test_fleet/) | পাঁচটা agent আর একটা gateway — multi-agent গল্প পুরোটা। |
| [TypeScript OpenAI Agent](../examples/typescript-openai-agent/) | শুধু TS-এর agent — আপনার repo-তে এক লাইন Python নেই। |
CSV বিশ্লেষণ, PDF Q&A, speech-to-text, web scraping, বহুভাষিক সহযোগিতা, blog লেখা — এসব নিয়ে ২০+ আরও আছে। [`examples/`](../examples/)-এ ঘুরে দেখুন।
## আমরা Bindu কেন বানিয়েছি
আমরা Bindu প্রোডাকশনে ব্যবহার করছি **Trade Compliance OS** বানাতে — agent-দের একটা ঝাঁক যেটা CBAM, EUDR, HS কোড আর Digital Product Passport সামলায়, যাতে একটা SMB কফি, টেক্সটাইল বা ইস্পাত সীমান্ত পার করে পাঠাতে পারে — কোনো ল ফার্মকে ছ-অঙ্কের চেক না লিখেই। সেই ঝাঁকের প্রতিটা agent bindufied। protocol, পরিচয়, পেমেন্ট রেল — Bindu-কে দিয়ে আমাদের প্রথমেই এগুলোই সমাধান করাতে হয়েছিল।
আপনি যদি এমন কোনো agent বানিয়ে থাকেন যেটা এই সবের সাথে ছোঁয়া রাখে — কাস্টমস কাগজপত্র, supplier audit, materials sourcing, regulatory filing — পাশের যেকোনো কিছু — আমরা তাকে নেটওয়ার্কে চাই। [Discord-এ এসে আমাদের খুঁজুন](https://discord.gg/3w5zuYUuwt) — কথা বলি।
## সমর্থিত ফ্রেমওয়ার্ক
যে দিয়ে আপনি আগে থেকেই agent লিখতে ভালোবাসেন, সেটাই নিয়ে আসুন। handler-এর ভেতরে কী আছে, Bindu-র সেটা নিয়ে মাথাব্যথা নেই।
| ভাষা | এই repo-তে যাচাই করা framework |
|---|---|
| **Python** | [AG2](https://github.com/ag2ai/ag2), [Agno](https://github.com/agno-agi/agno), [CrewAI](https://github.com/joaomdmoura/crewAI), [Hermes Agent](https://github.com/NousResearch/hermes-agent), [LangChain](https://github.com/langchain-ai/langchain), [LangGraph](https://github.com/langchain-ai/langgraph), [Notte](https://github.com/nottelabs/notte) |
| **TypeScript** | [OpenAI SDK](https://github.com/openai/openai-node), [LangChain.js](https://github.com/langchain-ai/langchainjs) |
| **Kotlin** | [OpenAI Kotlin SDK](https://github.com/aallam/openai-kotlin) |
| **অন্য যেকোনো** | [gRPC core](../docs/grpc/)-র মাধ্যমে — নতুন একটা SDK সাধারণত কয়েকশো লাইনের কাজ |
আপনার model provider যদি OpenAI বা Anthropic API বলে, তাহলে চলে — [OpenRouter](https://openrouter.ai/), [OpenAI](https://platform.openai.com/), [MiniMax](https://platform.minimaxi.com) এবং বাকিরা।
## ডকুমেন্টেশন
- [পূর্ণ docs সাইট](https://docs.getbindu.com)
- [একটা সুরক্ষিত agent-কে কল করা](../docs/AUTHENTICATION.md) — DID signing আর Hydra token-সহ auth ফ্লো, সঙ্গে চলমান একটা Python ক্লায়েন্ট
- [ক্লাউড ডিপ্লয়মেন্ট](../docs/runtime/quickstart.md) — `bindu deploy` walkthrough
- [Gateway](../docs/GATEWAY.md) — multi-agent অর্কেস্ট্রেশন
- [প্রাইভেট skills](../docs/PRIVATE_SKILLS.md) — আপনার বাণিজ্যিক মেন্যু পাবলিক ক্যাটালগ থেকে লুকান; শুধু allowlist-এর পার্টনার DID-দের দেখান
- [gRPC স্থাপত্য](../docs/grpc/) — যারা নতুন ভাষার SDK বানাচ্ছেন তাদের জন্য
- [জানা সমস্যা](../bugs/known-issues.md) — প্রোডাকশনে দেওয়ার আগে পড়ুন
- [Troubleshooting](../docs/AUTHENTICATION.md#troubleshooting) — যেসব এরর-এ ঠুকবেন, এবং সেগুলোর পাশ কাটানোর উপায়
## টেস্টিং
```bash
uv run pytest tests/unit/ -v # দ্রুত ইউনিট টেস্ট
uv run pytest tests/integration/grpc/ -v -m e2e # gRPC E2E
uv run pytest -n auto --cov=bindu --cov-report=term-missing # সম্পূর্ণ suite
```
## অবদান
```bash
git clone https://github.com/getbindu/Bindu.git
cd Bindu
uv venv --python 3.12.9 && source .venv/bin/activate
uv sync --dev
pre-commit run --all-files
```
সম্পূর্ণ গাইড [`.github/contributing.md`](../.github/contributing.md)-এ। প্রতিদিনের বেশিরভাগ আলাপ-আলোচনা [Discord](https://discord.gg/3w5zuYUuwt)-এ — এসে হাই বলে যান।
## মেইনটেইনার
## কৃতজ্ঞতা
Bindu অনেক ভালো open source-এর কাঁধে দাঁড়িয়ে আছে:
[FastA2A](https://github.com/pydantic/fasta2a) · [A2A](https://github.com/a2aproject/A2A) · [x402](https://github.com/coinbase/x402) · [Hugging Face chat-ui](https://github.com/huggingface/chat-ui) · [12 Factor Agents](https://github.com/humanlayer/12-factor-agents) · [OpenCode](https://github.com/anomalyco/opencode) · [OpenMoji](https://openmoji.org/) · [ASCII Space Art](https://www.asciiart.eu/space/other)
## Star ইতিহাস
## লাইসেন্স
Apache 2.0। [LICENSE.md](../LICENSE.md) দেখুন।
"আমরা সূর্যমুখী তত্ত্বে বিশ্বাস করি — একসাথে সোজা দাঁড়িয়ে, Agent-এর ইন্টারনেটে আশা আর আলো বয়ে আনতে।"