内存
利用CrewAI框架中的内存系统来增强代理能力。
CrewAI中的内存系统介绍
crewAI框架引入了一个复杂的内存系统,旨在显著增强AI代理的能力。
该系统包括短期记忆、长期记忆、实体记忆和上下文记忆,每种记忆在帮助代理记忆、推理和学习过去的互动中都发挥着独特的作用。
内存系统组件
| 组件 | 描述 |
|---|---|
| 短期记忆 | 使用RAG临时存储最近的交互和结果,使代理能够在当前执行期间回忆并利用与其当前上下文相关的信息。 |
| 长期记忆 | 保留过去执行中的宝贵见解和学习成果,使代理能够随着时间的推移建立和完善其知识。 |
| 实体记忆 | 捕获和组织在任务过程中遇到的实体(人、地点、概念)信息,促进更深入的理解和关系映射。使用RAG来存储实体信息。 |
| 上下文记忆 | 通过结合ShortTermMemory、LongTermMemory和EntityMemory来维护交互的上下文,帮助在一系列任务或对话中保持代理响应的连贯性和相关性。 |
| 用户内存 | 存储用户特定的信息和偏好,增强个性化和用户体验。 |
内存系统如何赋能代理
-
上下文感知: 通过短期和上下文记忆,代理能够在对话或任务序列中保持上下文,从而产生更连贯和相关的响应。
-
经验积累: 长期记忆使代理能够积累经验,从过去的行动中学习,以改进未来的决策和问题解决。
-
实体理解: 通过维护实体记忆,代理能够识别并记住关键实体,增强其处理和交互复杂信息的能力。
在你的团队中实现记忆
在配置一个团队时,您可以启用并自定义每个记忆组件,以适应团队的目标和它将执行的任务的性质。
默认情况下,记忆系统是禁用的,您可以通过在团队配置中设置memory=True来确保其激活。
记忆将默认使用OpenAI嵌入,但您可以通过将embedder设置为不同的模型来更改它。
也可以使用您自己的实例来初始化记忆实例。
'embedder' 仅适用于使用 Chroma 进行 RAG 的短期记忆。 长期记忆使用 SQLite3 来存储任务结果。目前,无法覆盖这些存储实现。 数据存储文件保存在使用 appdirs 包找到的平台特定位置, 并且可以使用 CREWAI_STORAGE_DIR 环境变量覆盖项目名称。
示例:为团队配置内存
示例:使用自定义内存实例,例如 FAISS 作为 VectorDB
集成Mem0以增强用户记忆
Mem0 是一个用于LLM应用程序的自我改进内存层,能够实现个性化的AI体验。
要包含用户特定的内存,您可以获取您的API密钥这里并参考文档以添加用户偏好。
内存配置选项
如果你想访问特定的组织和项目,你可以在内存配置中设置org_id和project_id参数。
额外的嵌入提供商
使用OpenAI嵌入(已经是默认设置)
或者,您可以直接将OpenAIEmbeddingFunction传递给embedder参数。
示例:
使用Ollama嵌入
使用Google AI嵌入
使用 Azure OpenAI 嵌入
使用Vertex AI嵌入
使用Cohere嵌入
使用HuggingFace嵌入
使用Watson嵌入
重置内存
重置内存选项
| 选项 | 描述 | 类型 | 默认值 |
|---|---|---|---|
-l, --long | 重置长期记忆。 | 标志(布尔值) | False |
-s, --short | 重置短期记忆。 | 标志(布尔值) | False |
-e, --entities | 重置 ENTITIES 内存。 | 标志(布尔值) | False |
-k, --kickoff-outputs | 重置最新的KICKOFF任务输出。 | 标志(布尔值) | False |
-a, --all | 重置所有记忆。 | 标志(布尔值) | False |
使用CrewAI内存系统的优势
- 🦾 自适应学习: 随着时间的推移,团队变得更加高效,适应新信息并改进他们的任务处理方法。
- 🫡 增强个性化: 记忆功能使代理能够记住用户偏好和历史交互,从而提供个性化的体验。
- 🧠 提升问题解决能力: 访问丰富的记忆存储有助于代理做出更明智的决策,借鉴过去的学习和上下文洞察。
结论
将CrewAI的记忆系统集成到您的项目中非常简单。通过利用提供的内存组件和配置,您可以快速赋予您的代理记忆、推理和从交互中学习的能力,从而解锁新的智能和能力水平。
