微信扫码
添加专属顾问
我要投稿
对于多智能体框架来说,其中最重要的组件之一就是消息模块,这是多智能体间交互的通道。像LangGraph的State,MetaGPT的Environment、Message等,都是实现多智能体间消息传递的重要组件。本文我们来学习一下AgentScope框架中的消息模块。
MessageBase消息基类的初始化函数如下:
class MessageBase(dict):
def __init__(
self,
name:str,
content:Any,
role:Literal["user","system","assistant"]="assistant",
url:Optional[Union[Sequence[str],str]]=None,
timestamp:Optional[str]=None,
**kwargs:Any,
) -> None:
......其中几个主要参数:
• name:消息的发送者(产生者)
• content:消息的文本内容
• url:可以指向文件的直接链接、多模态数据或网页,例如我们在这篇文章中详细讨论的多模态消息:x = Msg(name="user", content="图片里有什么?", role="user", url=["xxx/微信图片_20240405184354.jpg"])
Msg前面我们也都用过了Msg这个类,这是多智能体实现中必不可少的一部分。但之前都没有仔细地看过其实现,下面来看下。
消息类继承自 MessageBase,并实现了 to_str 和 serialize 抽象方法。 在一个Agent类中,其reply函数通常会返回一个Msg类的实例,以便在AgentScope中进行消息的传递(这一点我们之前的文章中多次提到过了,例如这篇文章,下图)。
Msg源码如下:
class Msg(MessageBase):
def__init__(
self,
name:str,
content:Any,
role:Literal["system","user","assistant"]=None,
url:Optional[Union[Sequence[str],str]]=None,
timestamp:Optional[str]=None,
echo:bool=False,
metadata:Optional[Union[dict,str]]=None,
**kwargs:Any,
)->None:
super().__init__(
name=name,
content=content,
role=role or"assistant",
url=url,
timestamp=timestamp,
metadata=metadata,
**kwargs,
)
if echo:
logger.chat(self)
defto_str(self)->str:
"""Return the string representation of the message"""
returnf"{self.name}: {self.content}"
defserialize(self)->str:
return json.dumps({"__type":"Msg",**self})AgentScope中除了封装了Msg这个最通用的消息类之外,还封装了一些其它的消息类型,如 Tht、PlaceholderMessage 等。
Tht 代表的是该Agent的思考过程。结构类似如下:
{
"role": "assistant",
"name": "thought",
"content": "I should ..."
},Agent 思考的过程应该只存在于该Agent内部,不传递给其它Agent。
在实际使用过程中,可能需要类似这样的特殊定制化消息类型,可以仿照这种消息进行定义,继承MessageBase基类,实现相关函数即可。
本文比较简单,主要带大家看了下AgentScope中消息模块的实现。最重要的三个参数:name、content、url。这个模块提供的是消息的管理能力。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-03-21
编程选GPT-5.4,还是GPT-5.3-Codex?
2026-03-21
AI Coding前端实践后的复盘总结
2026-03-21
OpenAI 首席科学家:Codex 只是雏形,我们要造的是「全自动 AI 研究员」
2026-03-21
谷歌Stitch「氛围设计」干崩Figma 8.8%股价:十年经验,败给巨头一次更新(附实测)
2026-03-21
为什么 CLI 比 MCP 更适合 LLM
2026-03-21
渐进式披露(Progressive Disclosure):Agent 从 Demo 到企业级落地的 “救命架构”
2026-03-21
AI 编程工具怎么选?Codex 和 Claude Code 的本质区别
2026-03-21
Karpathy 最新播客:我得了 AI 精神病、App 将消失、Agent 将碾压实验室
2026-01-24
2026-01-10
2026-01-01
2026-01-26
2026-01-09
2026-01-09
2026-01-23
2025-12-30
2026-01-14
2026-01-21
2026-03-21
2026-03-20
2026-03-19
2026-03-19
2026-03-19
2026-03-18
2026-03-17
2026-03-17