SDK

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

MethodValidates
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 output

Using 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