Python SDK
Full API reference for agentic-web-protocol. Feature-complete parity with the TypeScript SDK.
Installation
bash
pip install agentic-web-protocol
# with dev deps
pip install "agentic-web-protocol[dev]"AWPValidator
python
from agentic_web_protocol import AWPValidator
validator = AWPValidator(cache_ttl_seconds=60.0)
result = validator.validate_discovery_manifest({
"version": "1.0",
"name": "My Site",
"description": "AI-optimised knowledge base with structured content.",
"capabilities": ["content", "search"],
"endpoints": {"manifest": "/awp/manifest.json"},
})
# result.valid → bool
# result.errors → list[ValidationError]
# result.schema → "discovery"
if result.valid:
print("✓ Valid")
else:
for err in result.errors:
print(f"✕ [{err.path}] {err.message}")Methods
| Method | Validates |
|---|---|
validate_discovery_manifest(data, cache_key?) | agentic-web-protocol.schema.json |
validate_manifest(data, cache_key?) | manifest.schema.json |
validate_structure(data, cache_key?) | structure.schema.json |
validate_functions(data, cache_key?) | functions.schema.json |
validate_mcp(data, cache_key?) | mcp.schema.json |
validate_updates(data, cache_key?) | updates.schema.json |
validate_batch(data, cache_key?) | Multiple schemas |
validate_file(data, cache_key?) | JSON file from disk |
validate_batch
python
results = validator.validate_batch({
"discovery": discovery_data,
"manifest": manifest_data,
"mcp": mcp_data,
})
for key, result in results.items():
status = "✓" if result.valid else "✕"
print(f"{status} {key}")TokenCounter
python
import asyncio
from agentic_web_protocol import TokenCounter
from agentic_web_protocol.types import TOKEN_BUDGETS
counter = TokenCounter(model="gpt-4o")
count = counter.count_tokens("Hello, agent world!")
async def check():
result = await counter.validate_budget(
content=page_markdown,
budget=TOKEN_BUDGETS["individual_page"], # 1500
)
if not result.valid:
print(f"Over by {result.exceeded} tokens")
asyncio.run(check())Types
All types are plain Python dataclasses — no Pydantic required.
python
from agentic_web_protocol.types import (
Capability, # Enum: CONTENT, API, SEARCH, MCP, ANALYTICS
AuthMethod, # Enum: API_KEY, OAUTH2, JWT, NONE
MCPAuthType, # Enum: NONE, BEARER, API_KEY, OAUTH2
MCPAuthentication,
MCPConfig,
DiscoveryManifest,
AWPManifest,
ContentStructure,
FunctionSchema,
UpdateFeed,
ValidationResult,
ValidationError,
TOKEN_BUDGETS,
)CLI Reference
bash
awp validate discovery .well-known/agentic-web-protocol.json
awp validate manifest awp/manifest.json
awp validate mcp awp/mcp/mcp.json
awp score .well-known/agentic-web-protocol.json
awp tokens awp/content/summary.md --model gpt-4o --budget 500
awp validate discovery manifest.json --json # CI-friendly JSON outputUsing in CI
.github/workflows/awp.yml
name: Validate AWP
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pip install agentic-web-protocol
- run: awp validate discovery .well-known/agentic-web-protocol.json
- run: awp validate manifest awp/manifest.json
- run: awp score .well-known/agentic-web-protocol.json