MongoDB提供了多种用于构建AI代理的功能。作为向量和文档数据库, MongoDB支持代理 RAG 的各种搜索方法,以及将代理交互存储在同一数据库中以进行短期和长期代理内存。
开始体验什么是 AI 代理?
在生成式人工智能的背景下,AI 代理通常指的是能够通过结合 AI 模型(如 LLM)与一组预定义工具,以自主或半自主方式完成任务的系统。
AI 代理可以使用工具收集上下文、与外部系统交互并执行操作。它们可以确定自己的执行流程(规划),并记住以前的交互情况,为响应提供依据(记忆)。因此,AI 代理最适合需要推理、规划和决策的复杂任务。
架构
AI 代理通常包含以下组件的组合:
感知 | 您对代理的输入。文本输入是 AI 代理最常见的感知机制,但输入也可以是音频、图像或多模态数据。 |
计划 | 代理如何确定下一步做什么。该组件通常包括 LLM 和提示,使用反馈循环和各种 提示工程技术,例如思维链和 reAct,帮助 LLM 推理复杂任务。 AI 代理可以由作为决策者的单个 LLM、具有多个提示的 LLM、多个协同工作的 LLM,或这些方法的任意组合组成。 |
工具 | 代理如何为任务收集上下文信息。工具允许代理与外部系统交互,并执行诸如向量搜索、网络搜索或从其他服务调用 API 等操作。 |
内存 | 一种用于存储代理交互的系统,使代理能够从过去的经验中学习,从而做出相应的响应。记忆可以是短期记忆(用于当前会话)或长期记忆(在会话之间持久化)。 |
注意
AI agents vary in design pattern, function, and complexity. To learn about other agent architectures, including multi-agent systems, see Agentic Design Patterns.
使用 MongoDB 构建 AI 代理
MongoDB支持使用以下组件来构建AI助手:
Tools: Leverage MongoDB search features as tools for your agent to retrieve relevant information and implement agentic RAG.
Memory: Store agent interactions in MongoDB collections for both short and long-term memory.
代理工具
除了标准MongoDB查询之外, MongoDB还提供多种搜索功能,您可以将这些功能实现为代理的工具。
MongoDB Vector Search:执行向量搜索,根据语义和相似性检索。要学习;了解更多信息,请参阅MongoDB Vector Search 概述。
MongoDB Search: Perform full-text search to retrieve relevant context based on keyword matching and relevance scoring. To learn more, see MongoDB Search Overview.
Hybrid Search: Combine MongoDB Vector Search with MongoDB Search to leverage the strengths of both approaches. To learn more, see How to Perform Hybrid Search.
You can define tools manually or by using frameworks such as LangChain and LangGraph, which provide built-in abstractions for tool creation and calling.
工具定义
工具被定义为智能体可调用的函数,用于执行特定任务。例如,以下语法说明了如何定义一个运行向量搜索查询的工具:
工具调用
工具调用是代理用来执行工具的调用。您可以定义如何在代理中进程工具调用,或使用框架来处理此问题。这些通常定义为JSON对象,其中包括工具名称和其他要传递给该工具的参数,以便代理可以使用适当的参数调用该工具。示例,以下语法说明了代理如何调用向量搜索工具:
{ "tool": "vector_search_tool", "args": { "query": "What is MongoDB?" }, "id": "call_H5TttXb423JfoulF1qVfPN3m" }
Agentic RAG
通过使用MongoDB作为向量数据库,您可以创建实现代理 RAG 的检索工具,代理 RAG 是RAG的高级形式,允许您通过AI代理动态编排检索和生成进程。
这种方法支持更复杂的工作流程和用户交互。示例,您可以配置AI代理,根据任务确定最佳检索工具,例如使用MongoDB Vector Search 进行语义搜索,使用MongoDB Search 进行全文搜索。您还可以为不同的集合定义不同的检索工具,以进一步自定义代理的检索功能。
代理记忆
由于MongoDB也是一个文档数据库,因此您可以通过将代理的交互存储在MongoDB集合中来实现代理的内存。然后,代理可以根据需要查询或更新此集合。使用MongoDB实现代理内存有多种方法:
对于短期记忆,您可以在存储交互时包含一个
session_id字段,用于标识特定会话,然后查询具有相同 ID 的交互,将其作为上下文传递给代理。为了长期记忆,您可能会处理与 LLM 的多次交互,以提取相关信息,例如用户偏好或重要的上下文,然后将这些信息存储在一个单独的集合中,以便代理在需要时查询。
To build robust memory management systems that enable more efficient and complex retrieval of conversation histories, leverage MongoDB Search or MongoDB Vector Search to store, index, and query important interactions across sessions.
存储短期记忆的集合中的文档可能类似于以下内容:
{ "session_id": "123", "user_id": "jane_doe", "interactions": [ { "role": "user", "content": "What is MongoDB?", "timestamp": "2025-01-01T12:00:00Z" }, { "role": "assistant", "content": "MongoDB is the world's leading modern database.", "timestamp": "2025-01-01T12:00:05Z" } ] }
存储长期记忆的集合中的文档可能类似于以下内容:
{ "user_id": "jane_doe", "last_updated": "2025-05-22T09:15:00Z", "preferences": { "conversation_tone": "casual", "custom_instructions": [ "I prefer concise answers." ], }, "facts": [ { "interests": ["AI", "MongoDB"], } ] }
The following frameworks also provide direct abstractions for agent memory with MongoDB:
框架 | 功能 |
|---|---|
LangChain |
To learn more, see the tutorial. |
LangGraph |
To learn more, see LangGraph and LangGraph.js. |
开始体验
以下教程演示了如何在没有代理框架的情况下,使用MongoDB提供代理 RAG 和内存构建AI代理。
先决条件
如要完成本教程,您必须具备以下条件:
以下MongoDB 集群类型之一:
使用 Python 和 Docker 创建的本地 Atlas 部署。安装
atlas-local-lib-py(pip install atlas-local-lib-py),以编程方式创建和管理本地部署。要了解更多信息,请参阅 atlas-local-lib-py 存储库。A MongoDB Community or Enterprise cluster with Search and Vector Search installed.
Voyage AI API 密钥。
一个 OpenAI API 密钥。
注意
本教程使用来自 Voyage AI 和 OpenAI 的模型,但您可以修改代码以使用您选择的模型。
步骤
此 AI 代理可用于回答有关自定义数据源的问题并执行计算。它还可以记住之前的交互,以便提供更准确的响应。它使用以下组件:
感知:文本输入。
规划:使用一个LLM和多个提示来推理完成任务。
工具:向量搜索工具和计算器工具。
Memory:将交互存储在 MongoDB 集合中。
Tutorials
如需更多关于使用 MongoDB 构建 AI 代理的教程,请参阅下表:
框架 | |
企业平台 | |
工具 | |
其他资源 |