Skip to content

Python library to retrieve and parse agent-permissions.json

Notifications You must be signed in to change notification settings

las-wg/agent-permissions-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agent Permissions Python Library

This package provides utilities for discovering, fetching, validating, and enforcing agent-permissions.json manifest files exposed by websites. It is designed to plug into agentic frameworks that need to respect site-defined automation policies.

Features

  • Discover manifests from HTML via <link rel="agent-permissions">
  • Fetch and cache manifests over HTTP (sync and async)
  • Validate manifests against the published JSON Schema along with semantic checks
  • Check planned UI interactions against resource rules
  • Generate prompt text for higher-level action guidelines

Installation

pip install agent-permissions

Quick Start

import httpx
from lxml import html

from agent_permissions import fetch_manifest, validate_interaction

manifest = fetch_manifest("https://example.com/.well-known/agent-permissions.json")

# Fetch the current page HTML remotely (or inject your own source).
page_html = httpx.get("https://example.com/products").text

root = html.fromstring(page_html)
element = root.cssselect("#buy")[0]
validation = validate_interaction(
    manifest,
    verb="click_element",
    element=element,
)

print(validation.allowed)            # -> True or False
print(validation.requirements)       # -> e.g. {"human_in_the_loop": True}

Check out samples/demo.html with its paired samples/agent-permissions.json for a realistic playground to experiment with validation.

Action guidelines and API info

manifest = fetch_manifest("https://example.com/.well-known/agent-permissions.json")

# Action guidelines are in manifest.action_guidelines
for guideline in manifest.action_guidelines:
    print(f"{guideline.directive}: {guideline.description}")
    if guideline.exceptions:
        print(f"  Exceptions: {guideline.exceptions}")

# API integrations are in manifest.api
for api_ref in manifest.api:
    print(f"{api_ref.type} endpoint: {api_ref.endpoint}{api_ref.description}")
    if api_ref.docs:
        print(f"  Docs: {api_ref.docs}")

For more detailed documentation, consult design/library.md.

About

Python library to retrieve and parse agent-permissions.json

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages