AgentChat消息大揭秘:智能体代理间的“悄悄话”与内部“小秘密

262 阅读2分钟

在AutoGen的AgentChat世界里,消息就像是代理们的“社交货币”,让它们能够愉快地交流、传递信息,甚至和应用程序“打情骂俏”。今天,我们就来扒一扒这些消息的“底细”,看看它们是如何在代理之间“飞来飞去”的。

代理间的“悄悄话”:Agent-Agent Messages

首先,AgentChat支持多种消息类型,专门为代理之间的沟通量身定制。这些消息都属于ChatMessage类型,既能传递文字,还能玩转多模态(比如图片+文字)。你可以把它想象成代理们的“微信聊天”,只不过它们聊的内容可能是“Hello, world!”或者“这张图片里有什么?”。

举个例子,如果你想发一条纯文字消息,代码可以这么写:

python

复制

from autogen_agentchat.messages import TextMessage
text_message = TextMessage(content="Hello, world!", source="User")

简单吧?就像发条短信一样轻松。

如果你想玩点高级的,发个带图片的消息,代码也不复杂:

image.png

from io import BytesIO
import requests
from autogen_agentchat.messages import MultiModalMessage
from autogen_core import Image as AGImage
from PIL import Image

pil_image = Image.open(BytesIO(requests.get("https://picsum.photos/300/200").content))
img = AGImage(pil_image)
multi_modal_message = MultiModalMessage(content=["Can you describe the content of this image?", img], source="User")

瞧,代理们不仅能聊文字,还能“看图说话”!

代理的“内心戏”:Internal Events

除了代理之间的“公开聊天”,AgentChat还支持代理内部的“私密消息”,也就是所谓的“事件”。这些事件就像是代理的“内心戏”,用来记录它们内部的行动和状态。比如,ToolCallRequestEvent表示代理请求调用某个工具,而ToolCallExecutionEvent则记录了工具调用的结果。

这些事件通常由代理自己生成,藏在Responseinner_messages字段里。如果你在打造一个自定义代理,并且想让其他实体(比如UI)知道这些“小秘密”,可以把它们塞进inner_messages里。

总结:消息是代理的“社交神器”

无论是代理之间的“公开聊天”,还是代理内部的“私密消息”,消息在AgentChat中都扮演着至关重要的角色。它们让代理们能够高效沟通、协同工作,甚至还能“自娱自乐”。如果你想深入了解这些消息的更多细节,不妨去messages模块里一探究竟!

所以,下次当你看到代理们在“聊天”时,别忘了它们背后可是有一套复杂的“社交规则”在支撑着呢!