AS AgentScopeAPI 手册 / API Reference

MysqlSession

public class MysqlSession implements Session
源码Source io/agentscope/core/session/mysql/MysqlSession.java:70–846

MySQL 会话,在多次调用之间保存和恢复会话与记忆数据。位于 io.agentscope.core.session.mysql 包,实现 Session。核心成员包括 save、get、getList、exists、delete、listSessionKeys。

MySQL database-based session implementation.

This implementation stores session state in MySQL database tables with the following structure:

  • Single state: stored as JSON with item_index = 0

  • List state: each item stored in a separate row with item_index = 0, 1, 2, ...

Table Schema (auto-created if createIfNotExist=true):


CREATE TABLE IF NOT EXISTS agentscope_sessions (
session_id VARCHAR(255) NOT NULL,
state_key VARCHAR(255) NOT NULL,
item_index INT NOT NULL DEFAULT 0,
state_data LONGTEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (session_id, state_key, item_index)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Features:

  • True incremental list storage (only INSERTs new items, no read-modify-write)

  • Type-safe state serialization using Jackson

  • Automatic table creation

  • SQL injection prevention through parameterized queries

构造器摘要Constructor Summary

构造器Constructor说明Description
public MysqlSession(DataSource dataSource)
创建MysqlSession 使用默认设置。
Create a MysqlSession with default settings.
public MysqlSession(DataSource dataSource, boolean createIfNotExist)
初始化 `MysqlSession` 实例。
Create a MysqlSession with optional auto-creation of database and table.
public MysqlSession(DataSource dataSource, String databaseName, String tableName, boolean createIfNotExist)
初始化 `MysqlSession` 实例。
Create a MysqlSession with custom database name, table name, and optional auto-creation.

方法摘要Method Summary

方法Method说明Description
public void save(SessionKey sessionKey, String key, State value)
保存数据到持久化存储。
Performs the save operation.
public void save(SessionKey sessionKey, String key, List<? extends State> values)
保存数据到持久化存储。
Save a list of state values with hash-based change detection.
public T extends State Optional<T> get(SessionKey sessionKey, String key, Class<T> type)
按条件读取数据。
Performs the get operation.
public T extends State List<T> getList(SessionKey sessionKey, String key, Class<T> itemType)
获取列表。
Returns the list.
public boolean exists(SessionKey sessionKey)
判断数据是否存在。
Performs the exists operation.
public void delete(SessionKey sessionKey)
删除数据。
Performs the delete operation.
public Set<SessionKey> listSessionKeys()
列出会话密钥。
Lists the session keys.
public void close()
关闭连接并释放相关资源。
Close the session and release any resources.
public String getDatabaseName()
获取数据库名称。
Get the database name used for storing sessions.
public String getTableName()
获取 `getTableName`。
Get the table name used for storing sessions.
public DataSource getDataSource()
获取数据来源。
Get the DataSource used for database connections.
public int clearAllSessions()
deprecated
清空所有会话。
Clear all sessions from the database (for testing or cleanup).
public int truncateAllSessions()
返回 `truncateAllSessions` 结果。
Truncate session table from the database (for testing or cleanup).
protected void validateSessionId(String sessionId)
校验会话标识。
Validate a session ID format.

构造器详情Constructor Detail

MysqlSession

public MysqlSession(DataSource dataSource)

创建MysqlSession 使用默认设置。

Create a MysqlSession with default settings.

参数Parameters
名称Name类型Type说明Description
dataSourceDataSource数据来源(类型 `DataSource`)。DataSource for database connections
抛出Throws
  • IllegalArgumentException 可能抛出 `IllegalArgumentException`。if dataSource is null
  • IllegalStateException 可能抛出 `IllegalStateException`。if database or table does not exist
源码Source io/agentscope/core/session/mysql/MysqlSession.java:112–114

MysqlSession

public MysqlSession(DataSource dataSource, boolean createIfNotExist)

初始化 MysqlSession 实例。

Create a MysqlSession with optional auto-creation of database and table.

参数Parameters
名称Name类型Type说明Description
dataSourceDataSource数据来源(类型 `DataSource`)。DataSource for database connections
createIfNotExistboolean创建 If 不 Exist(类型 `boolean`)。If true, auto-create database and table; if false, require existing
抛出Throws
  • IllegalArgumentException 可能抛出 `IllegalArgumentException`。if dataSource is null
  • IllegalStateException 可能抛出 `IllegalStateException`。if createIfNotExist is false and database/table does not exist
源码Source io/agentscope/core/session/mysql/MysqlSession.java:129–131

MysqlSession

public MysqlSession(DataSource dataSource, String databaseName, String tableName, boolean createIfNotExist)

初始化 MysqlSession 实例。

Create a MysqlSession with custom database name, table name, and optional auto-creation.

参数Parameters
名称Name类型Type说明Description
dataSourceDataSource数据来源(类型 `DataSource`)。DataSource for database connections
databaseNameString数据库名称(类型 `String`)。Custom database name (uses default if null or empty)
tableNameStringtable 名称(类型 `String`)。Custom table name (uses default if null or empty)
createIfNotExistboolean创建 If 不 Exist(类型 `boolean`)。If true, auto-create database and table; if false, require existing
抛出Throws
  • IllegalArgumentException 可能抛出 `IllegalArgumentException`。if dataSource is null
  • IllegalStateException 可能抛出 `IllegalStateException`。if createIfNotExist is false and database/table does not exist
源码Source io/agentscope/core/session/mysql/MysqlSession.java:147–179

方法详情Method Detail

save

public void save(SessionKey sessionKey, String key, State value)

保存数据到持久化存储。

Performs the save operation.

参数Parameters
名称Name类型Type说明Description
sessionKeySessionKey会话键(类型 `SessionKey`)。The session key.
keyString键(类型 `String`)。The key.
valueState值(类型 `State`)。The value.
源码Source io/agentscope/core/session/mysql/MysqlSession.java:325–356

save

public void save(SessionKey sessionKey, String key, List<? extends State> values)

保存数据到持久化存储。

Save a list of state values with hash-based change detection.

参数Parameters
名称Name类型Type说明Description
sessionKeySessionKey会话键(类型 `SessionKey`)。the session identifier
keyString键(类型 `String`)。the state key (e.g., "memory_messages")
valuesList<? extends State>状态值到保存的列出。the list of state values to save
源码Source io/agentscope/core/session/mysql/MysqlSession.java:374–418

get

public T extends State Optional<T> get(SessionKey sessionKey, String key, Class<T> type)

按条件读取数据。

Performs the get operation.

参数Parameters
名称Name类型Type说明Description
sessionKeySessionKey会话键(类型 `SessionKey`)。The session key.
keyString键(类型 `String`)。The key.
typeClass<T>类型(类型 `Class`)。The type.
返回Returns Optional<T>
返回可选。Returns optional.
源码Source io/agentscope/core/session/mysql/MysqlSession.java:571–600

getList

public T extends State List<T> getList(SessionKey sessionKey, String key, Class<T> itemType)

获取列表。

Returns the list.

参数Parameters
名称Name类型Type说明Description
sessionKeySessionKey会话键(类型 `SessionKey`)。The session key.
keyString键(类型 `String`)。The key.
itemTypeClass<T>条目类型(类型 `Class`)。The item type.
返回Returns List<T>
返回列出。Returns list.
源码Source io/agentscope/core/session/mysql/MysqlSession.java:602–632

exists

public boolean exists(SessionKey sessionKey)

判断数据是否存在。

Performs the exists operation.

参数Parameters
名称Name类型Type说明Description
sessionKeySessionKey会话键(类型 `SessionKey`)。The session key.
返回Returns boolean
返回布尔值,表示判断结果。Returns a boolean result.
源码Source io/agentscope/core/session/mysql/MysqlSession.java:634–652

delete

public void delete(SessionKey sessionKey)

删除数据。

Performs the delete operation.

参数Parameters
名称Name类型Type说明Description
sessionKeySessionKey会话键(类型 `SessionKey`)。The session key.
源码Source io/agentscope/core/session/mysql/MysqlSession.java:654–673

listSessionKeys

public Set<SessionKey> listSessionKeys()

列出会话密钥。

Lists the session keys.

返回Returns Set<SessionKey>
返回设置。Returns set.
源码Source io/agentscope/core/session/mysql/MysqlSession.java:675–693

close

public void close()

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

Close the session and release any resources.

源码Source io/agentscope/core/session/mysql/MysqlSession.java:701–704

getDatabaseName

public String getDatabaseName()

获取数据库名称。

Get the database name used for storing sessions.

返回Returns String
数据库名称。The database name
源码Source io/agentscope/core/session/mysql/MysqlSession.java:711–713

getTableName

public String getTableName()

获取 getTableName。

Get the table name used for storing sessions.

返回Returns String
返回字符串结果。The table name
源码Source io/agentscope/core/session/mysql/MysqlSession.java:720–722

getDataSource

public DataSource getDataSource()

获取数据来源。

Get the DataSource used for database connections.

返回Returns DataSource
DataSource 实例。The DataSource instance
源码Source io/agentscope/core/session/mysql/MysqlSession.java:729–731

clearAllSessions

public int clearAllSessions()
deprecated

清空所有会话。

Clear all sessions from the database (for testing or cleanup).

已弃用。Deprecated. 已弃用,请改用受支持的替代 API。Use `#truncateAllSessions()` instead
返回Returns int
返回数值结果。Number of rows deleted
源码Source io/agentscope/core/session/mysql/MysqlSession.java:739–756

truncateAllSessions

public int truncateAllSessions()

返回 truncateAllSessions 结果。

Truncate session table from the database (for testing or cleanup).

返回Returns int
返回数值结果。typically 0 if successful
源码Source io/agentscope/core/session/mysql/MysqlSession.java:774–783

validateSessionId

protected void validateSessionId(String sessionId)

校验会话标识。

Validate a session ID format.

参数Parameters
名称Name类型Type说明Description
sessionIdString会话标识(类型 `String`)。Session ID to validate
抛出Throws
  • IllegalArgumentException 当if 会话标识是无效时抛出 `IllegalArgumentException`。if session ID is invalid
源码Source io/agentscope/core/session/mysql/MysqlSession.java:791–801

继承成员Inherited Members

继承自Methods inherited from Session
基于官方固定版本源码静态生成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.