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 |
客户端类型:ephemeral、persistent、http 或 cloud |
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 (true 或 false) |
CHROMA_DOTENV_PATH |
.env 文件的路径 (默认为 .chroma_env) |