必需的先决条件
- 我已在 Issue Tracker 和 Discussions 中搜索过,但这还没有被报告。(如果有的话,请在那里评论。)
- 请先在 Discussion 中提问。
动机
从 FIPA 和 XMPP 等标准中学习,重构 Message
以使其更具可扩展性,以便适用于多代理通信。
解决方案
对代理的要求:
当代理收到他们无法识别或无法处理消息内容的消息时,应发送“不明白”。代理必须准备好接收并正确处理来自其他代理的“不明白”消息。
message
属性:
- :message-id
此消息的唯一标识符
- :type
消息的类型
- :sender
表示消息发送者的标识符,即通信行为的主体名称。{角色名,角色类型}
- :receiver
表示消息预期接收者的标识符。注意,收件人可能是一个代理名称的单个元组,或者是一个代理名称的元组。这对应于将消息广播到元组中的所有代理的行为。从实际应用的Angular 来看,这种广播的语义是向元组中的每个代理发送消息,并且发送者希望每个代理都成为消息编码在其中的消息的 CA 的接收者。例如,如果代理执行一个带有三个代理作为接收者的告知行为,那么它表示发送者希望这些代理都相信消息的内容。
- :subject
此消息的主题
- :content
表示消息内容;等同于表示操作的对象。{文本,图像,音频,视频,工具调用(tools,args,results)}
msg1 “content”, msg2 “content”
多用途互联网邮件扩展(MIME)
- :reply-with
引入一个表达式,该表达式将由对此消息做出响应的代理用于识别原始消息。可以在同时发生多个对话的情况下使用此功能来跟踪对话线程。例如,如果代理 i 向代理 j 发送了一条包含以下内容的消息:
:reply-with query1,
代理 j 将回复一条包含以下内容的消息:
:in-reply-to query1.
- :in-reply-to
[message1,message2] → 内存
表示引用此消息之前的一个操作的表达式。
- :envelope
{时间发送:xx,时间接收:xx}
表示作为消息传输服务所见的消息信息的有用信息。此参数的内容未在规范中定义,但可能包括发送时间、接收时间、路线等。此参数的结构是一个关键字值对列表,其中每个都表示消息服务的某些方面。
- :language
表示内容的操作的编码方案。
- :ontology
表示用于给内容表达式中的符号赋予意义的本体。
- :reply-by
表示指示发送代理希望收到回复的最晚时间和/或日期的表达式。
- :protocol
{模式:多用途互联网邮件扩展(MIME)}
引入一个标识符,该标识符表示发送代理正在使用的协议。协议为解释消息提供了额外的上下文。
- :conversation-id / thread-id
uuid
引入一个表达式,用于标识组成对话的一系列连续的交流行为。代理可以使用对话来管理其通信策略和活动。此外,对话还可以提供解释消息含义的其他上下文。
1条答案
按热度按时间yv5phkfx1#
add openai message ref:
https://github.com/openai/openai-python/blob/af8f606b3eef1af99f98929847f1b5baf19171ae/src/openai/types/beta/threads/message.py