[RFC] 043 - SessionStore 拆分 AgentStore #2199
arvinxx
started this conversation in
RFC | 特性开发
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
背景
最近在做 #1851 的实现,发现采用标准的后端数据库后,之前的一些实现就显得很不标准,因此在这里记录下其中一个改造设计: SessionStore -> AgentStore。
在之前的实现过程中,一个 Session 就等于 一个 Agent,它的类型定义如下:
其中 config 字段记录了这个 agent 的配置参数,直接存到前端 db 中。因此在之前的实现中,只需要拉到 sessionList 就可以拿到每个助手的 config,而变更 config 也需要修改 config 后重新拉取 list 。这会造成两个问题:
chat/mobile
就是一个独立的chat 页面,在上述模式下要实现 config 的修改,仍然需要在这个页面拉取 sessionList ,这是不必要的开销,也不优雅。 🐛 fix: fix switch model don't work on mobile #541此外,结合社区中一些面向未来的需求 #1043 , session 与 config 的 1:1 关系也不再适用。因此有必要做一次较大的重构。
设计思路
session.config
已经完成了它承载 agent 配置的历史使命,接下来应该是 agent 的独立发展模式。准备将useSessionStore
中的 agent slice,单独拆分一个useAgentStore
出来,后续对 agent 的配置、管理,都将放在这个 store 中实现。这会为未来 agent editor / group chat / workflow 做好数据结构上的铺垫。同时 session 和 agent 的关系将会变成多对多的关系,即一个 session 中可以只有一个 agent ,一个 session 中也可以有多个 agent, 一个 agent 也可以参与多个 session。这样一来在数据结构上就可以支持群聊。
关于 session 和 agent 的数据表结构设计,后续在 #1851 中记录。
进展
Beta Was this translation helpful? Give feedback.
All reactions