Skip to main content

Unified Agent Protocol Core SDK - Universal interoperability layer for AI agents and tools

Project description

Unified Agent Protocol (UAP) – Core SDK Specification

Version: 1.0.0
Maintained by: WhoMeta Labs part of WhoMeta Inc.
License: Apache 2.0
Language: Python 3.10+
Repository: Private/internal (planned public release Q3 2025)


OpenHub PyPI version

✨ Introduction

The Unified Agent Protocol (UAP) is a foundational interoperability layer designed to standardize the definition, registration, execution, and orchestration of AI agents and tools across diverse ecosystems.
UAP is not a runtime or a competing protocol like A2A or MCP – instead, it acts as a universal adapter, enabling seamless translation between heterogeneous agent formats, toolkits, and interface protocols.

The uap-core SDK is the reference Python implementation of this protocol, designed for SDK-level integration, automatic conversions, and full schema introspection.


💡 Motivation

As the AI agent ecosystem evolves, developers face increasing friction when integrating tools across platforms like OpenWebUI, LangChain, Azure OpenAI Agents, OpenAPI-based agents, or proprietary agent chains.

Common challenges include:

  • ❌ Fragmented agent and tool definition formats
  • ❌ Missing bridges between proprietary agent runtimes
  • ❌ Lack of universal abstraction for tool metadata, input types, and execution capabilities
  • ❌ Friction when reusing agent definitions across platforms (e.g., MCP ↔ A2A ↔ OpenAPI)

UAP solves this by introducing a common schema + protocol that allows agents and tools to be described once – and deployed, registered, or bridged anywhere.


📦 Key Features (Milestone 1)

  • 🧠 Unified JSON model: All agent, tool, trigger, and role definitions follow a strongly typed Pydantic schema.
  • 🔌 Multi-source parsers:
    • parse_openwebui(json): Import tools from OpenWebUI format.
    • parse_langchain(tool): Extract tool metadata from LangChain definitions.
    • parse_openapi(spec): Map OpenAPI endpoints to UAP tools.
  • 📤 Export bridges:
    • to_a2a(agent): Generate A2A-compatible payload.
    • to_mcp(agent): Convert to Model Context Protocol (MCP) schema.
    • to_openapi(tool): Derive standard OpenAPI spec from UAP tool.
  • 🖥️ CLI (uap bind):
    • Run transformations via command-line: uap bind --input tools.json --format mcp
  • 🛠️ Development-first SDK:
    • Works offline, no server required.
    • Fully typed Python models (intellisense, validation).
    • Optional integration with LangChain, FastAPI, and asyncio runtimes.

🧩 Core Concepts

Concept Description
Tool Describes an executable unit with input/output schemas and runtime hints.
Agent A logical actor using one or more tools to fulfill a task or objective.
Trigger Defines when and how agents/tools should activate (event, cron, intent).
Role Describes access & behavioral context (e.g., "analyst", "investigator").
OutputSchema Optional structure for results / downstream usage.
UIConfig Describes how this entity is represented in GUIs (forms, widgets, prompts).

All objects are implemented as subclasses of pydantic.BaseModel and support:

  • ✅ Full JSON validation
  • .dict() / .json() / .from_json() compatibility
  • ✅ Versioning fields
  • ✅ Extension-safe typing (e.g., extra = "allow")

🔄 Ecosystem Bridges

Target Protocol Bridge Status Description
A2A (Agent-to-Agent) to_a2a() Convert UAP agent into valid A2A descriptor
MCP (Model Context Protocol) to_mcp() Map UAP agent/tool into MCP-compliant schema
OpenAPI 3 to_openapi() Export UAP tool(s) as OpenAPI endpoints

These bridges allow inter-protocol operability – for example, developers can register a LangChain tool on OpenWebUI and then expose it in an A2A runtime via UAP translation.


📚 Example Use Case

# Convert OpenWebUI tools into MCP-ready format
uap bind --input tools_openwebui.json --format mcp > mcp_payload.json

🤝 Contributing

Contributions, issues and feature requests are very welcome!

  1. Fork the repository
  2. Create your feature branch (git checkout -b feat/awesome-feature)
  3. Commit your changes (git commit -m 'feat: add awesome feature')
  4. Push to the branch (git push origin feat/awesome-feature)
  5. Open a pull request

For full guidelines, please read the CONTRIBUTE guide.


⚖️ License

This project is licensed under the Apache License 2.0 – see the LICENSE file for details.


📑 Changelog

All notable changes will be documented in CHANGELOG.md.

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

unified_agent_protocol-1.0.1.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

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

unified_agent_protocol-1.0.1-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file unified_agent_protocol-1.0.1.tar.gz.

File metadata

  • Download URL: unified_agent_protocol-1.0.1.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for unified_agent_protocol-1.0.1.tar.gz
Algorithm Hash digest
SHA256 9611dfaa9ba41b1aaecff780e94f2a6c8bf4b8167ab7b7dc169bded374e57904
MD5 9a36fe61ccb91baa22d790d30172c758
BLAKE2b-256 8fa9eb73d105d0a21ff6ea5ebefd540bb0c4c3b456030345c0d4ff3b348cb545

See more details on using hashes here.

File details

Details for the file unified_agent_protocol-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for unified_agent_protocol-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9cb4b0e7276968d5b0216b5a9e553333861a861c25f6476241dbe93a0d57fb40
MD5 1483e41879b46dfc829d3717ce5c5488
BLAKE2b-256 3b3af10d9d70a390aa5c5820a57c8234e30aef8db8f53a08206197f22f6034b5

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