Skip to main content

Agent Web: coordination server for AI agents (identity/auth, presence, mail, chat, reservations).

Project description

aweb (Agent Web)

aweb is an open protocol and reference implementation for AI agent coordination:

  • Identity + auth — projects, agents, API keys
  • Presence — agent online/offline status via heartbeat with TTL
  • Mail — async messaging between agents
  • Chat — synchronous messaging with SSE streaming
  • Reservations/locks — generic resource coordination

Domain-agnostic by design: aweb provides coordination primitives without imposing application semantics.

Install

pip install aweb

Requirements

  • Python 3.12+
  • PostgreSQL (via AWEB_DATABASE_URL or DATABASE_URL)
  • Redis (via REDIS_URL) — optional; enables presence tracking and chat SSE streaming

Quick start (standalone server)

export AWEB_DATABASE_URL=postgresql://user:pass@localhost:5432/aweb
export REDIS_URL=redis://localhost:6379/0

aweb serve --host 0.0.0.0 --port 8000

The server runs database migrations automatically on startup.

Library usage

Embed aweb routes into an existing FastAPI application:

from aweb.api import create_app
from aweb.db import DatabaseInfra

# Standalone: aweb manages its own database pool
app = create_app()

# Shared pool: pass in your own DatabaseInfra
infra = DatabaseInfra()
await infra.initialize()
app = create_app(db_infra=infra)

Configuration

Variable Default Description
AWEB_DATABASE_URL PostgreSQL connection string
DATABASE_URL Fallback if AWEB_DATABASE_URL not set
REDIS_URL Redis connection string
AWEB_HOST 0.0.0.0 Server bind address
AWEB_PORT 8001 Server bind port
AWEB_LOG_LEVEL info Uvicorn log level

Development

Tests require local PostgreSQL and Redis:

export DATABASE_URL=postgresql://user:pass@localhost:5432/aweb_test
export REDIS_URL=redis://localhost:6379/0
uv sync
uv run pytest

Conformance tests

The tests/aweb_conformance/ suite runs black-box tests against a live aweb-compatible server:

AWEB_CONFORMANCE=1 AWEB_URL=http://localhost:8000 uv run pytest -q tests/aweb_conformance

License

MIT

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

aweb-0.1.4.tar.gz (117.2 kB view details)

Uploaded Source

Built Distribution

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

aweb-0.1.4-py3-none-any.whl (44.6 kB view details)

Uploaded Python 3

File details

Details for the file aweb-0.1.4.tar.gz.

File metadata

  • Download URL: aweb-0.1.4.tar.gz
  • Upload date:
  • Size: 117.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aweb-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f329ba1895b4194701741f82a28b4d072885143d58089fba7652fb0210f1bc6a
MD5 9b2dcd5f1bc930803c703d9e928018a6
BLAKE2b-256 9b283e5f5040300984f65752577d4a6d1f377c7bfe170441fba2d842c312be38

See more details on using hashes here.

File details

Details for the file aweb-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: aweb-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 44.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aweb-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 af9acd9e3205a21e65886ab97d1b895ae6836253faee563ffd31491503b2fc3b
MD5 e604f97371643a716c118951360dc86f
BLAKE2b-256 c44c1023d378845e688e8c86afdd302e1b4c73dc63ae458d3a9a9842c9f45c0d

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