Skip to main content

A protocol framework for agent-to-agent communication

Project description

bindu Logo

Bindu 🌻

"We imagine a world of agents where they can communicate with each other seamlessly.
And Bindu turns your agent into a living server , the dot (Bindu) in the Internet of Agents."

🌻 Bindu Community Meetup - Every Thursday!

RSVP on Luma


GitHub License Hits Python Version Coverage Status Tests PyPI version PyPI Downloads PRs Welcome Join Discord Documentation GitHub stars


The Idea

Integration was the problem. And even today, it still is.

We built monoliths, then APIs, then microservices, then cloud functions.
Each step made systems faster, smaller, and more distributed.

Then, on 30th November 2022, something changed.
We entered the age of Large Language Models.
Software began reasoning, planning, and calling tools.
Suddenly, our code didn’t just execute, it started thinking.

But the old problem stayed the same.

Connection.

Now we have the language protocols for this new world:
A2A, AP2, and X402, how the agents talk, trust, and trade.

Yet, connecting them still takes time, code, and complexity.

That’s why Bindu exists.

Bindu is a wrapper that turns your agent into a A2A, AP2, and X402 schema-compliant living server, And communicate with other agents and microservices across the open web.

Just write your agent in any framework you like, then use Bindu. it will Bindu-fy your agent so that it can instantly join the Internet of Agents.


Installation

# Using uv (recommended)
uv add bindu

🚀 Quick Start

Time to first agent: ~2 minutes ⏱️

On your local machine, navigate to the directory in which you want to create a project directory, and run the following command:

uvx cookiecutter https://github.com/Saptha-me/create-bindu-agent.git

More details can be found here.

That’s it. Your local agent becomes a live, secure, discoverable service, ready to talk with other agents anywhere.

Manual Setup - Create Your First Agent

Step 1: Create a configuration file agent_config.json:

{
  "author": "your.email@example.com",
  "name": "my_first_agent",
  "description": "A simple agent that answers questions",
  "version": "1.0.0",
  "deployment": {
    "url": "http://localhost:8030",
    "expose": true
  }
}

Full Detailed Configuration can be found here.

Step 2: Create your agent script my_agent.py:

from bindu import bindufy

from agno.agent import Agent
from agno.models.openai import OpenAIChat

from bindu.penguin.bindufy import bindufy


# Load configuration
def load_config(config_path: str):
    """Load configuration from JSON with defaults."""
    full_path = os.path.join(config_path)
    with open(full_path, "r") as f:
        return json.load(f)


simple_config = load_config("simple_agent_config.json")
simple_agent = Agent(
    instructions="Provide helpful responses to user messages",
    model=OpenAIChat(id="gpt-4o"),
)

def simple_handler(messages: list[dict[str, str]]) -> Any:
    result = simple_agent.run(input=messages)
    return result

bindufy(simple_agent, simple_config, simple_handler)

That's it! Your agent is now live at http://localhost:8030 and ready to communicate with other agents.


🎨 Chat UI (Optional)

Want a beautiful chat interface for your agent? Just add ui="gradio":

# Install UI dependencies
pip install bindu[ui]

# Launch with chat interface
bindufy(simple_agent, simple_config, simple_handler, ui="gradio")

This will:

  • Start your agent server in the background
  • Launch a Gradio chat interface (usually at http://localhost:7860)
  • Handle all the A2A protocol complexity for you

Gradio Chat UI

See the Gradio UI documentation for more details.


The Vision

a peek into the night sky
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
{{            +             +                  +   @          {{
}}   |                *           o     +                .    }}
{{  -O-    o               .               .          +       {{
}}   |                    _,.-----.,_         o    |          }}
{{           +    *    .-'.         .'-.          -O-         {{
}}      *            .'.-'   .---.   `'.'.         |     *    }}
{{ .                /_.-'   /     \   .'-.\                   {{
}}         ' -=*<  |-._.-  |   @   |   '-._|  >*=-    .     + }}
{{ -- )--           \`-.    \     /    .-'/                   {{
}}       *     +     `.'.    '---'    .'.'    +       o       }}
{{                  .  '-._         _.-'  .                   {{
}}         |               `~~~~~~~`       - --===D       @   }}
{{   o    -O-      *   .                  *        +          {{
}}         |                      +         .            +    }}
{{ jgs          .     @      o                        *       {{
}}       o                          *          o           .  }}
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{

Each symbol is an agent — a spark of intelligence. And the single tiny dot is Bindu, the origin point in the Internet of Agents.


The Saptha.me Connection [In Progress]

Saptha.me is the layer that makes swarms of agents.

In this swarm, each Bindu is a dot - annotating agents with the shared language of A2A, AP2, and X402.

Agents can be hosted anywhere — on laptops, clouds, or clusters — yet speak the same protocol, trust each other by design, and work together as a single, distributed mind.

A Goal Without a Plan Is Just a Wish. So Saptha.me takes care Research, Plan and Implement.

Saptha.me gives them the seven layers of connection — mind, memory, trust, task, identity, value, and flow — that’s why it’s called Saptha.me. (Saptha, meaning “seven”; me, the self-aware network.)


🛠️ Supported Agent Frameworks

Bindu is Agent Framework agnostic.

We did test with mainly Agno, CrewAI, LangChain, and LlamaIndex, FastAgent.

Want integration with your favorite framework? Let us know on Discord!


Testing

bindu is thoroughly tested with a test coverage of over 70%:

# Run tests with coverage
pytest -n auto --cov=bindu --cov-report= && coverage report --skip-covered --fail-under=70

Contributing

We welcome contributions! Here's how to get started:

# Clone the repository
git clone https://github.com/Saptha-me/Bindu.git
cd Bindu

# Install development dependencies
uv venv --python 3.12.9
source .venv/bin/activate
uv sync --dev

# Install pre-commit hooks
pre-commit run --all-files

Please see our Contributing Guidelines for more details.


Maintainers

For more details about maintainers, including how to become a maintainer, see our maintainers file.


License

Bindu is proudly open-source and licensed under the Apache License 2.0.


Community

We 💛 contributions! Whether you're fixing bugs, improving documentation, or building demos — your contributions make bindu better.

  • Join our Discord for discussions and support
  • Star the repository if you find it useful!

Acknowledgements

We are grateful to the following projects for the development of bindu:


Roadmap

Here's what's next for bindu:

  • GRPC transport support
  • Sentry Error Tracking.
  • Ag-Ui Integration.
  • Retry Mechanism add.
  • Increase Test Coverage to 80%.
  • Redis Scheduler Implementation.
  • Postgres Database Implementation for Memory Storage.
  • Authentication Support AuthKit, GitHub, AWS Cognito, Google, Azure (Microsoft Entra).
  • Negotiation Support.
  • AP2 End to End Support.
  • Dspy Addition.
  • MLTS Support.
  • X402 Support with other facilitators.

Suggest features or contribute by joining our Discord!


Workshops

Star History

Star History Chart


Built with 💛 by the team from Amsterdam 🌷
Happy Bindu! 🌻🚀✨

From idea to Internet of Agents in 2 minutes.
Your agent. Your framework. Universal protocols.

⭐ Star us on GitHub💬 Join Discord📚 Read the Docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bindu-2025.47.4.tar.gz (132.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bindu-2025.47.4-py3-none-any.whl (167.1 kB view details)

Uploaded Python 3

File details

Details for the file bindu-2025.47.4.tar.gz.

File metadata

  • Download URL: bindu-2025.47.4.tar.gz
  • Upload date:
  • Size: 132.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for bindu-2025.47.4.tar.gz
Algorithm Hash digest
SHA256 deb9ab6bed66d189251abcbe177747c4d93bd12f57dce7cdfcfd7e806750ce26
MD5 bfa8bc564812469389fe9cfb51ddf85a
BLAKE2b-256 6401ddfdd076d541ab2d5072dafa03b2d146d72c2cbe7a34f428911a58ba8747

See more details on using hashes here.

File details

Details for the file bindu-2025.47.4-py3-none-any.whl.

File metadata

  • Download URL: bindu-2025.47.4-py3-none-any.whl
  • Upload date:
  • Size: 167.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for bindu-2025.47.4-py3-none-any.whl
Algorithm Hash digest
SHA256 869c7f79509aeb1061d16bd23ae9bc543ce4c1983c73e6935375d4bdb99b7e6d
MD5 b1d87decf04391cd03d6814f12828f92
BLAKE2b-256 354187590f159f3b66fe928de8ad107a9daebfcb9d70cba4b98210f41fd3975f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page