agentchat.contrib.capabilities.transform_messages
TransformMessages(消息转换)
class TransformMessages()
在生成回复之前,用于转换消息的Agent能力。
该能力允许您对ConversableAgent的传入消息应用一系列的消息转换,然后再进行响应生成的处理。这对于以下任务非常有用:
- 限制用于上下文考虑的消息数量。
- 截断消息以满足令牌限制。
- 过滤敏感信息。
- 自定义消息格式。
使用TransformMessages
:
- 创建消息转换(例如,
MessageHistoryLimiter
,MessageTokenLimiter
)。 - 使用这些转换实例化
TransformMessages
。 - 使用
add_to_agent
将TransformMessages
实例添加到您的ConversableAgent
中。
注意:消息转换的顺序很重要。根据转换的顺序,可能会得到不同的结果。
示例:
```python
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)
```
__init__
def __init__(*, transforms: List[MessageTransform] = [], verbose: bool = True)
参数:
transforms
- 要应用的消息转换列表。verbose
- 是否打印每个转换的日志。
add_to_agent
def add_to_agent(agent: ConversableAgent)
将消息转换能力添加到指定的ConversableAgent中。
此函数对代理进行以下修改:
- 注册一个钩子,在处理响应生成之前自动转换所有消息。