Integrations
Use Canonical with popular AI agent frameworks. The Python SDK works as a drop-in tool for LangChain, AutoGen, CrewAI, Agno, and any framework that supports Python functions.
LangChain
from langchain_core.tools import tool from canonical_search import CanonicalClient client = CanonicalClient(api_key="sk_your_key") @tool def search_companies(query: str, top_k: int = 20) -> str: """Search for companies using natural language.""" return client.search(query, top_k).model_dump_json()
AutoGen
from autogen import register_function from canonical_search import CanonicalClient client = CanonicalClient(api_key="sk_your_key") def search_companies(query: str, top_k: int = 20) -> str: """Search for companies using natural language.""" return client.search(query, top_k).model_dump_json() register_function( search_companies, caller=assistant, executor=executor, description="Search for companies using natural language", )
CrewAI
from crewai.tools import tool from canonical_search import CanonicalClient client = CanonicalClient(api_key="sk_your_key") @tool("Company Search") def search_companies(query: str, top_k: int = 20) -> str: """Search for companies using natural language.""" return client.search(query, top_k).model_dump_json()
Agno
from agno.tools import tool from canonical_search import CanonicalClient client = CanonicalClient(api_key="sk_your_key") @tool def search_companies(query: str, top_k: int = 20) -> str: """Search for companies using natural language.""" return client.search(query, top_k).model_dump_json()
Any Python Framework
The SDK returns Pydantic models, so it works with any framework that accepts Python functions. Use .model_dump_json() for string output or .model_dump() for dict output.
from canonical_search import CanonicalClient client = CanonicalClient(api_key="sk_your_key") # As JSON string json_str = client.search("fintech").model_dump_json() # As Python dict data = client.search("fintech").model_dump() # Async version results = await client.asearch("fintech") companies = [c.model_dump() for c in results.results]