Skip to content

Releases: AmritaBot/plugin-memory

V0.1.6

Choose a tag to compare

@JohnRichard4096 JohnRichard4096 released this 14 Jul 13:46

Full Changelog: 0.1.5...0.1.6

V0.1.5

Choose a tag to compare

@JohnRichard4096 JohnRichard4096 released this 14 Jul 09:25

Full Changelog: 0.1.4...0.1.5

V0.1.3

Choose a tag to compare

@JohnRichard4096 JohnRichard4096 released this 14 Jul 08:15

Full Changelog: 0.1.2...0.1.3

V0.1.2

Choose a tag to compare

@JohnRichard4096 JohnRichard4096 released this 14 Jul 06:58

版本发布摘要:amrita_plugin_memory v0.1.2

我们很高兴宣布 amrita_plugin_memory 0.1.2 版本正式发布。本次更新引入了 记忆作用域(scope) 概念,实现了群共享记忆与用户专属记忆的隔离,大幅提升多租户场景下的灵活性和隐私保护能力。


🚀 主要亮点

  • 群/用户记忆隔离 – 所有工具函数新增 scope 参数("group" / "user"),LLM 可明确指定记忆的归属范围:
    • "group":记忆存入群共享空间,群内所有成员可见。
    • "user":记忆存入个人专属空间,仅当前用户可见。
  • 自动分区路由 – 底层根据 scope 自动生成不同的分区键(group_{group_id}session_id),确保数据物理隔离。
  • 私聊保护 – 在私聊场景下尝试使用 scope="group" 时会返回明确的错误提示,避免误用。

✨ 新增功能

  • scope 参数全面覆盖 – 所有五个工具函数(write_memoryread_memoryupdate_memorydelete_memorylist_memory)均要求传入 scope,确保每次操作都明确指定作用域。
  • 元数据记录作用域 – 每条记忆的元数据中新增 scope 字段,便于后续审计和扩展。
  • 列表展示作用域list_memory 返回结果中增加 scope 字段,让用户清晰知道每条记忆的归属。

🔧 改进

  • 参数校验 – 统一的 _resolve_scope_id 函数负责解析 scope 并生成分区键,错误处理更集中、更健壮。
  • 日志增强 – 调试日志中同时输出 scopepartition_id,便于追踪数据流向。
  • 类型安全 – 引入 Scope 类型别名(Literal["group", "user"]),配合静态类型检查减少拼写错误。

🐛 Bug 修复

  • 修复了更新记忆时 scope 可能被错误覆盖的问题,更新操作现在会保留原有 scope,除非显式传入新的 scope(但当前设计不允许修改 scope,保持一致性)。

📚 升级指南

执行以下命令更新插件:

ambot plugin update amrita_plugin_memory

⚠️ 破坏性变更:所有工具函数均新增了必填参数 scope,现有调用(如自定义脚本或外部集成)需要相应调整。建议在更新后检查所有记忆相关调用,确保传入正确的 scope 值。


📝 配置与兼容性

  • 无需额外配置,scope 功能直接可用。
  • 旧版存储的记忆默认被归类为 "user" 作用域,以保证向后兼容(但建议按需迁移)。
  • 依赖项未发生变动,Python 版本仍要求 3.10–3.13。

感谢您的使用与反馈!如有问题,请访问我们的 GitHub 仓库 提交 Issue。

Full Changelog: 0.1.1...0.1.2

V0.1.1

Choose a tag to compare

@JohnRichard4096 JohnRichard4096 released this 14 Jul 05:59

版本发布摘要:amrita_plugin_memory v0.1.1

我们很高兴宣布 amrita_plugin_memory 0.1.1 版本正式发布。本次更新在文档、代码质量和性能方面均有显著提升,同时简化了依赖关系并修复了若干问题。


🚀 主要亮点

  • 文档全面重构 – README 完全重写,新增:
    • 清晰的技术栈表格。
    • 架构概述,逐文件说明。
    • 工具函数详细参数表(含类型、必填项和描述)。
    • 配置文件说明(文件配置与环境变量)。
    • 安装和开发指南。
  • 原子性记忆更新 – 在向量存储中新增 update_note 方法,取代原先“删除后添加”的方式,使用 ChromaDB 原生 update 操作,保证数据一致性,避免编辑时丢失元数据。
  • 依赖精简 – 插件现直接依赖 amrita>=1.3,不再依赖体积较大的 amrita[full],减少无关传递依赖,加快安装速度。

✨ 新增功能

  • AsyncUserMemory.update_note – 支持安全、原子地更新记忆条目,杜绝数据损坏风险。
  • 共享辅助函数 – 在 tools.py 中引入 _get_session_id_make_operator_ok_err,集中通用逻辑,减少重复代码,统一错误响应格式。

🔧 改进

  • 代码质量
    • 使用 typing_extensions@override 装饰器,增强类型检查。
    • 完善 vector.py 中的返回类型注解和重载。
    • AmritaChatObject 替换为新的 AmritaBotContext,更好地与核心框架集成。
  • 错误处理 – 所有工具函数现已包裹 try-except,返回标准化的 JSON 错误响应。
  • 配置 – 修正 embedding_proctol 的字面量值,从 "openai-embed" 改为 "openai",以匹配实际协议名称。
  • 性能 – 记忆数量限制检查现在使用 >= 精确判断,正确执行上限控制。

🐛 Bug 修复

  • 修复了会话记忆数量恰好达到上限时限制未生效的逻辑错误。
  • 增强更新/删除/列表操作的错误信息,当记忆 ID 未找到时给出更明确的提示。

📦 依赖更新

  • amrita-core 升级至 0.12.2
  • 新增 amrita-sense 作为间接依赖(由 amrita-core 引入)。
  • 移除 amrita[full] 额外依赖,改用普通 amrita>=1.3
  • 删除未使用的依赖:aiopgpipstubs 以及间接依赖的 anthropic
  • Python 版本要求仍为 3.10–3.13。

🧹 移除内容

  • OpenAI 嵌入适配器 – 已移除 OpenAIEmbeddingAdapter 类。插件现仅支持 Ollama 嵌入协议(ollama-embed)。如需使用 OpenAI 兼容端点,请改用 Ollama 或自行适配。

📚 升级指南

执行以下命令更新插件:

uv add amrita_plugin_memory --upgrade

更新后,请检查配置(特别是手动设置的 embedding_proctol),并测试新的原子更新行为。

Full Changelog: 0.1.0...0.1.1

V0.1.0-Exp

Choose a tag to compare

@JohnRichard4096 JohnRichard4096 released this 03 May 01:06