GetBindu/Bindu
Bindu: The identity, communication, and payments layer for AI agents.
Bindu – AI代理人的身份、通信与支付层
是什么 – Bindu 是一个框架,只需一次函数调用,即可将任何基于 LLM 的「代理」(无论是使用 LangChain、CrewAI、Agno 还是您自己的代码编写)转换为网络就绪的服务。它提供了大多数代理开发者花费数周构建的底层基础设施:
- 基于加密 DID 的身份
- 双向 TLS(mTLS)传输
- 通过 Ory Hydra 的 OAuth2 授权
- 签名的 JSON-RPC 消息(A2A 协议)
- 可选的链上 USDC 支付强制(x402)
- 技能广告
- 推送通知
- 云或本地部署助手
- 共享相同 gRPC 核心的多语言 SDK(Python、TypeScript、Kotlin)
简而言之,Bindu 使代理表现得像一个第一类互联网服务,同时保持开发者侧的处理器代码简单如 def handler(messages): …。
核心概念与功能
| 功能 | 作用 |
|---|---|
| A2A JSON-RPC | 基于 HTTP/gRPC 的标准 JSON-RPC(message/send、tasks/get、message/stream) |
| mTLS 传输 | 每个代理运行一个 HTTPS 服务器,使用短期有效的 X.509 证书,其主题备用名称(Subject-Alt-Name)为代理的 DID |
| DID 身份 | Ed25519 密钥对每个请求体进行签名;调用方通过 DID 文档验证签名 |
| 通过 Hydra 的 OAuth2 | 由 Ory Hydra 发行的带作用域的 Bearer 令牌(agent:read、agent:write、agent:execute);DID 也是 client_id |
| x402 支付 | 代理可在任何 EVM 链上要求 USDC 支付后才处理请求。预配置了五个链;其他链只需简单配置即可添加 |
| 技能系统 | 能力的声明式列表;在代理的「卡片」上可见,调用方可了解可请求的内容 |
| 私有技能 | 隐藏商业技能描述,不公开于目录;仅允许列表中的 DID 可见完整列表 |
| 协商 | 两个代理可在工作开始前就价格、延迟和 SLA 达成一致 |
| 推送通知 | 任务状态变更时通过 Webhook 回调,无需轮询 |
| 调度器与存储 | PostgreSQL 存储任务/消息;Redis 支持重试、超时和定期任务 |
公共隧道(expose: true) |
一键 FRP 隧道,使本地运行的代理无需端口转发即可从互联网访问 |
| 多语言 SDK | Python(bindu)、TypeScript(@bindu/sdk)、Kotlin – 均使用相同 gRPC 协议并共享同一 DID |
云部署(bindu deploy) |
将脚本打包为微 VM,配置 TLS,并返回公共 HTTPS URL – 无需 Dockerfile |
| 网关 | 一个规划型 LLM,可协调多个代理,并将合并后的响应流式返回调用者 |
| 可观测性 | OpenTelemetry 跟踪、Sentry 错误报告、健康检查端点 |
快速入门(Python)
# 安装库(需要 Python 3.12+ 和 uv)
uv add bindu
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) # 在 http://localhost:3773 启动代理
- 相同流程在 TypeScript 中也适用 – SDK 会在后台启动 Python 核心。
典型用例
- 企业级代理群组 – 例如,作者使用 Bindu 构建「贸易合规操作系统」,数十个代理协商、支付并交换海关数据。
- 付费 AI API – 暴露一个基于模型的服务,仅在调用方在 EVM 链上支付 USDC 后才运行。
- 多代理编排 – 内置网关可协调多个专用代理(搜索、摘要、翻译),并流式返回统一答案。
- 安全 B2B 集成 – mTLS + DID 签名 + OAuth2 提供纵深防御模型,适用于受监管环境。
- 快速原型开发 – 开发者可启动本地代理,通过一个标志公开,无需 Docker 或云基础设施即可测试端到端流程。
生态系统与语言支持
| 语言 | SDK 入口点 | 测试过的框架 |
|---|---|---|
| Python | bindu (pip) |
Agno, LangChain, CrewAI, Hermes, LangGraph, Notte |
| TypeScript | @bindu/sdk (npm) |
OpenAI SDK, LangChain.js |
| Kotlin | io.github.getbindu:bindu-sdk (Maven) |
OpenAI Kotlin SDK |
| 其他 | gRPC 核心(docs/grpc/) |
– |
所有 SDK 共享相同的 gRPC 定义,因此添加新语言只需几百行包装代码。
成熟度与社区
- 版本 – PyPI 标签显示的最新版本(v ?)
- 测试 – 每个 PR 都运行单元、集成和端到端测试;提供覆盖率标签
- CI – GitHub Actions 强制执行代码格式化、类型检查和测试执行
- 社区 – Discord 服务器、贡献者列表,以及
examples/中 20+ 个示例代理 - 文档 – 完整文档站(
https://docs.getbindu.com)及安全、部署、支付和故障排除的详细 Markdown 指南
许可证
Apache 2.0 – 宽松的开源许可证
总结
Bindu 是一个生产级、以安全为先的平台,抽象了 AI 代理的「身份-传输-支付」栈。如果您已有 LLM 驱动的代理,希望它与其他代理通信、按使用收费,或在多租户环境中安全运行,只需一次 bindufy() 调用和少量配置选项即可实现。
相关
- Dispatch
- 项目
- Dispatch
- 项目
- Dispatch