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.0.tar.gz (12.0 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.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: agent_dna-0.3.0.tar.gz
  • Upload date:
  • Size: 12.0 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.0.tar.gz
Algorithm Hash digest
SHA256 0dc4d3918d60460d52c87ce0066b9304bfb3a0d2ef69275610c8d0b29fd9f2ec
MD5 c4bb4ba6c943bfa9a28ef3b251139f53
BLAKE2b-256 8c9b28e23a47a0058f3382b0bcd1818c1bc7ff69503cad87588dd0755abb634c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: agent_dna-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 14.1 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a3b5e8077355e44cd074f1d690c055f22d1bae1970772741dc7b47d8e1c224ff
MD5 db064459c08af0c3ad9e5cb8e8e7714e
BLAKE2b-256 e824f2ea31518d9a66c4841d018e14ccc6df4c017f51a327ae450dfdc26979e1

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