We’re excited to announce that Couchbase is now supported as a vector store in Agno. This integration brings together the best of Agno’s agent orchestration capabilities and Couchbase’s high-performance, scalable vector store. It allows developers to build intelligent, multi-agent systems powered by fast and efficient vector search.
Agno is an open-source, full-stack framework for building multi-agent systems. It offers a clean, composable, and Pythonic approach to building AI agents with the tools, memory, and reasoning capabilities. It’s easy to use, extremely fast, and supports multi-modal inputs and outputs.
Let’s explore this integration further!
Setting up Agno with Couchbase
To get started with Agno and Couchbase, you’ll need to follow a few simple steps.
Installing Agno
You can install Agno and other required dependencies by running the following command:
1 |
pip install -U agno couchbase openai |
You can now begin using Agno’s CLI to configure agents and vector stores.
Connecting to Couchbase and performing vector search
Now that Agno and Couchbase dependencies are installed, you can connect Couchbase as a vector store and perform vector searches. Here’s how:
Import the packages and initialize the Couchbase database instance.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from agno.agent import Agent from agno.embedder.openai import OpenAIEmbedder from agno.knowledge.pdf_url import PDFUrlKnowledgeBase from agno.vectordb.couchbase import CouchbaseSearch from couchbase.options import ClusterOptions, KnownConfigProfiles from couchbase.auth import PasswordAuthenticator from couchbase.management.search import SearchIndex # Couchbase connection settings username = os.getenv("COUCHBASE_USER") password = os.getenv("COUCHBASE_PASSWORD") connection_string = os.getenv("COUCHBASE_CONNECTION_STRING") # Create cluster options with authentication auth = PasswordAuthenticator(username, password) cluster_options = ClusterOptions(auth) cluster_options.apply_profile(KnownConfigProfiles.WanDevelopment) |
Specify the username, password and connection string to your Couchbase Cluster.
Initialize Vector Store
Now we initialize the Couchbase Vector Store:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
vector_db=CouchbaseSearch( bucket_name="recipe_bucket", scope_name="recipe_scope", collection_name="recipes", couchbase_connection_string=connection_string, cluster_options=cluster_options, search_index="vector_search_fts_index", embedder=OpenAIEmbedder( id="text-embedding-3-large", dimensions=3072, api_key=os.getenv("OPENAI_API_KEY") ), wait_until_index_ready=60, overwrite=True ), |
Specify the bucket, scope and collection for your Couchbase cluster. Also, define what Embedding model you will use to generate the embeddings.
Load data
Create a PDF url knowledge base instance and load the data into the instance. We use a public recipe pdf data as an example.
1 2 3 4 5 6 7 8 9 10 |
# Create knowledge base knowledge_base = PDFUrlKnowledgeBase( urls=["https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"], vector_db=vector_db, ) knowledge_base.load(recreate=False) # Comment out after first run # Wait for the vector index to sync with KV time.sleep(20) |
Use Agno agent to perform vector search
Once you’ve configured your Couchbase vector store, and inserted the documents, integrate the knowledge base into an agent, then we can ask the agent a question and get a response.
1 2 3 |
# Create and use the agent agent = Agent(knowledge=knowledge_base, show_tool_calls=True) agent.print_response("How to make Thai curry?", markdown=True) |
Conclusion
With the integration of Agno’s robust agentic framework with Couchbase’s high-performance vector search capabilities, developers can create scalable, AI-driven applications that efficiently handle complex data retrieval and reasoning tasks. This enables agents to perform semantic searches, enhance contextual understanding, and deliver more accurate responses. Whether you’re working on semantic search, RAG applications, or other AI-driven use cases, this setup ensures efficiency and accuracy.
Next steps
More information is available in the Agno documentation, including an integration guide to Couchbase.
Happy coding!