mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
* Rename AgentThread to AgentSession * Add more renames * Update readme files * Revert nullable variable change and further fixes. * Revert change in header name * Fix some comments and tests * Update changelog. * Address PR feedback. * Fixing code review comments. * Fix new errors after merging latest code.
47 lines
2.0 KiB
C#
47 lines
2.0 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Microsoft.Agents.AI.Hosting;
|
|
|
|
/// <summary>
|
|
/// Defines the contract for storing and retrieving agent conversation threads.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Implementations of this interface enable persistent storage of conversation threads,
|
|
/// allowing conversations to be resumed across HTTP requests, application restarts,
|
|
/// or different service instances in hosted scenarios.
|
|
/// </remarks>
|
|
public abstract class AgentSessionStore
|
|
{
|
|
/// <summary>
|
|
/// Saves a serialized agent session to persistent storage.
|
|
/// </summary>
|
|
/// <param name="agent">The agent that owns this session.</param>
|
|
/// <param name="conversationId">The unique identifier for the conversation/session.</param>
|
|
/// <param name="session">The session to save.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests.</param>
|
|
/// <returns>A task that represents the asynchronous save operation.</returns>
|
|
public abstract ValueTask SaveSessionAsync(
|
|
AIAgent agent,
|
|
string conversationId,
|
|
AgentSession session,
|
|
CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Retrieves a serialized agent session from persistent storage.
|
|
/// </summary>
|
|
/// <param name="agent">The agent that owns this session.</param>
|
|
/// <param name="conversationId">The unique identifier for the conversation/session to retrieve.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests.</param>
|
|
/// <returns>
|
|
/// A task that represents the asynchronous retrieval operation.
|
|
/// The task result contains the serialized session state, or <see langword="null"/> if not found.
|
|
/// </returns>
|
|
public abstract ValueTask<AgentSession> GetSessionAsync(
|
|
AIAgent agent,
|
|
string conversationId,
|
|
CancellationToken cancellationToken = default);
|
|
}
|