TransformMessages

TransformMessages(
    *,
    transforms: list[autogen.agentchat.contrib.capabilities.transforms.MessageTransform] = [],
    verbose: bool = True
)

Agent capability for transforming messages before reply generation.

This capability allows you to apply a series of message transformations to a ConversableAgent’s incoming messages before they are processed for response generation. This is useful for tasks such as:

  • Limiting the number of messages considered for context.
  • Truncating messages to meet token limits.
  • Filtering sensitive information.
  • Customizing message formatting.

To use TransformMessages:

  1. Create message transformations (e.g., MessageHistoryLimiter, MessageTokenLimiter).
  2. Instantiate TransformMessages with a list of these transformations.
  3. Add the TransformMessages instance to your ConversableAgent using add_to_agent.

NOTE: Order of message transformations is important. You could get different results based on the order of transformations.

Example:

from agentchat import ConversableAgent
from agentchat.contrib.capabilities import TransformMessages, MessageHistoryLimiter, MessageTokenLimiter

max_messages = MessageHistoryLimiter(max_messages=2)
truncate_messages = MessageTokenLimiter(max_tokens=500)
transform_messages = TransformMessages(transforms=[max_messages, truncate_messages])

agent = ConversableAgent(...)
transform_messages.add_to_agent(agent)
Parameters:
NameDescription
transformsA list of message transformations to apply.

Type: list[autogen.agentchat.contrib.capabilities.transforms.MessageTransform]

Default: []
verboseWhether to print logs of each transformation or not.

Type: bool

Default: True

Instance Methods

add_to_agent

add_to_agent(self, agent: autogen.agentchat.conversable_agent.ConversableAgent) -> 

Adds the message transformations capability to the specified ConversableAgent.

This function performs the following modifications to the agent:

  1. Registers a hook that automatically transforms all messages before they are processed for response generation.
Parameters:
NameDescription
agentType: autogen.agentchat.conversable_agent.ConversableAgent