Skip to content

@egain/ai-agent-sdk API Reference - v0.3.2 / BaseMessageHandler

Class: BaseMessageHandler ​

Base class for message handlers.

All custom message handlers must extend this class and implement the canHandle and handle methods.

Example

typescript
class LoggingHandler extends BaseMessageHandler {
  canHandle(message: Message): boolean {
    return true;  // Handle all messages
  }

  handle(message: Message): MessageHandlerResult {
    console.log(`[${message.persona}] ${message.content}`);
    return {
      type: 'logged',
      message,
      timestamp: Date.now()
    };
  }
}

Example

typescript
class AsyncHandler extends BaseMessageHandler {
  canHandle(message: Message): boolean {
    return message.role === 'needs_processing';
  }

  async handle(message: Message): Promise<MessageHandlerResult> {
    const result = await processExternally(message);
    return {
      type: 'processed',
      message,
      data: result,
      timestamp: Date.now()
    };
  }
}

Example

typescript
class SentimentHandler extends BaseMessageHandler {
  canHandle(message: Message): boolean {
    // Only handle agent messages with content
    return message.persona === 'agent' && !!message.content;
  }

  handle(message: Message): MessageHandlerResult {
    const sentiment = analyzeSentiment(message.content);
    return {
      type: 'sentiment_analyzed',
      message,
      sentiment,
      timestamp: Date.now()
    };
  }
}

Hierarchy ​

Table of contents ​

Constructors ​

Methods ​

Constructors ​

constructor ​

• new BaseMessageHandler(): BaseMessageHandler

Returns ​

BaseMessageHandler

Methods ​

canHandle ​

▸ canHandle(message): boolean

Check if this handler can process the given message.

This method is called for each incoming message. Return true if this handler should process the message, false otherwise.

Parameters ​

NameTypeDescription
messageMessageThe incoming message to check

Returns ​

boolean

true if this handler can process the message

Example

typescript
canHandle(message: Message): boolean {
  // Handle only customer messages
  return message.persona === 'customer';
}

Defined in ​

core/message/BaseMessageHandler.ts:175


handle ​

▸ handle(message): MessageHandlerResult | Promise<MessageHandlerResult>

Process the message.

Called when canHandle returns true. Implement your message processing logic here. Can be synchronous or asynchronous.

Parameters ​

NameTypeDescription
messageMessageThe message to process

Returns ​

MessageHandlerResult | Promise<MessageHandlerResult>

Handler result or Promise resolving to result

Example

typescript
handle(message: Message): MessageHandlerResult {
  return {
    type: 'processed',
    message,
    timestamp: Date.now()
  };
}

Example

typescript
async handle(message: Message): Promise<MessageHandlerResult> {
  await saveToDatabase(message);
  return {
    type: 'saved',
    message,
    timestamp: Date.now()
  };
}

Defined in ​

core/message/BaseMessageHandler.ts:209

Released under the MIT License.