Skip to main content

AGENIUM — Local, stateful agent-to-agent communication SDK with agent:// protocol

Project description

AGENIUM — Agent-to-Agent Communication SDK (Python)

PyPI version Python 3.9+ License: MIT

Local, stateful agent-to-agent communication using the agent:// protocol.

Quick Start

pip install agenium

Create an Agent

import asyncio
from agenium import Agent

async def main():
    # Create and start an agent
    agent = Agent("my-agent")
    
    # Register a tool
    @agent.tool("greet", description="Greet someone")
    async def greet(name: str) -> str:
        return f"Hello, {name}! I'm {agent.name}."
    
    # Start listening
    await agent.start(port=8443)
    
    # Register on the AGENIUM DNS
    await agent.register(api_key="dom_your_key_here")
    
    print(f"Agent running at agent://{agent.name}")

asyncio.run(main())

Connect to an Agent

import asyncio
from agenium import Agent

async def main():
    agent = Agent("client-agent")
    await agent.start()
    
    # Resolve and connect
    session = await agent.connect("agent://my-agent")
    
    # Call a remote tool
    result = await agent.call_tool(session.id, "greet", {"name": "World"})
    print(result)  # "Hello, World! I'm my-agent."
    
    # Send a message
    await agent.send(session.id, "ping", {"data": "hello"})
    
    await agent.stop()

asyncio.run(main())

DNS Resolution

from agenium.dns import DNSResolver

resolver = DNSResolver()
agent = await resolver.resolve("my-agent")
print(agent.endpoint)  # https://1.2.3.4:8443
print(agent.tools)     # [Tool(name='greet', ...)]

Features

  • agent:// Protocol — URI-based agent addressing (agent://name)
  • DNS Resolution — Automatic agent discovery via AGENIUM DNS (185.204.169.26)
  • Stateful Sessions — Persistent sessions with SQLite storage
  • Tool System — Register/invoke tools across agents
  • mTLS Security — Mutual TLS with auto-generated certificates
  • Capability Manifest — Agents advertise their tools in DNS
  • Async-First — Built on asyncio and httpx

Architecture

┌──────────┐     agent://name     ┌──────────┐
│  Agent A  │ ──────────────────> │  DNS      │
│           │ <────────────────── │  Server   │
│  (client) │   endpoint + tools  │           │
└─────┬─────┘                     └───────────┘
      │
      │  mTLS + HTTP/2
      ▼
┌──────────┐
│  Agent B  │
│  (server) │
│  :8443    │
└──────────┘

API Reference

Agent(name, config=None)

Create an agent instance.

Parameter Type Default Description
name str required Agent name (2-50 chars, lowercase)
config AgentConfig None Optional configuration

Key Methods

Method Description
agent.start(port=8443) Start the agent server
agent.stop() Gracefully shutdown
agent.register(api_key) Register on AGENIUM DNS
agent.connect(uri) Connect to another agent
agent.send(session_id, event, data) Send event to session
agent.call_tool(session_id, tool, params) Invoke remote tool
agent.tool(name, ...) Decorator to register a tool

DNSResolver(server=None)

Resolve agent:// URIs.

Method Description
resolver.resolve(name) Resolve agent name to endpoint
resolver.resolve_uri(uri) Resolve full agent:// URI

Compatibility

This is the official Python SDK for AGENIUM. It's fully compatible with the Node.js SDK (npm install agenium).

Links

License

MIT © AGENIUM

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

agenium-0.1.0.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

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

agenium-0.1.0-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file agenium-0.1.0.tar.gz.

File metadata

  • Download URL: agenium-0.1.0.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for agenium-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7bd74cba79adfe451c8e5d16b1ab6e81a7e78d90515422e39151a861c58c931c
MD5 0220c4dc6ae9776cb8e0c9a35438e5b3
BLAKE2b-256 6d8b07398f616ef866dffb27620ca2b8e35e872826b596757fe12443f2c51339

See more details on using hashes here.

File details

Details for the file agenium-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: agenium-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for agenium-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 491b60965ebfabf382cde4d44d153ed9ba3a8e89ff4c6ca23f186a7b679402af
MD5 bf9c1a4eb60ed0f00f5bc7fc982ffa8e
BLAKE2b-256 1eb65a699c47fc8a15da3e5407fc2f4920c88bdeabf402ae5859747844c4a63f

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