AS AgentScopeAPI 手册 / API Reference

RedisAgentStateStore

public class RedisAgentStateStore implements AgentStateStore
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:178–565

Redis 智能体状态存储,负责持久化与读取数据。位于 io.agentscope.extensions.redis.state 包,实现 AgentStateStore。核心成员包括 builder、supportsVersioning、save、getVersioned、saveIfVersion、get。

Redis-based session implementation supporting multiple Redis clients.

This implementation provides a unified interface for Redis-based session storage, supporting multiple Redis client implementations:

  • Jedis - Standalone, Cluster, Sentinel

  • Lettuce - Standalone, Cluster, Sentinel

  • Redisson - Standalone, Cluster, Sentinel, Master/Slave

The session state is stored in Redis with following key structure:

  • Single state: {prefix}{sessionId}:{stateKey} - Redis String containing JSON

  • List state: {prefix}{sessionId}:{stateKey}:list - Redis List containing JSON items

  • List hash: {prefix}{sessionId}:{stateKey}:list:_hash - Hash for change detection

  • AgentStateStore marker: {prefix}{sessionId}:_keys - Redis Set tracking all state keys

Jedis Usage Examples:

Jedis Standalone (using RedisClient):

`// Create Jedis RedisClient (new API)
RedisClient redisClient = RedisClient.create("redis://localhost:6379");

// Build RedisAgentStateStore
AgentStateStore stateStore = RedisAgentStateStore.builder()
.jedisClient(redisClient)
.build();
`

Jedis Cluster (using RedisClusterClient):

`// Create Jedis RedisClusterClient
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("localhost", 7000));
nodes.add(new HostAndPort("localhost", 7001));
nodes.add(new HostAndPort("localhost", 7002));
RedisClusterClient redisClusterClient = RedisClusterClient.create(nodes);

// Build RedisAgentStateStore
AgentStateStore stateStore = RedisAgentStateStore.builder()
.jedisClient(redisClusterClient)
.build();
`

Jedis Sentinel (using RedisSentinelClient):

`// Create Jedis RedisSentinelClient
Set<String> sentinelNodes = new HashSet<>();
sentinelNodes.add("localhost:26379");
sentinelNodes.add("localhost:26380");
RedisSentinelClient redisSentinelClient = RedisSentinelClient.create("mymaster", sentinelNodes);

// Build RedisAgentStateStore
AgentStateStore stateStore = RedisAgentStateStore.builder()
.jedisClient(redisSentinelClient)
.build();
`

Lettuce Usage Examples:

Lettuce Standalone:

`// Create Lettuce RedisClient
RedisClient redisClient = RedisClient.create("redis://localhost:6379");

// Build RedisAgentStateStore
AgentStateStore stateStore = RedisAgentStateStore.builder()
.lettuceClient(redisClient)
.build();
`

Lettuce Cluster:

`// Create Lettuce RedisClusterClient for cluster mode
RedisClusterClient clusterClient = RedisClusterClient.create(
RedisURI.create("localhost", 7000));

// Build RedisAgentStateStore
AgentStateStore stateStore = RedisAgentStateStore.builder()
.lettuceClusterClient(clusterClient)
.build();
`

Lettuce Sentinel:

`// Create Lettuce RedisClient for sentinel
RedisURI sentinelUri = RedisURI.builder()
.withSentinelMasterId("mymaster")
.withSentinel("localhost", 26379)
.withSentinel("localhost", 26380)
.build();
RedisClient redisClient = RedisClient.create(sentinelUri);

// Build RedisAgentStateStore
AgentStateStore stateStore = RedisAgentStateStore.builder()
.lettuceClient(redisClient)
.build();
`

Redisson Usage Example:

`// Create RedissonClient (configure as needed for your deployment mode)
Config config = new Config();
config.useSingleServer().setAddress("redis://localhost:6379");
// or for cluster: config.useClusterServers().addNodeAddress("redis://localhost:7000");
// or for sentinel: config.useSentinelServers().setMasterName("mymaster").addSentinelAddress("redis://localhost:26379");

RedissonClient redissonClient = Redisson.create(config);

// Build RedisAgentStateStore
AgentStateStore stateStore = RedisAgentStateStore.builder()
.redissonClient(redissonClient)
.build();
`

Custom Key Prefix Example:

`// Create Redis client
RedisClient redisClient = RedisClient.create("redis://localhost:6379");

// Build RedisAgentStateStore with custom key prefix
AgentStateStore stateStore = RedisAgentStateStore.builder()
.jedisClient(redisClient)
.keyPrefix("myapp:session:")
.build();
`

嵌套类摘要Nested Class Summary

类Class类型Kind说明Description
Builder类class
`RedisAgentStateStore`的构建器。
Builder for `RedisAgentStateStore`.

方法摘要Method Summary

方法Method说明Description
public static Builder builder()
static
创建新的构建器用于`RedisAgentStateStore`。
Creates a new builder for `RedisAgentStateStore`.
public boolean supportsVersioning()
返回 `supportsVersioning` 结果。
Returns the supports versioning.
public void save(String userId, String sessionId, String key, State value)
保存数据到持久化存储。
Performs the save operation.
public T extends State VersionedState<T> getVersioned(String userId, String sessionId, String key, Class<T> type)
获取 `getVersioned`。
Returns the versioned.
public long saveIfVersion(String userId, String sessionId, String key, State value, long expectedVersion)
保存If 版本。
Saves the if version.
public void save(String userId, String sessionId, String key, List<? extends State> values)
保存数据到持久化存储。
Performs the save operation.
public T extends State Optional<T> get(String userId, String sessionId, String key, Class<T> type)
按条件读取数据。
Performs the get operation.
public T extends State List<T> getList(String userId, String sessionId, String key, Class<T> itemType)
获取列表。
Returns the list.
public boolean exists(String userId, String sessionId)
判断数据是否存在。
Performs the exists operation.
public void delete(String userId, String sessionId)
删除数据。
Performs the delete operation.
public Set<String> listSessionIds(String userId)
列出 `listSessionIds`。
Lists the session ids.
public void close()
关闭连接并释放相关资源。
Releases resources and connections.
public Mono<Integer> clearAllSessions()
清空所有会话。
Clear all sessions stored in Redis (for testing or cleanup).

方法详情Method Detail

builder

public static Builder builder()
static

创建新的构建器用于RedisAgentStateStore。

Creates a new builder for RedisAgentStateStore.

返回Returns Builder
一种新的构建器实例。a new Builder instance
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:208–210

supportsVersioning

public boolean supportsVersioning()

返回 supportsVersioning 结果。

Returns the supports versioning.

返回Returns boolean
返回布尔值,表示判断结果。Returns a boolean result.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:212–215

save

public void save(String userId, String sessionId, String key, State value)

保存数据到持久化存储。

Performs the save operation.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
keyString键(类型 `String`)。The key.
valueState值(类型 `State`)。The value.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:217–220

getVersioned

public T extends State VersionedState<T> getVersioned(String userId, String sessionId, String key, Class<T> type)

获取 getVersioned。

Returns the versioned.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
keyString键(类型 `String`)。The key.
typeClass<T>类型(类型 `Class`)。The type.
返回Returns VersionedState<T>
返回VersionedState。Returns versioned state.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:251–267

saveIfVersion

public long saveIfVersion(String userId, String sessionId, String key, State value, long expectedVersion)

保存If 版本。

Saves the if version.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
keyString键(类型 `String`)。The key.
valueState值(类型 `State`)。The value.
expectedVersionlongexpected 版本(类型 `long`)。The expected version.
返回Returns long
返回数值结果。Returns a numeric result.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:269–293

save

public void save(String userId, String sessionId, String key, List<? extends State> values)

保存数据到持久化存储。

Performs the save operation.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
keyString键(类型 `String`)。The key.
valuesList<? extends State>值(类型 `List`)。The values.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:295–334

get

public T extends State Optional<T> get(String userId, String sessionId, String key, Class<T> type)

按条件读取数据。

Performs the get operation.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
keyString键(类型 `String`)。The key.
typeClass<T>类型(类型 `Class`)。The type.
返回Returns Optional<T>
返回可选。Returns optional.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:336–350

getList

public T extends State List<T> getList(String userId, String sessionId, String key, Class<T> itemType)

获取列表。

Returns the list.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
keyString键(类型 `String`)。The key.
itemTypeClass<T>条目类型(类型 `Class`)。The item type.
返回Returns List<T>
返回列出。Returns list.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:352–371

exists

public boolean exists(String userId, String sessionId)

判断数据是否存在。

Performs the exists operation.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
返回Returns boolean
返回布尔值,表示判断结果。Returns a boolean result.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:373–382

delete

public void delete(String userId, String sessionId)

删除数据。

Performs the delete operation.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:384–415

listSessionIds

public Set<String> listSessionIds(String userId)

列出 listSessionIds。

Lists the session ids.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
返回Returns Set<String>
返回设置。Returns set.
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:417–436

close

public void close()

关闭连接并释放相关资源。

Releases resources and connections.

源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:453–456

clearAllSessions

public Mono<Integer> clearAllSessions()

清空所有会话。

Clear all sessions stored in Redis (for testing or cleanup).

返回Returns Mono<Integer>
返回Mono。Mono that completes with the number of deleted session keys
源码Source io/agentscope/extensions/redis/state/RedisAgentStateStore.java:463–477

嵌套类详情Nested Class Detail

Builder

public static class Builder

RedisAgentStateStore的构建器。位于 io.agentscope.extensions.redis.state 包。核心成员包括 keyPrefix、jedisClient、lettuceClient、lettuceClusterClient、redissonClient、clientAdapter。

Builder for RedisAgentStateStore.

The builder supports multiple Redis client types. Only one client type should be set.

Supported client types:

  • Jedis: #jedisClient(UnifiedJedis)

  • Lettuce Standalone/Sentinel: #lettuceClient(RedisClient)

  • Lettuce Cluster: #lettuceClusterClient(RedisClusterClient)

  • Redisson: #redissonClient(RedissonClient)

  • Custom: #clientAdapter(RedisClientAdapter)

继承成员Inherited Members

继承自Members inherited from AgentStateStore
基于官方固定版本源码静态生成Generated from pinned official sources · Python 2.0.11 · Java 2.0.4
签名与文档为静态抽取;如有疑问请以源码为准。Signatures and docs are extracted statically; verify against the source when in doubt.