Skip to content

Universal Tool Capability Descriptor - An open standard for AI tool capability description

License

Notifications You must be signed in to change notification settings

Data-with-rajan/UTCD

Repository files navigation

UTCD Logo

The AI Agent Contract Stack

The definitive, execution-agnostic governance framework for the Agentic Economy.
A dual-layer protocol for Capabilities (UTCD) and Behavior (ABC/Contracts).

Version 1.0.0 License MIT Signed

🏗️ The Architecture

The AI Agent Contract Stack provides a standardized way for AI systems to interact safely. It separates the description of tools from the governance of agents.

Layer 1: UTCD (Capabilities)

"What is this tool and what are its risks?" UTCD provides a declarative "Nutrition Label" for tools. It allows agents to reason about side-effects, privacy, and costs before execution.

Stored in: examples/*.utcd.yaml

Layer 2: ABC (Contracts)

"How is this agent permitted to behave?" Agent Behavior Contracts (ABC) define the enforceable boundaries—MISSION, RISK, and GOVERNANCE—that an agent must respect during its lifecycle.

Stored in: contracts/ directory


� Quick Start

1. Tool Capability Validation (UTCD)

Ensure your tool's "Nutrition Label" follows the standard schema:

python -m utcd.validator examples/csv-analyzer.utcd.yaml

2. Behavioral Integrity Validation (ABC)

Validate an agent's behavioral contract and verify tool risk inheritance:

python -m utcd.contract_validator contracts/examples/research-agent.contract.yaml

3. Cryptographic Signing

Secure your tool descriptors to prevent "Shadow Capability" tampering:

python demos/sign_descriptor.py examples/csv-analyzer.utcd.yaml

🧠 Reasoning Agent Example

The utcd package includes a built-in reasoning engine that selects tools based on your governance policy.

from utcd import UTCDAgent, Policy

# 1. Initialize with a governance policy (e.g., GDPR compliant)
agent = UTCDAgent(policy=Policy.gdpr())

# 2. Discover tools
agent.load_tools_from_directory("./examples")

# 3. Find the safest tool for the mission
results = agent.find_tools(domain="data-processing")
best_tool = results[0]

print(f"Selected: {best_tool.tool_name} (Score: {best_tool.score}/100)")

📁 Project Structure

Directory Purpose
utcd/ The core Python package (Loader, Validator, Signer, RiskEngine).
contracts/ Agent Behavior Contracts (ABC) specifications and examples.
schema/ Formal JSON Schema definitions for core and profiles.
examples/ Sample UTCD tool descriptors.
demos/ Ready-to-run scenarios (Selection, Rejection, Degradation).

🔐 Built-in Policies

Policy Scope Enforcement
Policy.strict() Safety Rejects any tool with side-effects or data retention.
Policy.standard() Balanced Standard safety defaults with performance weighting.
Policy.gdpr() Compliance Enforces EU data residency and encryption standards.
Policy.permissive() Audit Provides warnings without blocking execution.

📖 Key Principles

  1. Pre-execution only — We describe, never execute.
  2. Static & Declarative — Machine-readable YAML, no runtime dependencies.
  3. Offline-Valid — Guaranteed safety without network calls.
  4. Immutable Trust — Canonical hashing prevents tampering after signing.
  5. Agent-Centric — Designed to be ingested by LLMs for autonomous reasoning.

� Documentation


Developed by Rajan | Released under MIT License

About

Universal Tool Capability Descriptor - An open standard for AI tool capability description

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages