Skip to main content

📦 Universal Agent File (UAF) — The Standard for Portable AI Agents

Package once. Run anywhere. Share stateful AI agents as binaries.

License PyPI Platform Python Status

OverviewFeaturesInstallationQuick StartCLISpecificationAgentComet


🚀 Overview

Universal Agent File (UAF) is a standardized binary format for packaging and distributing AI agents.

It solves a core problem in the agent ecosystem:

❌ Agents are fragmented, framework-locked, and not portable ✅ UAF makes agents portable, reproducible, and shareable

A .uaf file is a compressed, verifiable artifact that bundles agent logic, dependencies, metadata, tools, and optional state.

This enables: Write once → run anywhere → resume anytime


✨ Features

  • 📦 Portable Binary Format - Package complete agents into a single .uaf file.
  • 🧠 Stateful Agents - Persist and transfer agent memory across environments.
  • 🛡️ Strict Validation - Enforced schema (agent.yaml) ensures reliability.
  • 🔍 Inspect Without Running - View metadata, tools, and config without execution.
  • 🔌 Framework Agnostic - Works across LangChain, LangGraph, CrewAI, Google ADK.
  • ⚡ Runtime Loader - Dynamically load and execute agents from .uaf.

🛠️ Installation

Install from PyPI (Python 3.9+):

pip install uaf_cli

Or from source:

git clone https://github.com/vaibhavhaswani/uaf-cli.git
cd uaf-cli
pip install .

⚡ Quick Start

1️⃣ Project Structure

Create an agent folder with the following structure:

my-agent/
├── agent.py          # Framework logic (LangChain, CrewAI, etc.)
├── agent.yaml        # Manifest metadata
├── requirements.txt  # Dependencies
├── agent.state       # (Optional) Initial state
└── uaf_setup.yaml    # Compiler build instructions

2️⃣ Configure Build (uaf_setup.yaml)

output: my-agent.uaf

files:
  agent.py: ./agent.py
  agent.yaml: ./agent.yaml
  requirements.txt: ./requirements.txt
  agent.state: ./agent.state

3️⃣ Compile

uaf compile -f uaf_setup.yaml

Output: my-agent.uaf


💻 CLI

Compile, package, and execute agents with simple commands:

uaf init        # Scaffold absolute path project
uaf compile     # Compile into .uaf artifact
uaf validate    # Validate schema compliance
uaf inspect     # View deep metadata
uaf run         # Run CLI agent turn loop
uaf update      # Inject incremental builds

Full technical guide → docs/usage_guide.md


🔗 Loading Agents

The UAFLoader dynamically routes directly into execution setups powered by target frame pipelines.

from uaf_compiler.loader import UAFLoader

# 1. Initialize Loader
uaf_loader = UAFLoader("my-agent.uaf")

# 2. Dynamic Router Injection
# Load LangChain/LangGraph
agent_app = uaf_loader.load(llm=my_llm)

# Load CrewAI
agent_crew = uaf_loader.load(llm_model="ollama/gemma3", base_url="http://...")

# Load Google ADK
agent_runner = uaf_loader.load(llm_model="ollama/gemma3", base_url="http://...")

Full Loading & Integration workflows → docs/integration.md


📜 Protocol Specification

Complete binary spec design detailing underlying tarball structure, manifest validation rules, and lifecycle bindings.

See frameworks & schema docs → docs/frameworks.md


🏗️ Development & Testing

Standard installation and developer workflows:

pip install -e .

Run End-to-End Tests

To verify loaders and correct tool-use turn loops across all SDK adaptors (LangChain, CrewAI, ADK, Comet) over a local Ollama endpoint:

python testing/test_dummy_agents.py

AgentComet natively loads and executes UAF agents using its SDK-level hooks without wrapping logic adapters.

from agentcomet import load_agent

# 1. Load UAF directly 
agent = load_agent("my-agent.uaf")

# 2. Run agent natively
response = agent.run("Calculate current stock performance")
print("Response:", response)

# 3. Export / Save state
agent.export("my_assistant.uaf")

Built with ❤️ by Vaibhav Haswani • Apache 2.0 License

Release files for uaf-cli 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uaf-cli 0.8.0
File Size Uploaded
uaf_cli-0.8.0.tar.gz 19.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uaf-cli 0.8.0
File Interpreter ABI Platform
uaf_cli-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 40.0 kB

Release files / uaf_cli-0.8.0.tar.gz

Download URL uaf_cli-0.8.0.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0b0e0028779f618bf57c67735bf95128ac18ce4d386c4c0f7362e48a1682126d
BLAKE2b-256 checksum
How to use checksums
4c9d1326f431b045f848b873b7f5cf58e83c01d2c61d3e3f9b6cb8f9d536ca58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.4

Release files / uaf_cli-0.8.0-py3-none-any.whl

Download URL uaf_cli-0.8.0-py3-none-any.whl
Size 20.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
33ab7af5c5b3e2b2f642f67e8f85e8127bee9e29e76301836d8f0de03c6d0c34
BLAKE2b-256 checksum
How to use checksums
91c96924a87d3d18f4b78130bfba8d79e2ccb58c83c984198a6695f0f321ebe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page