agentconnect.core.registry.capability_discovery module¶
Capability discovery functionality for the AgentConnect framework.
This module provides the main interface for searching and discovering agent capabilities, including semantic search using embeddings and simpler string matching methods.
- 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 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 update_capability_embeddings_cache(registration)¶
Update capability embeddings for a registration in Qdrant.
- Parameters:
registration (
AgentRegistration) – Registration information for the agent- Return type:
- async clear_agent_embeddings_cache(agent_id)¶
Clear the embeddings cache for a specific agent from Qdrant.
- 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 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