Catalog PyPI
PACKAGE EXPLORERView in registry

agentmesh-trust-protocol

PyPI

Inter-Agent Trust Protocol (IATP) - The Envoy for AI Agents. A sidecar architecture with typed IPC pipes for preventing cascading hallucinations in autonomous agent networks.

agentaigovernancehallucinationllmmeshmulti-agentpolicyprotocolsecuritysidecartrust
Versions collected1
Direct dependencies0From release 3.7.0
Last observed20 Oct, 22:43 UTC

README

Version 3.7.0 documentation

Inter-Agent Trust Protocol (IATP)

Part of Agent OS - Kernel-level governance for AI agents

PyPI version License: MIT Build Status

Sidecar-based trust protocol for agent-to-agent communication. Part of the Agent OS ecosystem.


Why IATP?

Multi-agent systems fail because agents are forced to embed trust logic, security validation, and audit trails directly into their code. This creates tight coupling, makes agents fragile, and prevents interoperability.

We built IATP because hard-coding trust into every agent is the wrong abstraction. By extracting trust, policy enforcement, and governance into a sidecar proxy—similar to how Envoy extracts networking concerns from microservices—we subtract complexity from agents while adding scalability to the system.

Scale by Subtraction: Remove trust logic from agents. Remove policy checks from agents. Remove audit logging from agents. Put it all in the sidecar. Agents become simple functions. The infrastructure handles reliability.


🔒 Removing Implicit Trust

IATP eliminates implicit trust through two key features:

1. Agent Attestation (Verifiable Credentials)

The Problem: How do we know an agent running on a different server is running the verified code and not a hacked version?

The Fix: Attestation Handshake. Agents exchange a hash of their codebase/configuration signed by the Control Plane before talking.

  • Cryptographic proof that agents run verified code
  • Signed by trusted Control Plane
  • Prevents running modified/hacked agent versions
  • No need for complex firewalls—security is in the protocol

2. Reputation Slashing

The Problem: Agents that hallucinate or misbehave continue to be trusted by the network.

The Fix: If cmvk (Context Memory Verification Kit) catches an agent hallucinating, IATP automatically lowers that agent's trust score across the network. Other agents stop listening to it.

  • Network-wide reputation tracking
  • Automatic slashing when misbehavior detected
  • cmvk integration for hallucination detection
  • Conservative reputation propagation across nodes

Installation

pip install agentmesh-trust-protocol

Quick Start

from iatp import create_sidecar, CapabilityManifest, AgentCapabilities, PrivacyContract, RetentionPolicy

manifest = CapabilityManifest(agent_id="my-agent", capabilities=AgentCapabilities(), privacy_contract=PrivacyContract(retention=RetentionPolicy.EPHEMERAL))
sidecar = create_sidecar(agent_url="http://localhost:8000", manifest=manifest, port=8001)
sidecar.run()

Your agent is now protected by IATP. Requests are validated, policies enforced, and all actions logged.

Using Attestation and Reputation

from iatp import create_sidecar, CapabilityManifest, AgentCapabilities, PrivacyContract, RetentionPolicy
from iatp.attestation import AttestationValidator, ReputationManager

# Create attestation for your agent (done by Control Plane)
validator = AttestationValidator()
validator.add_trusted_key("control-plane-key", "-----BEGIN PUBLIC KEY-----...")

attestation = validator.create_attestation(
    agent_id="my-agent",
    codebase_hash="sha256_of_codebase",
    config_hash="sha256_of_config",
    signing_key_id="control-plane-key",
    expires_in_hours=24
)

# Create sidecar with attestation
manifest = CapabilityManifest(...)
sidecar = create_sidecar(
    agent_url="http://localhost:8000",
    manifest=manifest,
    port=8001,
    attestation=attestation  # Proves you're running verified code
)

# Track reputation
reputation = ReputationManager()

# Record hallucination (called by cmvk)
reputation.record_hallucination(
    agent_id="misbehaving-agent",
    severity="high",
    details={"reason": "fabricated data"}
)

# Get reputation score
score = reputation.get_score("misbehaving-agent")
print(f"Trust score: {score.score}/10")
print(f"Trust level: {score.get_trust_level()}")

Run the demo:

python examples/demo_attestation_reputation.py

Architecture

IATP sits in Layer 2 (Infrastructure) of the Agent OS. It acts as a sidecar proxy that intercepts agent-to-agent communication and enforces trust policies before forwarding requests.

Layer 3: Framework       [agent-control-plane, scak]
Layer 2: Infrastructure  [iatp, amb, atr]        ← IATP lives here
Layer 1: Primitives      [caas, cmvk, emk]

IATP receives requests from other agents or clients, validates the requester's capabilities against the target agent's requirements, enforces privacy and security policies, logs all transactions for auditability, and forwards approved requests to the backend agent.

The protocol defines a standard .well-known/agent-manifest endpoint that publishes trust levels, reversibility guarantees, privacy contracts, and SLA commitments. Trust scores are calculated automatically based on these attributes, and policies can block, warn, or allow operations accordingly.


The Ecosystem Map

IATP is part of a modular Agent OS built on the "Scale by Subtraction" philosophy:

LayerComponentPurpose
PrimitivescaasContext as a Service – Shared context management
cmvkContext Memory Verification Kit – Verify context integrity
emkEpisodic Memory Kit – Long-term memory storage
InfrastructureiatpInter-Agent Trust Protocol – Trust and security sidecar
ambAgent Message Bus – Reliable message transport
atrAgent Tool Registry – Discover and invoke agent tools
Frameworkagent-control-planeAgent Control Plane – Orchestration and lifecycle management
scakSelf-Correction Autonomy Kit – Automated error recovery

Explore the ecosystem:


Citation

If you use IATP in your research or production systems, please cite:

@software{iatp2024,
  author = {Siddique, Imran},
  title = {Inter-Agent Trust Protocol: Sidecar-Based Trust for Multi-Agent Systems},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/microsoft/agent-governance-toolkit}},
  version = {0.3.1}
}

License

MIT License. See LICENSE for details.

Downloads & popularity

6downloads
1-day window · source-reported counts20 Oct 2026
24120
2026-07-23: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-07-23–2026-07-232026-07-25: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-07-25–2026-07-252026-07-26: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-07-26–2026-07-262026-07-27: 3 · observed 2026-10-21T16:01:53.9474117Z · period 2026-07-27–2026-07-272026-07-29: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-07-29–2026-07-292026-08-02: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-02–2026-08-022026-08-03: 5 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-03–2026-08-032026-08-04: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-04–2026-08-042026-08-05: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-05–2026-08-052026-08-06: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-06–2026-08-062026-08-07: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-07–2026-08-072026-08-09: 5 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-09–2026-08-092026-08-10: 6 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-10–2026-08-102026-08-14: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-14–2026-08-142026-08-15: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-15–2026-08-152026-08-16: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-16–2026-08-162026-08-17: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-17–2026-08-172026-08-23: 16 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-23–2026-08-232026-08-24: 24 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-24–2026-08-242026-08-25: 4 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-25–2026-08-252026-08-28: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-28–2026-08-282026-08-29: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-29–2026-08-292026-08-31: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-08-31–2026-08-312026-09-01: 4 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-01–2026-09-012026-09-02: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-02–2026-09-022026-09-03: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-03–2026-09-032026-09-04: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-04–2026-09-042026-09-05: 3 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-05–2026-09-052026-09-06: 3 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-06–2026-09-062026-09-07: 3 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-07–2026-09-072026-09-10: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-10–2026-09-102026-09-11: 10 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-11–2026-09-112026-09-13: 6 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-13–2026-09-132026-09-14: 7 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-14–2026-09-142026-09-16: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-16–2026-09-162026-09-19: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-19–2026-09-192026-09-20: 10 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-20–2026-09-202026-09-21: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-21–2026-09-212026-09-22: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-22–2026-09-222026-09-23: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-23–2026-09-232026-09-24: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-24–2026-09-242026-09-25: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-25–2026-09-252026-09-26: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-26–2026-09-262026-09-27: 7 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-27–2026-09-272026-09-28: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-28–2026-09-282026-09-30: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-09-30–2026-09-302026-10-02: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-02–2026-10-022026-10-04: 4 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-04–2026-10-042026-10-06: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-06–2026-10-062026-10-07: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-07–2026-10-072026-10-08: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-08–2026-10-082026-10-09: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-09–2026-10-092026-10-10: 8 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-10–2026-10-102026-10-12: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-12–2026-10-122026-10-13: 2 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-13–2026-10-132026-10-14: 8 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-14–2026-10-142026-10-15: 5 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-15–2026-10-152026-10-16: 1 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-16–2026-10-162026-10-17: 11 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-17–2026-10-172026-10-18: 4 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-18–2026-10-182026-10-20: 6 · observed 2026-10-21T16:01:53.9474117Z · period 2026-10-20–2026-10-20
23 Jul20 Oct

pypistats · 61 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-20 – 2026-10-2062026-10-21T16:01:53.9474117Z
2026-10-18 – 2026-10-1842026-10-21T16:01:53.9474117Z
2026-10-17 – 2026-10-17112026-10-21T16:01:53.9474117Z
2026-10-16 – 2026-10-1612026-10-21T16:01:53.9474117Z
2026-10-15 – 2026-10-1552026-10-21T16:01:53.9474117Z
2026-10-14 – 2026-10-1482026-10-21T16:01:53.9474117Z
2026-10-13 – 2026-10-1322026-10-21T16:01:53.9474117Z
2026-10-12 – 2026-10-1212026-10-21T16:01:53.9474117Z
2026-10-10 – 2026-10-1082026-10-21T16:01:53.9474117Z
2026-10-09 – 2026-10-0922026-10-21T16:01:53.9474117Z
2026-10-08 – 2026-10-0812026-10-21T16:01:53.9474117Z
2026-10-07 – 2026-10-0722026-10-21T16:01:53.9474117Z
2026-10-06 – 2026-10-0612026-10-21T16:01:53.9474117Z
2026-10-04 – 2026-10-0442026-10-21T16:01:53.9474117Z
2026-10-02 – 2026-10-0212026-10-21T16:01:53.9474117Z
2026-09-30 – 2026-09-3012026-10-21T16:01:53.9474117Z
2026-09-28 – 2026-09-2822026-10-21T16:01:53.9474117Z
2026-09-27 – 2026-09-2772026-10-21T16:01:53.9474117Z
2026-09-26 – 2026-09-2612026-10-21T16:01:53.9474117Z
2026-09-25 – 2026-09-2512026-10-21T16:01:53.9474117Z
2026-09-24 – 2026-09-2422026-10-21T16:01:53.9474117Z
2026-09-23 – 2026-09-2312026-10-21T16:01:53.9474117Z
2026-09-22 – 2026-09-2212026-10-21T16:01:53.9474117Z
2026-09-21 – 2026-09-2122026-10-21T16:01:53.9474117Z
2026-09-20 – 2026-09-20102026-10-21T16:01:53.9474117Z
2026-09-19 – 2026-09-1922026-10-21T16:01:53.9474117Z
2026-09-16 – 2026-09-1612026-10-21T16:01:53.9474117Z
2026-09-14 – 2026-09-1472026-10-21T16:01:53.9474117Z
2026-09-13 – 2026-09-1362026-10-21T16:01:53.9474117Z
2026-09-11 – 2026-09-11102026-10-21T16:01:53.9474117Z
2026-09-10 – 2026-09-1012026-10-21T16:01:53.9474117Z
2026-09-07 – 2026-09-0732026-10-21T16:01:53.9474117Z
2026-09-06 – 2026-09-0632026-10-21T16:01:53.9474117Z
2026-09-05 – 2026-09-0532026-10-21T16:01:53.9474117Z
2026-09-04 – 2026-09-0412026-10-21T16:01:53.9474117Z
2026-09-03 – 2026-09-0322026-10-21T16:01:53.9474117Z
2026-09-02 – 2026-09-0212026-10-21T16:01:53.9474117Z
2026-09-01 – 2026-09-0142026-10-21T16:01:53.9474117Z
2026-08-31 – 2026-08-3112026-10-21T16:01:53.9474117Z
2026-08-29 – 2026-08-2912026-10-21T16:01:53.9474117Z
2026-08-28 – 2026-08-2812026-10-21T16:01:53.9474117Z
2026-08-25 – 2026-08-2542026-10-21T16:01:53.9474117Z
2026-08-24 – 2026-08-24242026-10-21T16:01:53.9474117Z
2026-08-23 – 2026-08-23162026-10-21T16:01:53.9474117Z
2026-08-17 – 2026-08-1722026-10-21T16:01:53.9474117Z
2026-08-16 – 2026-08-1622026-10-21T16:01:53.9474117Z
2026-08-15 – 2026-08-1522026-10-21T16:01:53.9474117Z
2026-08-14 – 2026-08-1422026-10-21T16:01:53.9474117Z
2026-08-10 – 2026-08-1062026-10-21T16:01:53.9474117Z
2026-08-09 – 2026-08-0952026-10-21T16:01:53.9474117Z
2026-08-07 – 2026-08-0712026-10-21T16:01:53.9474117Z
2026-08-06 – 2026-08-0612026-10-21T16:01:53.9474117Z
2026-08-05 – 2026-08-0522026-10-21T16:01:53.9474117Z
2026-08-04 – 2026-08-0422026-10-21T16:01:53.9474117Z
2026-08-03 – 2026-08-0352026-10-21T16:01:53.9474117Z
2026-08-02 – 2026-08-0212026-10-21T16:01:53.9474117Z
2026-07-29 – 2026-07-2922026-10-21T16:01:53.9474117Z
2026-07-27 – 2026-07-2732026-10-21T16:01:53.9474117Z
2026-07-26 – 2026-07-2622026-10-21T16:01:53.9474117Z
2026-07-25 – 2026-07-2522026-10-21T16:01:53.9474117Z
2026-07-23 – 2026-07-2322026-10-21T16:01:53.9474117Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
3.7.020 May 20260

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
microsoft/agent-governance-toolkit

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:43 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:2ad478279832cc42dece4df3da9a9f29c889225cb6c5e34ae4a41953f12df731