AgentSdk API 参考 · iOS

AgentSdk API 参考 · iOS

创建与获取

swift
// 创建实例(单例:同一 appId 返回同一实例)
let agentSdk = AgentSdk.create(url: url, appId: appId, appKey: appKey, appSecret: appSecret)

// 获取已创建的实例
let existing = AgentSdk.get(appId: appId)   // -> AgentSdk?

// 获取所有已注册的 appId
let appIds = AgentSdk.listAppIds()          // -> [String]

// SDK 元信息
let version = AgentSdk.sdkVersion            // "1.5.0-SNAPSHOT"
let language = AgentSdk.sdkLanguage          // "ios"
方法返回值说明
create(url:appId:appKey:appSecret:)AgentSdk创建或获取实例
get(appId:)AgentSdk?获取已创建实例
listAppIds()[String]所有已注册 appId
sdkVersion / sdkLanguageStringSDK 版本 / 语言

生命周期

swift
agentSdk.initialize()   // 建立 WebSocket 连接
agentSdk.release()      // 关闭连接,释放所有资源
方法说明
initialize()建立 WebSocket 连接(触发认证、重连)
release()关闭连接、清理回调、清理缓存、停止重连

认证回调

swift
public protocol AgentAuthCallback: AnyObject {
    func onAuthState(appId: String, code: Int, msg: String)
}
agentSdk.registerAuth(AuthCallback())

被动交互回调注册

重要:必须在 initialize() 之前注册。

方法回调类型场景
registerAudio2Llm(cb)Audio2LlmCallback音频→ASR+LLM
registerAudio2Tts(cb)Audio2TtsCallback音频→ASR+LLM+TTS
registerAsr2Llm(cb)Asr2LlmCallback文本→LLM
registerAsr2Tts(cb)Asr2TtsCallback文本→LLM+TTS
registerAsrVideo2Vlm(cb)AsrVideo2VlmCallback文本+视频→VLM
registerAsrVideo2Tts(cb)AsrVideo2TtsCallback文本+视频→VLM+TTS
registerAudioVideo2Vlm(cb)AudioVideo2VlmCallback音频+视频→VLM
registerAudioVideo2Tts(cb)AudioVideo2TtsCallback音频+视频→VLM+TTS
registerPushListen(cb)PushListenCallback主动监听推流

打招呼信令在 PassiveCallback.onGreetSignal(...) 中重载即可,无需单独注册。 详见 被动回调指南。

agentId 绑定

swift
agentSdk.bindAgentCallbackType(agentId: agentId, callbackType: .audio2Tts)
agentSdk.unbindAgentCallbackType(agentId: agentId)
let type = agentSdk.getAgentCallbackType(agentId: agentId)   // -> AgentCallbackType?

agentSdk.bindAgentMeta(agentId: agentId, agentMeta: meta)
agentSdk.unbindAgentMeta(agentId: agentId)
let meta = agentSdk.getAgentMeta(agentId: agentId)           // -> AgentMeta?

let cb = agentSdk.getRobotCallback(.audio2Tts)               // -> PassiveCallback?

主动交互

任务流

swift
agentSdk.registerTaskFlow(flow)
agentSdk.unregisterTaskFlow(flowId: flowId)

任务流完整生命周期参见 主动交互指南 - 任务流。

拉流(底层类保留,未公开)

registerPullStream(_:) / unregisterPullStream(pullId:) 仍存在,但 v1.4.0 起不推荐使用,公开入口收敛到任务流。

超视距遥操(v1.5.0 新增)

swift
agentSdk.registerTeleop(teleopRequest)
agentSdk.unregisterTeleop(teleopId: teleopId)

完整流程见 超视距遥操指南 与 Teleop API。

扩展技能(v1.5.0 新增)

swift
agentSdk.registerExtSkill(extSkillRequest)
agentSdk.unregisterExtSkill(requestId: requestId)

完整流程见 扩展技能指南 与 ExtSkill API。