此仓库包含一个小型演示代理,该代理使用Google Gemini嵌入式向量和MCP Toolbox的MongoDB工具集来实现一个“在线杂货代理”。该代理展示了如何使用向量搜索在库存中查找产品、将产品添加到购物车(MongoDB集合)以及获取购物车总计(聚合购物车集合)。
mongodb-groceries-agent/: 包含演示代理的实现代码(agent.py)和包初始化文件。tools.yaml: MongoDB工具集的定义文件。在运行演示之前,请确保您的机器上已安装并可用以下内容:
GOOGLE_API_KEY)您可以创建一个免费的(M0)MongoDB Atlas集群。请按照以下步骤操作:
在浏览器中打开Atlas注册页面。
注册一个免费的MongoDB账户,或者如果您已有账户,则登录。
点击“创建集群”并选择免费层(M0 / 共享)。
选择云提供商和区域(默认值对于演示来说是合适的)。
创建数据库用户:转到“数据库访问”并添加一个具有密码的用户。保存这个用户名/密码——您将在连接字符串中需要它。
允许您的IP地址:转到“网络访问”并添加您的当前IP或0.0.0.0/0以进行测试(不建议用于生产环境)。
点击“连接”,选择“连接您的应用”,并复制提供的连接字符串。
将连接字符串用作tools.yaml中的uri,或者更优选地通过环境变量设置它。示例连接字符串如下:
mongodb+srv://<username>:<password>@<your-cluster>.mongodb.net/<dbname>?retryWrites=true&w=majority
注意:用来自Atlas的值替换<username>、<password>、<your-cluster>和<dbname>。对于本地测试,您也可以使用本地MongoDB服务器。
将示例杂货产品数据导入名为products的集合,在名为groceries的数据库中。您可以使用提供的sample_data/groceries.json文件,并通过MongoDB Atlas UI或mongosh导入它。
mongoimport --uri="<your-connection-string>" --db="grocery_store" --collection="inventory" --file="grocery_store.inventory.json" --jsonArray
在运行代理之前,请设置以下环境变量:
GOOGLE_API_KEY — 您的Google GenAI API密钥示例(macOS / zsh):
export GOOGLE_API_KEY="your-google-api-key"
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt # 如果存在requirements文件;否则手动安装所需包
./toolbox --tools-file "tools.yaml"
确保Toolbox服务器正在运行并且可以在http://127.0.0.1:5000访问。
运行代理代码(此演示文件旨在由启动代理的编排脚本导入)。要快速尝试简单的运行或导入模块:
adk web
根据需要调整调用来集成代理到管理代理生命周期的运行时环境中。
agent.py做了什么GOOGLE_API_KEY并将其设置在os.environ中供Google GenAI客户端使用。genai.Client()和一个指向http://127.0.0.1:5000的Toolbox客户端。generate_embeddings(query)以使用gemini-embedding-001生成嵌入向量。find_similar_products(query),该函数通过toolkit工具find_similar_documents对名为vector_index的索引和字段gemini_embedding执行向量搜索。Agent,并加载来自toolkit的grocery-shopping-toolset。GOOGLE_API_KEY已设置且有效。自行承担风险使用;非支持的MongoDB产品