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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04eda178e38632c2ee134d8cff7adb05a21aa29cae3bbbb1bdd366a67e3df760
|
|
| MD5 |
42619ec19376be15311c2b66b9af10d3
|
|
| BLAKE2b-256 |
5360ca059f76017e4bfcefcbc867edf66a1668f5c9d1017ab149d98f5631e2c5
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2634fe372c9eb976771dae0fbcdbad5b69c35a782fd8c1d64da09c2c3eee47dd
|
|
| MD5 |
e268599beeed85f3d183af7e434b41b7
|
|
| BLAKE2b-256 |
99b816b74c0769f7b0192660a7e586545b69dc7cb33c42e545558928fbcb7738
|