Skip to content

Chroma

Chroma MCP 服务器将你的 ADK 智能体连接到 Chroma,这是一个开源嵌入数据库。此集成使你的智能体能够创建集合、存储文档,并使用语义搜索、全文搜索和元数据过滤来检索信息。

使用场景

  • 智能体的语义记忆:存储对话上下文、事实或学习到的信息,智能体可以稍后使用自然语言查询检索。

  • 知识库检索:通过存储文档并检索相关上下文来构建检索增强生成 (RAG) 系统以生成响应。

  • 跨会话的持久上下文:在对话之间维护长期记忆,允许智能体引用过去的交互和积累的知识。

先决条件

  • 对于本地存储:用于持久化数据的目录路径
  • 对于 Chroma Cloud:具有租户 ID、数据库名称和 API 密钥的 Chroma Cloud 账户

与智能体一起使用

from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters

# 对于本地存储,使用:
DATA_DIR = "/path/to/your/data/directory"

# 对于 Chroma Cloud,使用:
# CHROMA_TENANT = "your-tenant-id"
# CHROMA_DATABASE = "your-database-name"
# CHROMA_API_KEY = "your-api-key"

root_agent = Agent(
    model="gemini-2.5-pro",
    name="chroma_agent",
    instruction="帮助用户使用语义搜索存储和检索信息",
    tools=[
        McpToolset(
            connection_params=StdioConnectionParams(
                server_params=StdioServerParameters(
                    command="uvx",
                    args=[
                        "chroma-mcp",
                        # 对于本地存储,使用:
                        "--client-type",
                        "persistent",
                        "--data-dir",
                        DATA_DIR,
                        # 对于 Chroma Cloud,使用:
                        # "--client-type",
                        # "cloud",
                        # "--tenant",
                        # CHROMA_TENANT,
                        # "--database",
                        # CHROMA_DATABASE,
                        # "--api-key",
                        # CHROMA_API_KEY,
                    ],
                ),
                timeout=30,
            ),
        )
    ],
)

可用工具

集合管理

工具 描述
chroma_list_collections 列出所有集合并支持分页
chroma_create_collection 创建具有可选 HNSW 配置的新集合
chroma_get_collection_info 获取有关集合的详细信息
chroma_get_collection_count 获取集合中的文档数量
chroma_modify_collection 更新集合的名称或元数据
chroma_delete_collection 删除集合
chroma_peek_collection 查看集合中的文档样本

文档操作

工具 描述
chroma_add_documents 添加具有可选元数据和自定义 ID 的文档
chroma_query_documents 使用具有高级过滤的语义搜索查询文档
chroma_get_documents 通过 ID 或过滤器检索文档并支持分页
chroma_update_documents 更新现有文档的内容、元数据或嵌入
chroma_delete_documents 从集合中删除特定文档

配置

Chroma MCP 服务器支持多种客户端类型以适应不同需求:

客户端类型

客户端类型 描述 关键参数
ephemeral 内存存储,重启时清除。适用于测试。 无 (默认)
persistent 本地机器上基于文件的存储 --data-dir
http 连接到自托管的 Chroma 服务器 --host, --port, --ssl, --custom-auth-credentials
cloud 连接到 Chroma Cloud (api.trychroma.com) --tenant, --database, --api-key

环境变量

你也可以使用环境变量配置客户端。命令行参数优先于环境变量。

变量 描述
CHROMA_CLIENT_TYPE 客户端类型:ephemeralpersistenthttpcloud
CHROMA_DATA_DIR 用于持久本地存储的路径
CHROMA_TENANT Chroma Cloud 的租户 ID
CHROMA_DATABASE Chroma Cloud 的数据库名称
CHROMA_API_KEY Chroma Cloud 的 API 密钥
CHROMA_HOST 自托管 HTTP 客户端的主机
CHROMA_PORT 自托管 HTTP 客户端的端口
CHROMA_SSL 为 HTTP 客户端启用 SSL (truefalse)
CHROMA_DOTENV_PATH .env 文件的路径 (默认为 .chroma_env)

其他资源