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>")

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.2.0.tar.gz (11.5 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.2.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for agent_dna-0.2.0.tar.gz
Algorithm Hash digest
SHA256 92daa90a53fe82d966875245d212912da2426ed86903481a3a852a15ec56e2a6
MD5 796b1285da17da7886b5dee3be15c9c7
BLAKE2b-256 46ee1e77f86269d39681702ac53571b196a3b04a00ff4be9cf72124319a1c2c0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for agent_dna-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 03edc1a4b7a06c1b3da8cecf51a2a3f370d7435bb56a9ccbffeee20716eaef41
MD5 b5eb7bf403e819489e6a52ef2c0e9189
BLAKE2b-256 99807ec9e80039e53fbaf5a2658af1d736578a40bc6383644b012f146fe8eed0

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