#2634·agentscope

存储层: 添加一个持久化功能在三个文件中花费相同的模板代码

作者: DavdGao创建于 2026年9月15日更新于 2026年9月16日

**两个后端必须通过手动保持同步。**没有任何东西强制要求 `RedisStorage` 和 `AsyncSQLAlchemyStorage` 就新方法的语义达成一致。合法的差异(Redis 无法对从 JSON 数据中导出的值进行索引,因此在读取后进行过滤)与会导致错误的差异并排存在,只有测试套件才能将它们区分开来。**跨实体的删除是真正的逻辑所在,而且它们被隐藏起来。**有 5 个级联实现(`_delete_session_impl`、`_delete_schedule_impl`、`_delete_agent_impl`、`_delete_team_impl`、`_delete_sop_run_impl`)被引用了 23 处。这些实现承载了真实的规则 — 团队删除它创建的成员,但不删除它借用的成员;删除代理会删除其会话和计划。它们在框架中很难找到,而且缺失的一个实现会保持沉默:SOP 工作中发布了一个运行删除,其会话被留下,这是通过审查而不是结构性方法发现的。**审查存储更改意味着阅读三个文件来了解一个事实。**意图在 `_base.py` 中,而其是否有效则在另外两个 2000 多行的文件中。**路由器接口随着其增长。**每个被保存的实体都带有自己的 CRUD 路由器和模式,`_router/` 现在有 17 个模块。一个部署即使不使用某个特定功能,也仍然携带其端点、表和 `StorageBase` 的一部分。

内容来源: agentscope-ai/agentscope