AI下的Memory策略和项目文档实践

AI下的Memory策略, 为项目注入文档

常见的8种策略

  1. 全量

  2. 滑动记忆: 固定长度阶段

  3. 相关性过滤: 遗忘次要信息

  4. 摘要/压缩:提炼关键信息

  5. 向量数据库: 存储检索记忆

  6. 知识图谱: 结构化记忆

  7. 分层记忆: 分为短期和长期

  8. 类'os内存'记忆

本地长期记忆策略

包含向量数据库 和图数据库,多维度检索;向量数据库负责高效语义检索,图数据库负责追踪实体关系

  • 从对话中提取信息结构化存储到向量数据库

当一段对话进入Mem0,系统会利用大语言模型进行深度分析,自动识别并提取出关键实体(如人名、电影名)和事实(如喜好、事件),这个过程本身就是一种结构化。例如,从对话“我的朋友John喜欢徒步,他有一只叫Tommy的狗”中,系统会识别出实体 [“John”, “Tommy”] 和关系 [“John” - “喜欢” -> “徒步”], [“John” - “拥有” -> “Tommy”]

  • 结合向量和图数据库,更加精准检索

双重并行存储
提取出的信息会同时存入两个数据库:

存入向量数据库:将整个句子或关键事实转化为一个高维向量(一串数字)。这个向量封装了其语义信息,供后续进行相似性搜索。

存入图数据库:将识别出的实体和关系,构建成网络中的节点和连接边。例如,创建节点 人物:John、爱好:徒步、宠物:Tommy,并用边标明它们之间的关系

  • 智能检索与结果整合

阶段一:语义初筛。将查询问题(如“John的宠物叫什么?”)转化为向量,在向量数据库中快速搜索语义相关的所有记忆片段。

阶段二:关系精查。利用图数据库,对初筛结果进行验证和深化。系统可以沿着“John -> 拥有 -> 宠物”这条路径,直接、精确地找到答案“Tommy”。

最后,系统将两方面结果进行整合、排序,返回最准确、最相关的答案。

记忆设计

实现情景记忆:核心是嵌入模型 + 向量数据库。这正是Mem0的基础,用于存储和检索每一次对话的具体内容。

丰富语义记忆:可以引入图数据库。Mem0的“图记忆”功能正是用于建立实体间的关系网络,这属于语义记忆的高级形式。

固化程序性记忆:这更多地体现在系统架构和提示词(Prompt)设计中。例如,通过预设的提示模板,规定AI在调用某个工具前必须检查用户权限。

整合短期记忆:这是一个动态编排过程。系统需要根据当前对话,从情景、语义记忆中检索相关信息,并结合程序性规则,最终合成一个精准的Prompt提交给大模型。

调用团队内部的组件库。

  1. 结构化你的组件库文档 button.meta.json
  2. 转换为向量数据库实现组件知识的语义化搜索。
  3. 给提示词/指令,通过指令调用。
- name: "使用内部组件库开发"
  description: "根据需求,使用我们内部的@your-org/ui-library组件库生成代码。"
  prompt: >
    你是一个精通VUE和TypeScript的前端专家,专门使用我们团队的内部组件库 @your-org/ui-library 进行开发。
    在开始编写代码前,请务必遵循以下来自该库的组件规范:
    <!-- 这里可以是一个调用本地API服务的动态占位符,获取最新的组件信息 -->
    {{ 通过API调用获取的Button, Form等组件的最新文档 }}
    根据以上规范,为我的需求生成代码。

关键点:

组件库变更频繁

“检索知识 -> 构建Prompt -> 生成代码”流程自动化

更好的文档

机器友好、结构清晰的文档,语义化json

// 假设生成的 component-api.json 结构
{
  "components": [
    {
      "name": "Button",
      "description": "用于触发一个操作的按钮组件。",
      "importStatement": "import { Button } from '@your-org/ui';",
      "props": [
        {
          "name": "type",
          "type": "'primary' | 'secondary' | 'text'",
          "defaultValue": "'primary'",
          "description": "按钮的类型,定义其视觉重要性。"
        },
        {
          "name": "loading",
          "type": "boolean",
          "defaultValue": "false",
          "description": "设置为true时,显示加载图标并禁用按钮。"
        }
      ],
      "usageExample": "<Button type=\"primary\" onClick={handleSubmit}>提交</Button>",
      "documentationLink": "https://your-docs-site.com/components/button"
    }
    // ... 其他组件
  ]
}
自定义指令和上下文注入

预设自定义指令,如:UseInternalUI。

  • 检索:去你的组件知识库,查找 Modal、Form、Button 等组件的最新、最准确的结构化文档。
  • 注入:将这些组件的导入路径、Props定义、最佳实践示例,作为一份清晰的“工作说明书”,悄悄地添加到本次对话的上下文中。

执行:然后,AI模型基于这份“刚拿到手的工作说明书”来理解你的需求并生成代码

  • 自定义RAG API服务> 返回的组件信息格式化>注入系统提示词
  • MCP Server
posted @ 2026-01-04 21:50  MyKai  阅读(26)  评论(0)    收藏  举报