agentconnect.core.registry package¶
Agent registry for the AgentConnect framework.
This module provides the AgentRegistry class for agent registration, discovery, and capability matching, as well as the AgentRegistration dataclass for storing agent registration information.
- class AgentRegistry(vector_search_config=None)¶
Bases:
objectCentral registry for agent registration and discovery.
This class provides methods for registering agents, discovering agents by capability, and verifying agent identities.
- Parameters:
vector_search_config (VectorSearchSettings | Dict[str, Any] | None)
- async ensure_initialized()¶
Wait until the core registry initialization is complete.
- async get_agent_type(agent_id)¶
Get the type of an agent.
- async get_all_agents()¶
Get a list of all agents registered in the system.
- Return type:
- Returns:
List of all agent registrations
- async get_all_capabilities()¶
Get a list of all unique capability names registered in the system.
- async get_by_capability(capability_name, limit=10, similarity_threshold=0.1)¶
Find agents by capability name.
- Parameters:
- Return type:
- Returns:
List of agent registrations with the specified capability
- async get_by_capability_semantic(capability_description, limit=10, similarity_threshold=0.1, filters=None)¶
Find agents by capability description using semantic search.
- Parameters:
capability_description (
str) – Description of the capability to search forlimit (
int) – Maximum number of results to return (default: 10)similarity_threshold (
float) – Minimum similarity score to include in results (default: 0.1)filters (
Optional[Dict[str,List[str]]]) – Optional dictionary for filtering. Keys can include “tags”, “organization”, “developer”, “default_input_modes”, “default_output_modes”, “auth_schemes”. Values are lists of strings to match for the respective key.
- Return type:
- Returns:
List of tuples containing agent registrations and similarity scores
- async get_by_interaction_mode(mode)¶
Find agents by interaction mode.
- Parameters:
mode (
InteractionMode) – Interaction mode to search for- Return type:
- Returns:
List of agent registrations with the specified interaction mode
- async get_by_organization(organization)¶
Find agents by organization.
- Parameters:
organization (
str) – ID/name of the organization- Return type:
- Returns:
List of agent registrations in the specified organization
- async get_by_owner(owner_id)¶
Find agents by owner.
- Parameters:
owner_id (
str) – ID of the owner (now using developer field)- Return type:
- Returns:
List of agent registrations owned by the specified owner
- async get_registration(agent_id)¶
Get agent registration details.
- Parameters:
agent_id (
str) – ID of the agent- Return type:
- Returns:
Agent registration if found, None otherwise
- async get_verified_agents()¶
Get all verified agents.
- Return type:
- Returns:
List of verified agent registrations
- async register(registration)¶
Register a new agent with verification. Waits for initialization first.
- Parameters:
registration (
AgentRegistration) – Registration information for the agent- Return type:
- Returns:
True if registration was successful, False otherwise
- async unregister(agent_id)¶
Remove agent from registry.
- async update_registration(agent_id, updates)¶
Update agent registration details.
- Parameters:
- Return type:
- Returns:
Updated agent registration if successful, None otherwise
- property vector_search_settings: VectorSearchSettings¶
Get the vector search settings as a Pydantic model.
- async verify_agent(agent_id)¶
Verify an agent’s identity.
- class AgentRegistration(**data)¶
Bases:
BaseModelRegistration information for an agent.
This class stores the complete registration information for an agent, including its identity, capabilities, skills, and metadata needed for discovery and interaction.
- Parameters:
agent_id (str)
agent_type (AgentType)
interaction_modes (list[InteractionMode])
identity (AgentIdentity)
name (str | None)
summary (str | None)
description (str | None)
version (str | None)
documentation_url (str | None)
organization (str | None)
developer (str | None)
url (str | None)
capabilities (List[Capability])
payment_address (str | None)
registered_at (datetime)
- agent_id¶
Unique identifier for the agent
- agent_type¶
Type of agent (human, AI)
- interaction_modes¶
Supported interaction modes
- identity¶
Agent’s decentralized identity
- name¶
Name of the agent
- summary¶
Brief summary of the agent’s purpose
- description¶
Detailed description of the agent
- version¶
Version of the agent
- documentation_url¶
URL to the agent’s documentation
- organization¶
Organization or entity providing the agent (e.g., ‘Acme Corp’, ‘did:org:123’). Using a verifiable ID is recommended for robustness.
- developer¶
Individual or team that developed the agent (e.g., ‘Alice’, ‘did:person:abc’). Using a verifiable ID is recommended.
- url¶
Endpoint URL for the agent
- auth_schemes¶
List of supported authentication schemes
- default_input_modes¶
List of supported input modes
- default_output_modes¶
List of supported output modes
- capabilities¶
List of capabilities the agent provides
- skills¶
List of skills the agent possesses
- examples¶
Example inputs/outputs or use cases
- tags¶
Keywords for filtering
- payment_address¶
Agent’s primary wallet address for receiving payments
- custom_metadata¶
Additional custom metadata about the agent
- registered_at¶
When the agent was registered
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
interaction_modes:
list[InteractionMode]¶
-
identity:
AgentIdentity¶
-
capabilities:
List[Capability]¶
- class CapabilityDiscoveryService(vector_search_config=None)¶
Bases:
objectService for discovering agent capabilities through various search methods.
This class provides methods for finding agents based on their capabilities, including exact string matching and semantic search using Qdrant vector database.
- Parameters:
vector_search_config (Optional[Union[VectorSearchSettings, Dict[str, Any]]])
- COLLECTION_NAME = 'agent_capabilities'¶
- async clear_agent_embeddings_cache(agent_id)¶
Clear the embeddings cache for a specific agent from Qdrant.
- async find_by_capability_name(capability_name, agent_registrations, capabilities_index, limit=10, similarity_threshold=0.1)¶
Find agents by capability name (simple string matching).
- Parameters:
capability_name (
str) – Name of the capability to search foragent_registrations (
Dict[str,AgentRegistration]) – Dictionary of agent registrationscapabilities_index (
Dict[str,Set[str]]) – Index of agent capabilitieslimit (
int) – Maximum number of results to return (default: 10)similarity_threshold (
float) – Minimum similarity score to include in results (default: 0.1)
- Return type:
- Returns:
List of agent registrations with the specified capability
- async find_by_capability_semantic(capability_description, agent_registrations, limit=10, similarity_threshold=0.1, filters=None)¶
Find agents by capability description using semantic search with metadata filtering.
- Parameters:
capability_description (
str) – Description of the capability to search foragent_registrations (
Dict[str,AgentRegistration]) – Dictionary of agent registrationslimit (
int) – Maximum number of results to return (default: 10)similarity_threshold (
float) – Minimum similarity score to include in results (default: 0.1)filters (
Optional[Dict[str,List[str]]]) – Optional dictionary for filtering. Keys can include “tags”, “organization”, “developer”, “default_input_modes”, “default_output_modes”, “auth_schemes”. Values are lists of strings to match for the respective key.
- Return type:
- Returns:
List of tuples containing agent registrations and similarity scores
- async initialize_embeddings_model()¶
Initialize the embeddings model for semantic search and Qdrant client.
This should be called after agents have been registered to precompute embeddings for all existing capabilities.
- async precompute_all_capability_embeddings(agent_registrations)¶
Precompute embeddings for all existing capabilities and store in Qdrant.
- Parameters:
agent_registrations (
Dict[str,AgentRegistration]) – Dictionary of agent registrations- Return type:
- async update_capability_embeddings_cache(registration)¶
Update capability embeddings for a registration in Qdrant.
- Parameters:
registration (
AgentRegistration) – Registration information for the agent- Return type:
Subpackages¶
- agentconnect.core.registry.search package
AgentSearchInputAgentSearchOutputAgentSearchResultItemAgentSearchResultItem.ConfigAgentSearchResultItem.model_configAgentSearchResultItem.agent_idAgentSearchResultItem.similarity_scoreAgentSearchResultItem.nameAgentSearchResultItem.urlAgentSearchResultItem.payment_addressAgentSearchResultItem.summaryAgentSearchResultItem.tagsAgentSearchResultItem.capabilitiesAgentSearchResultItem.skillsAgentSearchResultItem.descriptionAgentSearchResultItem.examplesAgentSearchResultItem.versionAgentSearchResultItem.organizationAgentSearchResultItem.developerAgentSearchResultItem.auth_schemesAgentSearchResultItem.default_input_modesAgentSearchResultItem.default_output_modes
format_capabilities_for_output()format_skills_for_output()populate_search_result_item()- Submodules
Submodules¶
- agentconnect.core.registry.capability_discovery module
CapabilityDiscoveryServiceCapabilityDiscoveryService.COLLECTION_NAMECapabilityDiscoveryService.initialize_embeddings_model()CapabilityDiscoveryService.update_capability_embeddings_cache()CapabilityDiscoveryService.clear_agent_embeddings_cache()CapabilityDiscoveryService.precompute_all_capability_embeddings()CapabilityDiscoveryService.find_by_capability_name()CapabilityDiscoveryService.find_by_capability_semantic()
- agentconnect.core.registry.identity_verification module
- agentconnect.core.registry.registration module
AgentRegistrationAgentRegistration.agent_idAgentRegistration.agent_typeAgentRegistration.interaction_modesAgentRegistration.identityAgentRegistration.nameAgentRegistration.summaryAgentRegistration.descriptionAgentRegistration.versionAgentRegistration.documentation_urlAgentRegistration.organizationAgentRegistration.developerAgentRegistration.urlAgentRegistration.auth_schemesAgentRegistration.default_input_modesAgentRegistration.default_output_modesAgentRegistration.capabilitiesAgentRegistration.skillsAgentRegistration.examplesAgentRegistration.tagsAgentRegistration.payment_addressAgentRegistration.custom_metadataAgentRegistration.registered_atAgentRegistration.agent_idAgentRegistration.agent_typeAgentRegistration.interaction_modesAgentRegistration.identityAgentRegistration.nameAgentRegistration.summaryAgentRegistration.descriptionAgentRegistration.versionAgentRegistration.documentation_urlAgentRegistration.organizationAgentRegistration.developerAgentRegistration.urlAgentRegistration.auth_schemesAgentRegistration.default_input_modesAgentRegistration.default_output_modesAgentRegistration.capabilitiesAgentRegistration.skillsAgentRegistration.examplesAgentRegistration.tagsAgentRegistration.payment_addressAgentRegistration.custom_metadataAgentRegistration.registered_atAgentRegistration.model_config
- agentconnect.core.registry.registry_base module
AgentRegistryAgentRegistry.vector_search_settingsAgentRegistry.ensure_initialized()AgentRegistry.register()AgentRegistry.unregister()AgentRegistry.get_by_capability()AgentRegistry.get_by_capability_semantic()AgentRegistry.get_all_capabilities()AgentRegistry.get_all_agents()AgentRegistry.get_agent_type()AgentRegistry.get_by_interaction_mode()AgentRegistry.get_registration()AgentRegistry.get_by_organization()AgentRegistry.get_verified_agents()AgentRegistry.verify_agent()AgentRegistry.update_registration()AgentRegistry.get_by_owner()AgentRegistry.verify_owner()