AS AgentScopeAPI 手册 / API Reference

MongoAgentStateStore

public class MongoAgentStateStore implements AgentStateStore, AutoCloseable
源码Source io/agentscope/extensions/mongodb/state/MongoAgentStateStore.java:100–730

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

MongoDB-backed implementation of AgentStateStore.

Each session is stored as a single MongoDB document with a compound _id of {user, session} to prevent cross-tenant key collisions. State keys are stored inside a states sub-document (via dot notation, e.g. states.foo), keeping them isolated from reserved top-level fields such as _id, user_id, session_id, and _updated_at. Per-key versions live in a versions sub-document and list-content hashes in a hashes sub-document.

Supports optimistic concurrency via the versions.<key> field. List state uses ListHashUtil for change detection to avoid unnecessary full rewrites. The list element count is obtained server-side via $size aggregation to avoid transferring the full array just to call .size().

Usage:

`MongoAgentStateStore store = MongoAgentStateStore.builder()
.connectionString("mongodb://localhost:27017")
.databaseName("agentscope")
.collectionName("sessions")
.build();
`

Key constraints

  • State key character set: keys passed to #save / #get must match ^[a-zA-Z_][a-zA-Z0-9_]*$ — no dots, dollar signs, or Unicode. Values inside Map<String, Object> fields are automatically escaped by MongoKeyEscaper and have no character restrictions.

  • Snapshots use GridFS: sandbox workspace snapshots are stored in GridFS (up to 16 GB per file), not as single BSON documents. The legacy 16 MB BSON limit no longer applies.

  • Session TTL is off by default: sessions are retained indefinitely, aligned with Postgres/JDBC/Redis. To enable automatic expiry, pass MongoAgentStateStore.builder().ttlDays(n) with a positive integer. The TTL index is sparse — only documents with a non-null _updated_at field expire.

嵌套类摘要Nested Class Summary

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

方法摘要Method Summary

方法Method说明Description
public static Builder builder()
static
返回构建器实例。
Returns the builder.
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 Optional<T> get(String userId, String sessionId, String key, Class<T> type)
按条件读取数据。
Performs the get operation.
public void save(String userId, String sessionId, String key, List<? extends State> values)
保存数据到持久化存储。
Saves a list of state values with incremental-append optimization.
public T extends State List<T> getList(String userId, String sessionId, String key, Class<T> itemType)
获取列表。
Returns the list.
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 boolean exists(String userId, String sessionId)
判断数据是否存在。
Performs the exists operation.
public void delete(String userId, String sessionId)
删除数据。
Performs the delete operation.
public void delete(String userId, String sessionId, String key)
删除数据。
Performs the delete operation.
public Set<String> listSessionIds(String userId)
列出 `listSessionIds`。
Lists the session ids.
public void close()
关闭连接并释放相关资源。
Releases resources and connections.

方法详情Method Detail

builder

public static Builder builder()
static

返回构建器实例。

Returns the builder.

返回Returns Builder
返回当前实例,以支持链式调用。Returns the current instance for chaining.
源码Source io/agentscope/extensions/mongodb/state/MongoAgentStateStore.java:155–157

supportsVersioning

public boolean supportsVersioning()

返回 supportsVersioning 结果。

Returns the supports versioning.

返回Returns boolean
返回布尔值,表示判断结果。Returns a boolean result.
源码Source io/agentscope/extensions/mongodb/state/MongoAgentStateStore.java:159–162

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/mongodb/state/MongoAgentStateStore.java:185–202

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/mongodb/state/MongoAgentStateStore.java:204–223

save

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

保存数据到持久化存储。

Saves a list of state values with incremental-append optimization.

参数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/mongodb/state/MongoAgentStateStore.java:242–327

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/mongodb/state/MongoAgentStateStore.java:329–356

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/mongodb/state/MongoAgentStateStore.java:360–383

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/mongodb/state/MongoAgentStateStore.java:385–494

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/mongodb/state/MongoAgentStateStore.java:498–503

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/mongodb/state/MongoAgentStateStore.java:505–520

delete

public void delete(String userId, String sessionId, String key)

删除数据。

Performs the delete operation.

参数Parameters
名称Name类型Type说明Description
userIdString用户标识(类型 `String`)。The user id.
sessionIdString会话标识(类型 `String`)。The session id.
keyString键(类型 `String`)。The key.
源码Source io/agentscope/extensions/mongodb/state/MongoAgentStateStore.java:522–533

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/mongodb/state/MongoAgentStateStore.java:535–546

close

public void close()

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

Releases resources and connections.

源码Source io/agentscope/extensions/mongodb/state/MongoAgentStateStore.java:550–555

嵌套类详情Nested Class Detail

Builder

public static class Builder

MongoAgentStateStore的构建器。位于 io.agentscope.extensions.mongodb.state 包。核心成员包括 mongoClient、connectionString、databaseName、collectionName、ttlDays、onDeleteCallback。

Builder for MongoAgentStateStore.

继承成员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.