结构体

  • iOS

更新时间不可用

ChatMessage

Swift
@objc public protocol ChatMessage {
    var messageType: ChatMessageType { get }
}

定义不同类型聊天消息的通用接口。

成员参数

参数数据类型描述
messageTypeChatMessageType消息类型。详见 ChatMessageType。
表格内容超出当前宽度,可横向滚动查看更多列。

ImageMessage

Swift
@objc public class ImageMessage: NSObject, ChatMessage {
@objc public let messageType: ChatMessageType = .image
@objc public let uuid: String
@objc public let url: String?
}

用于向智能体发送图像内容的消息。

图片采用 URL 形式,即指向图像文件的 HTTP/HTTPS 链接(推荐用于大图)。使用示例:ImageMessage(uuid = "img_123", url = "https://example.com/image.jpg")。

成员参数

参数数据类型描述
messageTypeChatMessageType消息类型。详见 ChatMessageType。
uuidString图像消息的唯一标识符,代理将使用该 uuid 来识别图像。
urlString?指向图像文件的 HTTP/HTTPS 链接,代理将使用该链接下载并识别图像。
表格内容超出当前宽度,可横向滚动查看更多列。

MessageReceipt

Swift
@objc public class MessageReceipt: NSObject {
    @objc public let moduleType: ModuleType
    @objc public let messageType: ChatMessageType
    @objc public let message: String
    @objc public let turnId: Int
}

用于追踪消息处理状态和元数据的 MessageReceipt 模型。

包含模块类型、消息类型、图像信息和会话轮次 ID。

成员参数

参数数据类型描述
moduleTypeModuleType模块类型。详见 ModuleType。
messageTypeChatMessageType消息类型。详见 ChatMessageType。
messageString图像信息。
turnIdInt会话轮次 ID,用于标识特定的会话轮次。
表格内容超出当前宽度,可横向滚动查看更多列。

MessageError

Swift
@objc public class MessageError: NSObject {
@objc public let type: ChatMessageType
@objc public let code: Int
@objc public let message: String
@objc public let timestamp: TimeInterval
@objc public init(type: ChatMessageType, code: Int, message: String, timestamp: TimeInterval)
}

处理和上报消息错误信息的数据类。

包含错误类型、错误码、错误描述和时间戳。

成员参数

参数数据类型描述
typeChatMessageType消息错误类型。详见 ChatMessageType。
codeInt用于标识特定错误条件的错误码。
messageString错误描述信息,提供详细错误说明,通常为包含资源信息的 JSON 字符串。
timestampTimeInterval错误发生的时间戳(自 1970 年 1 月 1 日 UTC 起的毫秒数)。
表格内容超出当前宽度,可横向滚动查看更多列。

UserManualEventPayload

Swift
@objc public class UserManualEventPayload: NSObject {
    @objc public let success: Bool
    @objc public let requestId: String
    @objc public let turnId: Int
    @objc public let errorMessage: String?
}

手动 SoS/EoS 通用载荷。

成员参数

参数数据类型描述
successBool服务端是否成功处理本次手动信令。
requestIdString请求 ID,与调用 manualSOS 或 manualEOS 后在 completion 中返回的 requestId 对应。
turnIdInt关联的对话轮次 ID。若服务端失败回调未携带 turn_id,该字段可能为空或无有效值。
errorMessageString?服务端返回的原始错误信息。成功时通常为 nil。
表格内容超出当前宽度,可横向滚动查看更多列。

UserManualSosEvent

Swift
@objc public class UserManualSosEvent: NSObject {
    @objc public let eventId: String
    @objc public let timestamp: TimeInterval
    @objc public let payload: UserManualEventPayload
}

手动 SoS 事件对象。

成员参数

参数数据类型描述
eventIdString事件唯一 ID。
timestampTimeInterval事件时间戳,单位为毫秒。
payloadUserManualEventPayload事件载荷。详见 UserManualEventPayload。
表格内容超出当前宽度,可横向滚动查看更多列。

UserManualEosEvent

Swift
@objc public class UserManualEosEvent: NSObject {
    @objc public let eventId: String
    @objc public let timestamp: TimeInterval
    @objc public let payload: UserManualEventPayload
}

手动 EoS 事件对象。

成员参数

参数数据类型描述
eventIdString事件唯一 ID。
timestampTimeInterval事件时间戳,单位为毫秒。
payloadUserManualEventPayload事件载荷。详见 UserManualEventPayload。
表格内容超出当前宽度,可横向滚动查看更多列。

AgentManualEosPayload

Swift
@objc public class AgentManualEosPayload: NSObject {
    @objc public let reason: String
    @objc public let maxDurationMs: Int
    @objc public let turnId: Int
}

服务端超限自动 EoS 载荷。

成员参数

参数数据类型描述
reasonString服务端自动结束当前用户发言的原因。
maxDurationMsInt当前配置的单轮最大音频时长,单位为毫秒。
turnIdInt关联的对话轮次 ID。
表格内容超出当前宽度,可横向滚动查看更多列。

AgentManualEosEvent

Swift
@objc public class AgentManualEosEvent: NSObject {
    @objc public let eventId: String
    @objc public let timestamp: TimeInterval
    @objc public let payload: AgentManualEosPayload
}

服务端超限自动 EoS 事件对象。

成员参数

参数数据类型描述
eventIdString事件唯一 ID。
timestampTimeInterval事件时间戳,单位为毫秒。
payloadAgentManualEosPayload事件载荷。详见 AgentManualEosPayload。
表格内容超出当前宽度,可横向滚动查看更多列。

TextMessage

Swift
@objc public class TextMessage: NSObject, ChatMessage {
    @objc public let messageType: ChatMessageType = .text
    @objc public let priority: Priority
    @objc public let responseInterruptable: Bool
    @objc public let text: String?
}

用于向 智能体代理发送自然语言文本内容的 TextMessage 对象。

支持优先级控制和响应可中断设置,实现对 AI 如何处理和响应文本输入的精细化控制。

成员参数

参数数据类型描述
messageTypeChatMessageType消息类型。详见 ChatMessageType。
priorityPriority消息处理优先级,详见 Priority。
responseInterruptableBool

该消息的响应是否可以被更高优先级的消息中断:

  • YES:(默认)响应可被更高优先级的消息中断。
  • NO:响应不可被中断。
textString?消息的文本内容。
表格内容超出当前宽度,可横向滚动查看更多列。

SpeakMessage

Swift
@objc public final class SpeakMessage: NSObject {
    @objc public let text: String
    @objc public let priority: Priority
    @objc public let interruptable: Bool
}

用于绕过大模型,直接通过智能体的 TTS 流程播报文本。

成员参数

参数数据类型描述
textString要播报的文本。
priorityPriority播报请求的处理优先级,默认值为 .interrupt。详见 Priority。
interruptableBool是否允许用户说话打断本次播报,默认值为 true。
表格内容超出当前宽度,可横向滚动查看更多列。

ThinkMessage

Swift
@objc public final class ThinkMessage: NSObject {
    @objc public let text: String
    @objc public let onListeningAction: ThinkListeningAction
    @objc public let onThinkingAction: ThinkThinkingAction
    @objc public let onSpeakingAction: ThinkSpeakingAction
    @objc public let interruptable: Bool
    @objc public let metadata: [String: String]?
}

用于将文本作为用户输入注入对话,并交由大模型处理。

成员参数

参数数据类型描述
textString要注入大模型的指令文本。
onListeningActionThinkListeningAction智能体处于倾听状态时的处理动作,默认值为 .interrupt。详见 ThinkListeningAction。
onThinkingActionThinkThinkingAction智能体处于思考状态时的处理动作,默认值为 .ignore。详见 ThinkThinkingAction。
onSpeakingActionThinkSpeakingAction智能体处于说话状态时的处理动作,默认值为 .ignore。详见 ThinkSpeakingAction。
interruptableBool是否允许用户说话打断本次指令生成的响应,默认值为 true。
metadata[String: String]?可选的业务自定义键值对。为 nil 时不会写入 RTM 消息。
表格内容超出当前宽度,可横向滚动查看更多列。

StateChangeEvent

Swift
@objc public class StateChangeEvent: NSObject {
@objc public let state: AgentState
@objc public let turnId: Int
@objc public let timestamp: TimeInterval
@objc public let reason: String
@objc public init(state: AgentState, turnId: Int, timestamp: TimeInterval, reason: String)
public override var description: String {
return "StateChangeEvent(state: \(state), turnId: \(turnId), timestamp: \(timestamp), reason: \(reason))"
}
}

StateChangeEvent 表示智能体状态变化事件,包含完整状态信息和时间戳。

用于追踪会话流程并更新用户界面状态指示器。

成员参数

参数数据类型描述
stateAgentState当前智能体状态。详见 AgentState。
turnIdInt会话轮次 ID,用于标识特定的会话轮次。
timestampTimeInterval事件发生的时间戳(自 1970 年 1 月 1 日 UTC 起的毫秒数)。
reasonString状态变化的原因。
表格内容超出当前宽度,可横向滚动查看更多列。

InterruptEvent

Swift
@objc public class InterruptEvent: NSObject {
@objc public let turnId: Int
@objc public let timestamp: TimeInterval
@objc public init(turnId: Int, timestamp: TimeInterval)
public override var description: String {
return "InterruptEvent(turnId: \(turnId), timestamp: \(timestamp))"
}
}

表示 InterruptEvent 会话中断事件。

通常在用户主动打断 AI 发言或系统检测到高优先级消息时触发,用于记录中断行为并执行相应处理。

成员参数

参数数据类型描述
turnIdInt被中断的会话轮次 ID。
timestampTimeInterval中断事件发生的时间戳(自 1970 年 1 月 1 日 UTC 起的毫秒数)。
表格内容超出当前宽度,可横向滚动查看更多列。

Metric

Swift
@objc public class Metric: NSObject {
    @objc public let type: ModuleType
    @objc public let name: String
    @objc public let value: Double
    @objc public let timestamp: TimeInterval
    @objc public init(type: ModuleType, name: String, value: Double, timestamp: TimeInterval)
    public override var description: String {
        return "Metric(type: \(type.stringValue), name: \(name), value: \(value), timestamp: \(timestamp))"
    }
}

Metric 用于记录和传输系统性能数据。

例如 LLM 推理延迟、TTS 合成延迟等。该数据可用于性能监控、系统优化和用户体验改进。

成员参数

参数数据类型描述
typeModuleType指标类型。详见 ModuleType。
nameString具体性能项的指标名称。
valueDouble指标值,通常为延迟时间(毫秒)或其他定量指标。
timestampTimeInterval指标记录的时间戳(自 1970 年 1 月 1 日 UTC 起的毫秒数)。
表格内容超出当前宽度,可横向滚动查看更多列。

ModuleError

Swift
@objc public class ModuleError: NSObject {
@objc public let type: ModuleType
@objc public let code: Int
@objc public let message: String
@objc public let timestamp: TimeInterval
@objc public init(type: ModuleType, code: Int, message: String, timestamp: TimeInterval)
public override var description: String {
return "ModuleError(type: \(type.stringValue), code: \(code), message: \(message), timestamp: \(timestamp))"
}
}

ModuleError 用于处理和上报 AI 模块相关错误信息。

包含错误类型、错误码、错误描述和时间戳,便于错误监控、日志记录和故障排查。

成员参数

参数数据类型描述
typeModuleType错误类型。详见 ModuleType。
codeInt用于标识特定错误条件的错误码。
messageString提供详细错误说明的错误描述信息。
timestampTimeInterval错误发生的时间戳(自 1970 年 1 月 1 日 UTC 起的毫秒数)。
表格内容超出当前宽度,可横向滚动查看更多列。

Transcript

Swift
@objc public class Transcript: NSObject {
@objc public let turnId: Int
@objc public let userId: String
@objc public let text: String
@objc public var status: TranscriptStatus
@objc public var type: TranscriptType
}

Transcript 用于表示用户可见的转录消息。

用于在用户界面层渲染转录内容的完整数据类。

成员参数

参数数据类型描述
turnIdInt会话轮次的唯一标识符。
userIdString与该转录关联的用户标识符。
textString实际的转录文本内容。
statusTranscriptStatus转录的当前状态。详见 TranscriptStatus。
typeTranscriptType转录的当前类型(代理或用户)。详见 TranscriptType。
表格内容超出当前宽度,可横向滚动查看更多列。

ConversationalAIAPIError

Swift
@objc public class ConversationalAIAPIError: NSObject {
@objc public let type: ConversationalAIAPIErrorType
@objc public let code: Int
@objc public let message: String
@objc public init(type: ConversationalAIAPIErrorType, code: Int, message: String)
public override var description: String {
return "ConversationalAIAPIError(type: \(type), code: \(code), message: \(message))"
}
}

用于记录和传递错误信息的类。

成员参数

参数数据类型描述
typeConversationalAIAPIErrorType错误类型。详见 ConversationalAIAPIErrorType。
codeInt用于标识特定错误条件的错误码。
messageString提供详细错误说明的错误描述信息。
表格内容超出当前宽度,可横向滚动查看更多列。

ConversationalAIAPIConfig

Swift
@objc public class ConversationalAIAPIConfig: NSObject {
@objc public weak var rtcEngine: AgoraRtcEngineKit?
@objc public weak var rtmEngine: AgoraRtmClientKit?
@objc public var renderMode: TranscriptRenderMode
@objc public var enableLog: Bool
}

Conversational AI API 的初始化配置类。

包含初始化 Conversational AI API 所需的配置参数,包括用于音视频通信的 rtcEngine、用于消息通信的 rtmEngine,以及转写渲染模式设置。

成员参数

参数数据类型描述
rtcEngineAgoraRtcEngineKit?用于音视频通信的引擎实例。详见 AgoraRtcEngineKit。
rtmEngineAgoraRtmClientKit?用于实时消息通信的客户端实例。详见 AgoraRtmClientKit。
renderModeTranscriptRenderMode转写渲染模式。详见 TranscriptRenderMode。
enableLogBool

是否启用详细日志记录:

  • YES:启用详细日志记录。
  • NO:不启用日志记录(默认)。
表格内容超出当前宽度,可横向滚动查看更多列。