agent-plugin-error-handling / Exports / ErrorHandlingPlugin
Class: ErrorHandlingPlugin
Provides configurable error recovery using one of four strategies: simple logging, circuit breaker, exponential backoff, or silent.
The circuit breaker opens after failureThreshold consecutive failures and automatically resets after circuitBreakerTimeout ms. An optional custom error handler can be injected for application-specific recovery logic.
See
- IErrorHandlingPluginOptions - configuration options
- IErrorHandlingContextData - error context contract
Example
const plugin = new ErrorHandlingPlugin({
strategy: 'circuit-breaker',
failureThreshold: 5,
circuitBreakerTimeout: 60000,
});
const result = await plugin.executeWithRetry(() => fetchData());Hierarchy
AbstractPlugin<IErrorHandlingPluginOptions,IErrorHandlingPluginStats>↳
ErrorHandlingPlugin
Table of contents
Constructors
Properties
Methods
- initialize
- subscribeToModuleEvents
- unsubscribeFromModuleEvents
- dispose
- enable
- disable
- isEnabled
- getConfig
- updateConfig
- getData
- clearData
- getStatus
- beforeRun
- afterRun
- beforeExecution
- afterExecution
- beforeConversation
- afterConversation
- beforeToolCall
- beforeToolExecution
- afterToolCall
- afterToolExecution
- beforeProviderCall
- afterProviderCall
- onStreamingChunk
- onError
- onMessageAdded
- onModuleEvent
- handleError
- executeWithRetry
- resetCircuitBreaker
- getStats
- destroy
Constructors
constructor
• new ErrorHandlingPlugin(options): ErrorHandlingPlugin
Parameters
| Name | Type |
|---|---|
options | IErrorHandlingPluginOptions |
Returns
Overrides
AbstractPlugin< IErrorHandlingPluginOptions, IErrorHandlingPluginStats >.constructor
Defined in
agent-plugin-error-handling/src/error-handling-plugin.ts:64
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 = 'ErrorHandlingPlugin'
Overrides
AbstractPlugin.name
Defined in
agent-plugin-error-handling/src/error-handling-plugin.ts:53
version
• version: string = '1.0.0'
Overrides
AbstractPlugin.version
Defined in
agent-plugin-error-handling/src/error-handling-plugin.ts:54
Methods
initialize
▸ initialize(options?): Promise<void>
Parameters
| Name | Type |
|---|---|
options? | IErrorHandlingPluginOptions |
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
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
handleError
▸ handleError(error, context?): Promise<void>
Dispatches the error to the active strategy handler. If a custom error handler is configured, it takes precedence over strategy-specific handling.
Parameters
| Name | Type |
|---|---|
error | Error |
context | IErrorHandlingContextData |
Returns
Promise<void>
Defined in
agent-plugin-error-handling/src/error-handling-plugin.ts:99
executeWithRetry
▸ executeWithRetry<T>(fn, context?): Promise<T>
Executes a function with automatic retries up to maxRetries. The delay between retries follows the configured strategy (fixed for simple / circuit-breaker, doubling for exponential-backoff).
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type |
|---|---|
fn | () => Promise<T> |
context | IErrorHandlingContextData |
Returns
Promise<T>
Throws
PluginError after all retry attempts are exhausted
Defined in
agent-plugin-error-handling/src/error-handling-plugin.ts:145
resetCircuitBreaker
▸ resetCircuitBreaker(): void
Resets the circuit breaker to closed state, clearing failure count and last failure timestamp.
Returns
void
Defined in
agent-plugin-error-handling/src/error-handling-plugin.ts:210
getStats
▸ getStats(): IErrorHandlingPluginStats
Get error handling statistics
Returns
Overrides
AbstractPlugin.getStats
Defined in
agent-plugin-error-handling/src/error-handling-plugin.ts:220
destroy
▸ destroy(): Promise<void>
Cleanup resources
Returns
Promise<void>
Defined in
agent-plugin-error-handling/src/error-handling-plugin.ts:235