Skip to main content
本页面内容已迁移至 分布式存储 — Redis。以下内容保留作为参考,但建议使用新文档。

Redis 状态存储

agentscope-extensions-redis 把 AgentScope 的 Agent 状态存到 Redis。统一抽象出 RedisClientAdapter,支持 Jedis、Lettuce、Redisson 三个客户端,覆盖 Standalone、Cluster、Sentinel 等部署模式。

添加依赖

模块本身不强制依赖某一客户端,按你项目里实际用的引入即可(Jedis / Lettuce / Redisson)。

快速上手(Lettuce 单机)

三种客户端的接入

Jedis

Lettuce 集群

Redisson

Redisson 还支持 useClusterServers() / useSentinelServers() / useMasterSlaveServers(),配好后照样传给 redissonClient(...)

自定义 key 前缀

默认所有 key 形如 agentscope:session:{userSegment}/{sessionId}:...userSegmentuserId,匿名 session 用 __anon__)。多个项目共享同一个 Redis 时建议自定义:

Key 结构

(userId, sessionId) 二元组会被打包成单一槽位标识 {userSegment}/{sessionId}userSegmentuserIduserId 为 null 时取 __anon__)。 _keys 索引让 delete(userId, sessionId)exists(userId, sessionId) 都只需要常数次 Redis 调用,避免 KEYS *

挂载到 Agent

之后你的 Memory、Workspace、Plan 等组件就会自动通过 Redis 持久化。每次调用读写哪个槽位,由该次调用的 RuntimeContext 决定:

自定义客户端适配

如果你需要接其他 Redis 兼容存储(比如 KeyDB、Tair),可以实现 RedisClientAdapter 然后通过 clientAdapter(...) 注入:

Builder 配置参数

上述客户端方法互斥,只设置一个。