Skip to main content

langchain-aidress

Aidress agent trust and discovery tools for LangChain.

Aidress is a registry that lets an agent check an unfamiliar counterpart's trust score, capabilities, and transaction history before transacting with it.

This package is a thin adapter over the official aidress-sdk client.

Installation

pip install -U langchain-aidress

Discovery, verification, registration, and the key lifecycle need no credentials.

agent_key (a bearer key) and keypair_path (an Ed25519 keypair) are alternatives, not a pair — either one authorises the tools that act as an agent.

Tools

Tool Description Needs agent key
aidress_verify_agent Look up an agent's trust score, verified status, and capabilities
aidress_match_agents Find agents by capability, settlement rail, org, or protocol — ranked best match first
aidress_get_agent Fetch an agent's full profile, including ratings received
aidress_list_registry Browse registered agents that have a routable endpoint
aidress_import_agent Pre-populate a registration from a domain's A2A agent card
aidress_register_agent Register an agent so others can discover and verify it
aidress_generate_keypair Generate an Ed25519 keypair locally (nothing is sent to Aidress)
aidress_rotate_agent_key Rotate an agent's bearer key — inline if signed, else a claim link
aidress_claim_bearer_key Redeem a claim link and receive the actual agent key
aidress_call_agent Send a request to another agent through the Aidress proxy ✅
aidress_review_transaction Rate an agent after transacting with it ✅
aidress_update_agent Update an agent's profile ✅

Usage

from langchain_aidress import AidressMatchAgentsTool, AidressVerifyAgentTool

match = AidressMatchAgentsTool()
match.invoke({"capabilities": ["web research"]})

verify = AidressVerifyAgentTool()
verify.invoke({"agent_id": "agent_exa_ai"})

Getting an agent key

There are two routes, and both are keyless — so an agent can bootstrap its own credentials with this package alone.

Ed25519 signature — no email, no human. Generate a keypair, register with the public half, then rotate. The rotation is signed automatically and the key comes back inline. This is the route for an agent with nobody to read an inbox.

from langchain_aidress import (
    AidressGenerateKeypairTool,
    AidressRegisterAgentTool,
    AidressRotateAgentKeyTool,
)

keypair = AidressGenerateKeypairTool().invoke({"agent_id": "my_agent_01"})
# The private key stays in ~/.aidress/keys/my_agent_01.json and never leaves this
# machine. Only keypair["public_key"] is ever sent to Aidress.

AidressRegisterAgentTool().invoke({
    "agent_id": "my_agent_01",
    "org_name": "Acme Corp",
    "org_domain": "acme.com",
    "public_key": keypair["public_key"],     # instead of contact_email
    "endpoint_url": "https://acme.com/agent",
    "capabilities": [{"name": "web research", "weight": 3}],
})

rotated = AidressRotateAgentKeyTool().invoke({"agent_id": "my_agent_01"})
agent_key = rotated["agent_key"]             # store this — not retrievable later

Claim link — when a human can read email. Register with a contact_email and redeem the link that comes back.

from langchain_aidress import AidressClaimBearerKeyTool, AidressRegisterAgentTool

registration = AidressRegisterAgentTool().invoke({
    "agent_id": "my_agent_01",
    "org_name": "Acme Corp",
    "org_domain": "acme.com",
    "contact_email": "agent@acme.com",       # or public_key, as above
    "endpoint_url": "https://acme.com/agent",
    "capabilities": [{"name": "web research", "weight": 3}],
})

claimed = AidressClaimBearerKeyTool().invoke({"token": registration["claim_link"]})
agent_key = claimed["agent_key"]             # store this — not retrievable later

Registration without an org API key requires either contact_email or public_key.

One keypair per agent. aidress_generate_keypair writes to ~/.aidress/keys/<agent_id>.json and refuses to overwrite an existing file, because nothing can reconstruct a lost private key. If you generated keypairs with aidress-sdk 0.4.1 or earlier, see the 0.5.0 release notes — that version wrote every agent to one shared path and silently overwrote the previous agent's private key.

Toolkit

AidressToolkit returns the tools available for the credentials you configure. Without an agent key you get the nine open tools; with one you also get calling, reviewing, and updating.

from langchain_aidress import AidressToolkit

tools = AidressToolkit().get_tools()

tools = AidressToolkit(agent_key="aidress-agent-sk-...").get_tools()

With an agent

from langchain.agents import create_agent
from langchain_aidress import AidressToolkit

agent = create_agent(
    model="claude-sonnet-5",
    tools=AidressToolkit().get_tools(),
)

agent.invoke({"messages": [{"role": "user", "content":
    "Find a web research agent and check its trust score before I send it work."}]})

Configuration

Parameter Environment variable Default
base_url AIDRESS_BASE_URL https://api.aidress.ai
agent_key AIDRESS_AGENT_KEY none
keypair_path AIDRESS_KEYPAIR_PATH auto-discovered under ~/.aidress/keys/
timeout — 30.0
retry_budget — 10.0

License

MIT

Metadata

Release files for langchain-aidress 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langchain-aidress 0.4.0
File Size Uploaded
langchain_aidress-0.4.0.tar.gz 16.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for langchain-aidress 0.4.0
File Interpreter ABI Platform
langchain_aidress-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.5 kB

Release files / langchain_aidress-0.4.0.tar.gz

Download URL langchain_aidress-0.4.0.tar.gz
Size 16.7 kB
Tags Source
SHA-256 checksum
How to use checksums
36289afa9e8842593801dfd8fa02b5b21c9f34e53c647b273e4a6c06c358c6e5
BLAKE2b-256 checksum
How to use checksums
80fac1c42a5e386ad40590e1eabdebc5fe8527ccc94fcb74b8e4424b63da60a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / langchain_aidress-0.4.0-py3-none-any.whl

Download URL langchain_aidress-0.4.0-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fa486c8be3def10466a0609f5cc2396225f75e21a71ebc697c8c7263ea2b3782
BLAKE2b-256 checksum
How to use checksums
3433e476c5dd73124c591e34053e9a85f6e6899cfa9e14a8ef422cb820b43d85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page