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_URLorDATABASE_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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f329ba1895b4194701741f82a28b4d072885143d58089fba7652fb0210f1bc6a
|
|
| MD5 |
9b2dcd5f1bc930803c703d9e928018a6
|
|
| BLAKE2b-256 |
9b283e5f5040300984f65752577d4a6d1f377c7bfe170441fba2d842c312be38
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af9acd9e3205a21e65886ab97d1b895ae6836253faee563ffd31491503b2fc3b
|
|
| MD5 |
e604f97371643a716c118951360dc86f
|
|
| BLAKE2b-256 |
c44c1023d378845e688e8c86afdd302e1b4c73dc63ae458d3a9a9842c9f45c0d
|