Skip to content

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

ts
const plugin = new ErrorHandlingPlugin({
  strategy: 'circuit-breaker',
  failureThreshold: 5,
  circuitBreakerTimeout: 60000,
});
const result = await plugin.executeWithRetry(() => fetchData());

Hierarchy

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new ErrorHandlingPlugin(options): ErrorHandlingPlugin

Parameters

NameType
optionsIErrorHandlingPluginOptions

Returns

ErrorHandlingPlugin

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

NameType
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

NameType
eventEmitterIEventEmitterPlugin

Returns

Promise<void>

Inherited from

AbstractPlugin.subscribeToModuleEvents

Defined in

agent-core/dist/node/index.d.ts:1064


unsubscribeFromModuleEvents

unsubscribeFromModuleEvents(eventEmitter): Promise<void>

Parameters

NameType
eventEmitterIEventEmitterPlugin

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

NameType
_configIPluginConfig

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

NameType
namestring
versionstring
enabledboolean
initializedboolean
categoryPluginCategory
prioritynumber
subscribedEventsCountnumber
hasEventEmitterboolean

Inherited from

AbstractPlugin.getStatus

Defined in

agent-core/dist/node/index.d.ts:1074


beforeRun

beforeRun(input, options?): Promise<void>

Parameters

NameType
inputstring
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

NameType
inputstring
responsestring
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

NameType
contextIPluginExecutionContext

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeExecution

Defined in

agent-core/dist/node/index.d.ts:1089


afterExecution

afterExecution(context, result): Promise<void>

Parameters

NameType
contextIPluginExecutionContext
resultIPluginExecutionResult

Returns

Promise<void>

Inherited from

AbstractPlugin.afterExecution

Defined in

agent-core/dist/node/index.d.ts:1090


beforeConversation

beforeConversation(context): Promise<void>

Parameters

NameType
contextIPluginExecutionContext

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeConversation

Defined in

agent-core/dist/node/index.d.ts:1091


afterConversation

afterConversation(context, result): Promise<void>

Parameters

NameType
contextIPluginExecutionContext
resultIPluginExecutionResult

Returns

Promise<void>

Inherited from

AbstractPlugin.afterConversation

Defined in

agent-core/dist/node/index.d.ts:1092


beforeToolCall

beforeToolCall(toolName, parameters): Promise<void>

Parameters

NameType
toolNamestring
parametersTToolParameters

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeToolCall

Defined in

agent-core/dist/node/index.d.ts:1093


beforeToolExecution

beforeToolExecution(context, toolData): Promise<void>

Parameters

NameType
contextIPluginExecutionContext
toolDataIToolExecutionContext

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

NameType
toolNamestring
parametersTToolParameters
resultIToolExecutionResult

Returns

Promise<void>

Inherited from

AbstractPlugin.afterToolCall

Defined in

agent-core/dist/node/index.d.ts:1095


afterToolExecution

afterToolExecution(context, toolResults): Promise<void>

Parameters

NameType
contextIPluginExecutionContext
toolResultsIPluginExecutionResult

Returns

Promise<void>

Inherited from

AbstractPlugin.afterToolExecution

Defined in

agent-core/dist/node/index.d.ts:1096


beforeProviderCall

beforeProviderCall(messages): Promise<void>

Parameters

NameType
messagesTUniversalMessage[]

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeProviderCall

Defined in

agent-core/dist/node/index.d.ts:1097


afterProviderCall

afterProviderCall(messages, response): Promise<void>

Parameters

NameType
messagesTUniversalMessage[]
responseTUniversalMessage

Returns

Promise<void>

Inherited from

AbstractPlugin.afterProviderCall

Defined in

agent-core/dist/node/index.d.ts:1098


onStreamingChunk

onStreamingChunk(chunk): Promise<void>

Parameters

NameType
chunkTUniversalMessage

Returns

Promise<void>

Inherited from

AbstractPlugin.onStreamingChunk

Defined in

agent-core/dist/node/index.d.ts:1099


onError

onError(error, context?): Promise<void>

Parameters

NameType
errorError
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

NameType
messageTUniversalMessage

Returns

Promise<void>

Inherited from

AbstractPlugin.onMessageAdded

Defined in

agent-core/dist/node/index.d.ts:1101


onModuleEvent

onModuleEvent(eventName, eventData): Promise<void>

Parameters

NameType
eventNameTEventName
eventDataIEventEmitterEventData

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

NameType
errorError
contextIErrorHandlingContextData

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

NameType
fn() => Promise<T>
contextIErrorHandlingContextData

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

IErrorHandlingPluginStats

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

Released under the MIT License.