Skip to main content

AgentDNA: Verifiable and Auditable AI Agents

Project description

AgentDNA

AgentDNA is a package that helps in auditing and verifiability of Agents within a multi-agent communication system.

Key Features

  • Unified trust layer for multi-agent systems
  • Automatically manages:
    • DID setup
    • Signing traces of conversation
    • Verification of Agent conversation
  • Immutable audit logging
  • Fully compatible with:
    • Google A2A protocol
    • ADK, Crew and LangGraph frameworks

Installation

# Installation via pip
pip install agent-dna

# Installation via uv
uv add agent-dna

Architecture

AgentDNA abstracts the complexity of identity, provenance and governance, giving developers a simple, unified interface for secure agent behavior

┌─────────────────────────┐
│      Agent Developer    │
│  dna.build() / handle() │
└─────────────┬───────────┘
              │
┌─────────────────────────┐
│       AgentDNA          │
│ role = "host" | "remote"│
└─────────────┬───────────┘
              │
┌─────────────────────────┐
│   RubixMessageHandler   |
│ - build host/agent msgs │
│ - parse & verify inbound│
│ - NFT execution (host)  │
└─────────────┬───────────┘
              │
┌───────────────────────────┐
│    RubixTrustService      │
│ - DID management          │
│ - sign_envelope()         │
│ - verify_envelope()       │
│ - verify_message_payload()│
└─────────────┬─────────────┘
              │
┌─────────────────────────┐
│       rubix-py SDK      │
│ RubixClient             │
│ Signer                  │
│ Querier                 │
└─────────────────────────┘

Agent Roles

AgentDNA supports two roles:

Host Agent

Responsible for:

  • Signing and sending outgoing host_request
  • Verifying inbound agent_response
  • Optional NFT execution for audit logging

Remote Agent

Responsible for:

  • Verifying inbound host_request
  • Signing outbound agent_response

Quick Start Example

Initializing

from agentdna import AgentDNA

dna = AgentDNA(alias="<agent alias>", role="<host/remote>", api_key="<API Key for AgentDNA Backend>")

Remote Agents

verify_info = await dna.handle(raw_text=raw_message, verify_mode="<light/heavy>")

reply = run_llm(original_msg)

built = dna.build(
    original_message=original_msg,
    response=reply,
    host_block=host_block,
)

Host Agent

outbound = dna.build(
    original_message="Are you free tomorrow?",
    state={"task_id": tid, "context_id": cid}
)

result = await self.dna.handle(
    resp_parts=resp_parts,
    original_task=task,
    remote_name=agent_name,
)

Project Structure

agentdna/
 ├── core.py
 ├── handler.py
 ├── trust.py
 ├── node_client.py
 └── ...

Examples

Full Host, ADK, and LangGraph examples can be found inside https://github.com/rubixchain/agentdna/tree/main/examples.

License

MIT

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

agent_dna-0.3.1.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

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

agent_dna-0.3.1-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file agent_dna-0.3.1.tar.gz.

File metadata

  • Download URL: agent_dna-0.3.1.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for agent_dna-0.3.1.tar.gz
Algorithm Hash digest
SHA256 04eda178e38632c2ee134d8cff7adb05a21aa29cae3bbbb1bdd366a67e3df760
MD5 42619ec19376be15311c2b66b9af10d3
BLAKE2b-256 5360ca059f76017e4bfcefcbc867edf66a1668f5c9d1017ab149d98f5631e2c5

See more details on using hashes here.

File details

Details for the file agent_dna-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: agent_dna-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for agent_dna-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2634fe372c9eb976771dae0fbcdbad5b69c35a782fd8c1d64da09c2c3eee47dd
MD5 e268599beeed85f3d183af7e434b41b7
BLAKE2b-256 99b816b74c0769f7b0192660a7e586545b69dc7cb33c42e545558928fbcb7738

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