agent-plugin-conversation-history / Exports / ConversationHistoryPlugin
Class: ConversationHistoryPlugin
Persists conversation history using configurable storage backends.
Supports memory, file, and database storage strategies. Messages are automatically trimmed to maxMessagesPerConversation. When autoSave is disabled, changes are batched and flushed on a timer.
See
- IHistoryStorage - storage backend contract
- IConversationHistoryPluginOptions - configuration options
Example
const plugin = new ConversationHistoryPlugin({
storage: 'memory',
maxMessagesPerConversation: 500,
});
await plugin.startConversation('conv-1');
await plugin.addMessage({ role: 'user', content: 'Hello' });Hierarchy
AbstractPlugin<IConversationHistoryPluginOptions,IConversationHistoryPluginStats>↳
ConversationHistoryPlugin
Table of contents
Constructors
Properties
Methods
- initialize
- subscribeToModuleEvents
- unsubscribeFromModuleEvents
- dispose
- enable
- disable
- isEnabled
- getConfig
- updateConfig
- getData
- clearData
- getStatus
- getStats
- beforeRun
- afterRun
- beforeExecution
- afterExecution
- beforeConversation
- afterConversation
- beforeToolCall
- beforeToolExecution
- afterToolCall
- afterToolExecution
- beforeProviderCall
- afterProviderCall
- onStreamingChunk
- onError
- onMessageAdded
- onModuleEvent
- startConversation
- addMessage
- loadConversation
- getHistory
- listConversations
- deleteConversation
- clearAllConversations
- savePending
- destroy
Constructors
constructor
• new ConversationHistoryPlugin(options): ConversationHistoryPlugin
Parameters
| Name | Type |
|---|---|
options | IConversationHistoryPluginOptions |
Returns
Overrides
AbstractPlugin< IConversationHistoryPluginOptions, IConversationHistoryPluginStats >.constructor
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:62
Properties
enabled
• enabled: boolean
Inherited from
AbstractPlugin.enabled
Defined in
agent-core/dist/node/index.d.ts:1049
category
• category: PluginCategory
Inherited from
AbstractPlugin.category
Defined in
agent-core/dist/node/index.d.ts:1050
priority
• priority: number
Inherited from
AbstractPlugin.priority
Defined in
agent-core/dist/node/index.d.ts:1051
name
• name: string = 'ConversationHistoryPlugin'
Overrides
AbstractPlugin.name
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:52
version
• version: string = '1.0.0'
Overrides
AbstractPlugin.version
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:53
Methods
initialize
▸ initialize(options?): Promise<void>
Parameters
| Name | Type |
|---|---|
options? | IConversationHistoryPluginOptions |
Returns
Promise<void>
Inherited from
AbstractPlugin.initialize
Defined in
agent-core/dist/node/index.d.ts:1063
subscribeToModuleEvents
▸ subscribeToModuleEvents(eventEmitter): Promise<void>
Parameters
| Name | Type |
|---|---|
eventEmitter | IEventEmitterPlugin |
Returns
Promise<void>
Inherited from
AbstractPlugin.subscribeToModuleEvents
Defined in
agent-core/dist/node/index.d.ts:1064
unsubscribeFromModuleEvents
▸ unsubscribeFromModuleEvents(eventEmitter): Promise<void>
Parameters
| Name | Type |
|---|---|
eventEmitter | IEventEmitterPlugin |
Returns
Promise<void>
Inherited from
AbstractPlugin.unsubscribeFromModuleEvents
Defined in
agent-core/dist/node/index.d.ts:1065
dispose
▸ dispose(): Promise<void>
Returns
Promise<void>
Inherited from
AbstractPlugin.dispose
Defined in
agent-core/dist/node/index.d.ts:1066
enable
▸ enable(): void
Returns
void
Inherited from
AbstractPlugin.enable
Defined in
agent-core/dist/node/index.d.ts:1067
disable
▸ disable(): void
Returns
void
Inherited from
AbstractPlugin.disable
Defined in
agent-core/dist/node/index.d.ts:1068
isEnabled
▸ isEnabled(): boolean
Returns
boolean
Inherited from
AbstractPlugin.isEnabled
Defined in
agent-core/dist/node/index.d.ts:1069
getConfig
▸ getConfig(): IPluginConfig
Returns
IPluginConfig
Inherited from
AbstractPlugin.getConfig
Defined in
agent-core/dist/node/index.d.ts:1070
updateConfig
▸ updateConfig(_config): void
Parameters
| Name | Type |
|---|---|
_config | IPluginConfig |
Returns
void
Inherited from
AbstractPlugin.updateConfig
Defined in
agent-core/dist/node/index.d.ts:1071
getData
▸ getData(): IPluginData
Returns
IPluginData
Inherited from
AbstractPlugin.getData
Defined in
agent-core/dist/node/index.d.ts:1072
clearData
▸ clearData(): void
Returns
void
Inherited from
AbstractPlugin.clearData
Defined in
agent-core/dist/node/index.d.ts:1073
getStatus
▸ getStatus(): Object
Returns
Object
| Name | Type |
|---|---|
name | string |
version | string |
enabled | boolean |
initialized | boolean |
category | PluginCategory |
priority | number |
subscribedEventsCount | number |
hasEventEmitter | boolean |
Inherited from
AbstractPlugin.getStatus
Defined in
agent-core/dist/node/index.d.ts:1074
getStats
▸ getStats(): IConversationHistoryPluginStats
Returns
IConversationHistoryPluginStats
Inherited from
AbstractPlugin.getStats
Defined in
agent-core/dist/node/index.d.ts:1084
beforeRun
▸ beforeRun(input, options?): Promise<void>
Parameters
| Name | Type |
|---|---|
input | string |
options? | IRunOptions |
Returns
Promise<void>
Inherited from
AbstractPlugin.beforeRun
Defined in
agent-core/dist/node/index.d.ts:1087
afterRun
▸ afterRun(input, response, options?): Promise<void>
Parameters
| Name | Type |
|---|---|
input | string |
response | string |
options? | IRunOptions |
Returns
Promise<void>
Inherited from
AbstractPlugin.afterRun
Defined in
agent-core/dist/node/index.d.ts:1088
beforeExecution
▸ beforeExecution(context): Promise<void>
Parameters
| Name | Type |
|---|---|
context | IPluginExecutionContext |
Returns
Promise<void>
Inherited from
AbstractPlugin.beforeExecution
Defined in
agent-core/dist/node/index.d.ts:1089
afterExecution
▸ afterExecution(context, result): Promise<void>
Parameters
| Name | Type |
|---|---|
context | IPluginExecutionContext |
result | IPluginExecutionResult |
Returns
Promise<void>
Inherited from
AbstractPlugin.afterExecution
Defined in
agent-core/dist/node/index.d.ts:1090
beforeConversation
▸ beforeConversation(context): Promise<void>
Parameters
| Name | Type |
|---|---|
context | IPluginExecutionContext |
Returns
Promise<void>
Inherited from
AbstractPlugin.beforeConversation
Defined in
agent-core/dist/node/index.d.ts:1091
afterConversation
▸ afterConversation(context, result): Promise<void>
Parameters
| Name | Type |
|---|---|
context | IPluginExecutionContext |
result | IPluginExecutionResult |
Returns
Promise<void>
Inherited from
AbstractPlugin.afterConversation
Defined in
agent-core/dist/node/index.d.ts:1092
beforeToolCall
▸ beforeToolCall(toolName, parameters): Promise<void>
Parameters
| Name | Type |
|---|---|
toolName | string |
parameters | TToolParameters |
Returns
Promise<void>
Inherited from
AbstractPlugin.beforeToolCall
Defined in
agent-core/dist/node/index.d.ts:1093
beforeToolExecution
▸ beforeToolExecution(context, toolData): Promise<void>
Parameters
| Name | Type |
|---|---|
context | IPluginExecutionContext |
toolData | IToolExecutionContext |
Returns
Promise<void>
Inherited from
AbstractPlugin.beforeToolExecution
Defined in
agent-core/dist/node/index.d.ts:1094
afterToolCall
▸ afterToolCall(toolName, parameters, result): Promise<void>
Parameters
| Name | Type |
|---|---|
toolName | string |
parameters | TToolParameters |
result | IToolExecutionResult |
Returns
Promise<void>
Inherited from
AbstractPlugin.afterToolCall
Defined in
agent-core/dist/node/index.d.ts:1095
afterToolExecution
▸ afterToolExecution(context, toolResults): Promise<void>
Parameters
| Name | Type |
|---|---|
context | IPluginExecutionContext |
toolResults | IPluginExecutionResult |
Returns
Promise<void>
Inherited from
AbstractPlugin.afterToolExecution
Defined in
agent-core/dist/node/index.d.ts:1096
beforeProviderCall
▸ beforeProviderCall(messages): Promise<void>
Parameters
| Name | Type |
|---|---|
messages | TUniversalMessage[] |
Returns
Promise<void>
Inherited from
AbstractPlugin.beforeProviderCall
Defined in
agent-core/dist/node/index.d.ts:1097
afterProviderCall
▸ afterProviderCall(messages, response): Promise<void>
Parameters
| Name | Type |
|---|---|
messages | TUniversalMessage[] |
response | TUniversalMessage |
Returns
Promise<void>
Inherited from
AbstractPlugin.afterProviderCall
Defined in
agent-core/dist/node/index.d.ts:1098
onStreamingChunk
▸ onStreamingChunk(chunk): Promise<void>
Parameters
| Name | Type |
|---|---|
chunk | TUniversalMessage |
Returns
Promise<void>
Inherited from
AbstractPlugin.onStreamingChunk
Defined in
agent-core/dist/node/index.d.ts:1099
onError
▸ onError(error, context?): Promise<void>
Parameters
| Name | Type |
|---|---|
error | Error |
context? | IPluginErrorContext |
Returns
Promise<void>
Inherited from
AbstractPlugin.onError
Defined in
agent-core/dist/node/index.d.ts:1100
onMessageAdded
▸ onMessageAdded(message): Promise<void>
Parameters
| Name | Type |
|---|---|
message | TUniversalMessage |
Returns
Promise<void>
Inherited from
AbstractPlugin.onMessageAdded
Defined in
agent-core/dist/node/index.d.ts:1101
onModuleEvent
▸ onModuleEvent(eventName, eventData): Promise<void>
Parameters
| Name | Type |
|---|---|
eventName | TEventName |
eventData | IEventEmitterEventData |
Returns
Promise<void>
Inherited from
AbstractPlugin.onModuleEvent
Defined in
agent-core/dist/node/index.d.ts:1102
startConversation
▸ startConversation(conversationId): Promise<void>
Creates a new conversation entry and persists it (or queues for batch save).
Parameters
| Name | Type |
|---|---|
conversationId | string |
Returns
Promise<void>
Throws
PluginError if the storage write fails
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:109
addMessage
▸ addMessage(message): Promise<void>
Appends a message to the active conversation, trimming to the maximum message limit if exceeded.
Parameters
| Name | Type |
|---|---|
message | TUniversalMessage |
Returns
Promise<void>
Throws
PluginError if no conversation is active or the storage write fails
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:141
loadConversation
▸ loadConversation(conversationId): Promise<undefined | IConversationHistoryEntry>
Load conversation history
Parameters
| Name | Type |
|---|---|
conversationId | string |
Returns
Promise<undefined | IConversationHistoryEntry>
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:184
getHistory
▸ getHistory(conversationId): Promise<TUniversalMessage[]>
Get conversation history as messages
Parameters
| Name | Type |
|---|---|
conversationId | string |
Returns
Promise<TUniversalMessage[]>
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:204
listConversations
▸ listConversations(): Promise<string[]>
List all conversation IDs
Returns
Promise<string[]>
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:212
deleteConversation
▸ deleteConversation(conversationId): Promise<boolean>
Delete a conversation
Parameters
| Name | Type |
|---|---|
conversationId | string |
Returns
Promise<boolean>
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:225
clearAllConversations
▸ clearAllConversations(): Promise<void>
Clear all conversations
Returns
Promise<void>
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:242
savePending
▸ savePending(): Promise<void>
Persists all conversations queued since the last save (batch mode only). Individual save failures are logged but do not abort the remaining saves.
Returns
Promise<void>
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:258
destroy
▸ destroy(): Promise<void>
Stops the batch-save timer and flushes any pending conversation saves.
Returns
Promise<void>
Defined in
agent-plugin-conversation-history/src/conversation-history-plugin.ts:283