Files
crewAI/crewai_tools/tools/couchbase_tool
Greyson Lalonde e16606672a Squashed 'packages/tools/' content from commit 78317b9c
git-subtree-dir: packages/tools
git-subtree-split: 78317b9c127f18bd040c1d77e3c0840cdc9a5b38
2025-09-12 21:58:02 -04:00
..

CouchbaseFTSVectorSearchTool

Description

Couchbase is a NoSQL database with vector search capabilities. Users can store and query vector embeddings. You can learn more about Couchbase vector search here: https://docs.couchbase.com/cloud/vector-search/vector-search.html

This tool is specifically crafted for performing semantic search using Couchbase. Use this tool to find semantically similar docs to a given query.

Installation

Install the crewai_tools package by executing the following command in your terminal:

uv pip install 'crewai[tools]'

Setup

Before instantiating the tool, you need a Couchbase cluster.

You will need to create a bucket, scope and collection on the cluster. Then, follow this guide to create a Couchbase Cluster object and load documents into your collection.

Follow the docs below to create a vector search index on Couchbase.

Ensure that the Dimension field in the index matches the embedding model. For example, OpenAI's text-embedding-3-small model has an embedding dimension of 1536 dimensions, and so the Dimension field must be 1536 in the index.

Example

To utilize the CouchbaseFTSVectorSearchTool for different use cases, follow these examples:

from crewai_tools import CouchbaseFTSVectorSearchTool

# Instantiate a Couchbase Cluster object from the Couchbase SDK

tool = CouchbaseFTSVectorSearchTool(
    cluster=cluster,
    collection_name="collection",
    scope_name="scope",
    bucket_name="bucket",
    index_name="index",
    embedding_function=embed_fn
)

# Adding the tool to an agent
rag_agent = Agent(
    name="rag_agent",
    role="You are a helpful assistant that can answer questions with the help of the CouchbaseFTSVectorSearchTool.",
    llm="gpt-4o-mini",
    tools=[tool],
)

Arguments

  • cluster: An initialized Couchbase Cluster instance.
  • bucket_name: The name of the Couchbase bucket.
  • scope_name: The name of the scope within the bucket.
  • collection_name: The name of the collection within the scope.
  • index_name: The name of the search index (vector index).
  • embedding_function: A function that takes a string and returns its embedding (list of floats).
  • embedding_key: Name of the field in the search index storing the vector. (Optional, defaults to 'embedding')
  • scoped_index: Whether the index is scoped (True) or cluster-level (False). (Optional, defaults to True)
  • limit: The maximum number of search results to return. (Optional, defaults to 3)