Skip to content

save_memory - 保存长期记忆

概述

save_memory 工具用于保存特定的信息或事实到长期记忆中。这个工具帮助 AI 助手记住用户的偏好、习惯和重要信息,以便在未来的交互中提供更个性化和有效的帮助。

工具名称

  • 内部名称: save_memory
  • 显示名称: Save Memory
  • 图标: 大脑 (Brain)

参数

必需参数

参数名类型说明
factstring要记住的具体事实或信息。应该是一个清晰、独立的陈述。例如,如果用户说"我最喜欢的颜色是蓝色",事实就是"我最喜欢的颜色是蓝色"。

功能说明

  1. 长期记忆存储

    • 保存用户相关的事实和偏好
    • 跨会话持久化
    • 可在未来交互中检索
  2. 个性化支持

    • 记住用户偏好
    • 记住常用配置
    • 记住工作习惯
  3. 智能记忆

    • 自动识别重要信息
    • 避免重复记忆
    • 保持记忆的相关性

使用场景

应该使用此工具的情况

  1. 用户明确要求记住某事

    • "记住我喜欢在披萨上放菠萝"
    • "请保存这个:我的猫叫 Whiskers"
  2. 用户陈述清晰、简洁的个人事实

    • 关于自己的信息
    • 偏好设置
    • 环境配置
    • 对未来交互有帮助的信息

不应该使用此工具的情况

  1. 仅与当前会话相关的上下文
  2. 冗长、复杂或漫无边际的文本
  3. 不确定是否值得长期记住的信息

使用示例

记住用户偏好

json
{
  "fact": "用户喜欢使用 TypeScript 而不是 JavaScript"
}

记住个人信息

json
{
  "fact": "用户的名字是张三,今年 25 岁"
}

记住工作习惯

json
{
  "fact": "用户习惯使用 Vim 编辑器,偏好使用快捷键"
}

记住项目配置

json
{
  "fact": "用户的主项目路径是 /home/user/projects/main-app"
}

记住代码风格偏好

json
{
  "fact": "用户偏好使用单引号而不是双引号,缩进使用 2 个空格"
}

记住工具别名

json
{
  "fact": "用户使用 'gco' 作为 'git checkout' 的别名"
}

返回结果

工具返回一个包含以下字段的对象:

  • llmContent: 确认信息
  • returnDisplay: 用户友好的显示信息
  • summary: 操作摘要

示例输出

✓ 已保存到长期记忆:用户喜欢使用 TypeScript 而不是 JavaScript

最佳实践

  1. 保持事实简洁明了

    • ✅ "用户偏好使用 React 框架"
    • ❌ "用户说他们在过去的几年里一直在使用各种前端框架,但最近发现 React 特别好用..."
  2. 使用完整的陈述

    • ✅ "用户的主要编程语言是 Python"
    • ❌ "Python"
  3. 包含上下文

    • ✅ "用户在项目 X 中使用 PostgreSQL 数据库"
    • ❌ "PostgreSQL"
  4. 避免临时信息

    • ✅ "用户偏好的代码审查工具是 GitHub"
    • ❌ "用户正在审查 PR #123"
  5. 确认不确定的情况

    • 如果不确定是否应该记住,可以询问用户:"我应该记住这个吗?"

记忆类型示例

个人信息

  • 姓名、年龄、职业
  • 所在地、时区
  • 联系方式偏好

技术偏好

  • 编程语言偏好
  • 框架和库选择
  • 工具和编辑器
  • 代码风格

工作习惯

  • 工作时间
  • 项目组织方式
  • 文档习惯
  • 测试偏好

项目信息

  • 常用项目路径
  • 项目结构偏好
  • 部署流程
  • 团队约定

学习偏好

  • 学习风格
  • 文档偏好
  • 示例类型偏好

隐私和安全

  1. 敏感信息

    • 不要保存密码、API 密钥等敏感信息
    • 不要保存个人身份信息(除非用户明确要求)
  2. 数据存储

    • 记忆存储在本地
    • 遵守用户隐私设置
    • 可以随时删除
  3. 数据使用

    • 仅用于改善用户体验
    • 不会与第三方共享
    • 仅在相关上下文中使用

记忆管理

查看记忆

用户可以查看已保存的记忆(具体命令取决于实现)。

更新记忆

保存新的事实会更新或补充现有记忆。

删除记忆

用户可以要求删除特定记忆或清除所有记忆。

与项目特定信息的区别

  • save_memory: 用于用户相关的个人信息和偏好
  • SII.md 文件: 用于项目特定的上下文和配置

使用 save_memory

用户偏好使用 Vim 编辑器
用户的名字是张三
用户习惯使用 TDD 开发方式

使用 SII.md

项目使用 React + TypeScript
API 端点:https://api.example.com
测试命令:npm test

注意事项

  1. 选择性记忆:不是所有信息都需要记住
  2. 清晰表述:确保事实表述清晰、完整
  3. 相关性:只记住对未来交互有帮助的信息
  4. 隐私意识:避免记住过于敏感的信息
  5. 用户控制:尊重用户对记忆的管理需求

错误处理

可能的错误情况:

  1. 参数错误

    • fact 参数为空
    • fact 参数过长
    • fact 参数格式不正确
  2. 存储错误

    • 存储空间不足
    • 权限问题
    • 文件系统错误

相关功能

  • 项目上下文: 使用 SII.md 文件存储项目特定信息
  • 会话上下文: 当前对话中的临时信息
  • 配置文件: 工具和系统配置

示例对话

场景 1:用户明确要求

用户: "记住我喜欢使用 Tailwind CSS"

助手: 使用 save_memory 工具

json
{
  "fact": "用户喜欢使用 Tailwind CSS"
}

输出: "✓ 已记住:用户喜欢使用 Tailwind CSS"

场景 2:识别重要偏好

用户: "我总是使用 pnpm 而不是 npm"

助手: 使用 save_memory 工具

json
{
  "fact": "用户偏好使用 pnpm 包管理器而不是 npm"
}

场景 3:不确定时询问

用户: "我今天在处理登录功能"

助手: "这是当前任务的信息。您希望我记住您通常负责登录功能的开发吗?"

总结

save_memory 工具是实现个性化 AI 助手体验的关键功能。通过明智地使用这个工具,可以让 AI 助手更好地理解用户的偏好和习惯,从而提供更贴心、更高效的帮助。

记住:只保存真正重要且对未来交互有帮助的信息,并始终尊重用户的隐私和控制权。

Released under the MIT License.