课程章节介绍
我们来看这一页幻灯片,内容是关于在使用Agentforce消息API时,如何处理消息发送、流式响应、会话结束和反馈。我会用最口语化的方式,像上课一样给你讲明白。
首先想象一下,你现在是在跟Agentforce做一个对话,就像聊天一样。作为开发者,我们需要通过API来发送消息、接收回复,还要管理这个对话的生命周期。这里有几个关键点,我会一个一个说。
第一个,如果你想发一条消息,并且是同步地等回复,也就是发完就等对方立刻回一句,那你要用这个端点:`/messages`。注意是复数 messages。发的时候,你要在请求里带一个叫“序列ID”的东西,比如第一条消息序列ID是1,第二条是2,第三条是3,这样递增。为什么需要这个?因为万一网络抖了一下,消息重复发了,Agentforce 靠这个递增的序列号就能知道哪条是新的,不会搞乱顺序,也不会重复处理。所以,记住,每次发消息都要带上一个比上一条大的序列ID。
第二个,如果你不想同步等,而是想要实时的、一个字一个字往外蹦的流式响应,那就要换一种方式。你要发请求到 `/message/stream`,并且在请求头里写上 `Accept: text/event-stream`。这样Agentforce就会以流的形式把结果推给你,用户就能看到打字机的效果,体验会好很多。
第三个,关于怎么结束一个会话。在Agentforce的世界里,会话是放在一个叫“收件箱”的概念里的。要正常结束一个会话,你需要发送一个特殊的请求,在响应头里用上 `x-section-end-reason`,这个头就是告诉系统结束会话的原因,比如是用户主动结束,还是超时之类。加上这个头,系统就知道会话完结了,该把对话归档到收件箱里了。
第四个,反馈功能。用户有时候会评价回复好不好,比如点个赞或者点个踩。Agentforce 的消息体里有一个叫 `Inform` 的消息类型,这种消息里会带一个 `feedbackId`,这个就是用来提交反馈的标识。你拿到这个 `feedbackId` 之后,再发一个请求,带上评分,比如“好”或者“坏”。如果提交成功,服务器会返回 HTTP 201,意思是已创建,反馈就记录下来了。
最后说一下引文。有时候Agentforce给出的回复是基于某些知识库文章的,它会在 `Inform` 消息里带一个 `citedReferences` 数组,里面就是引用的来源。而且里面还可以有一个 `inlineMeta` 字段,这个字段包含了声明文本和字符位置的偏移量。这些偏移量是干什么用的?就是告诉你,回复的那句话里,从第几个字到第几个字是依据这个来源的,你可以在UI上把那段文字变成可点击的链接,或者加个小数字角标,这就实现了内联的来源展示,看起来非常专业。
总结一下,这页内容就是教你:用 `/messages` 发同步消息要递增序列ID;想要流式就用 `/message/stream` 加 `Accept: text/event-stream`;结束会话设一个 `x-section-end-reason` 头;用 `Inform` 里的 `feedbackId` 提交评价,成功就是201;引文数据在 `citedReferences`,配合 `inlineMeta` 的偏移量可以在界面上直接标出来源。
这样讲是不是就清晰多了?记住这些,你在调用API的时候就知道每一步该做什么了。我们下页继续。