通过回调获取异步任务结果

本文介绍如何以异步回调获取听悟Agent任务结果。

听悟Agent任务创建接口为异步接口。您可通过两种方式获取结果:

  1. 主动轮询查询接口(参见汽车销售服务洞察API参考购车客户画像API参考

  2. 配置回调通知(本文档核心内容)

前提条件

注意事项

  1. SDK/API调用触发回调,阿里云百炼提交的任务不触发

  2. HTTP回调与EventBridge回调的data字段一致

  3. 两种回调方式的通知节奏相同

基于HTTP进行回调

步骤1:构建回调接收服务

构建HTTP服务接收回调消息:

package com.alibaba.langpower;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@SpringBootApplication
public class TingwuAgentCallbackDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(TingwuAgentCallbackDemoApplication.class, args);
    }

    @PostMapping("/tingwu-agent/callback")
    @ResponseBody
    public String receiveTingwuAgentCallbackEvent(@RequestBody String data) {
        System.out.println("Received callback data: \n" + data);
        return "Callback received!";
    }
}

步骤2:测试回调服务

使用curl验证服务可用性:

# 将 {your-external-service-url} 替换为实际的URL
curl --request POST 'http://{your-external-service-url}/tingwu-agent/callback' \
--header 'Content-Type: application/json' \
--data '{
    "output": {
        "test": "checkSyncConf1753325301***"
    },
    "requestId": "61b093d1200e4286ae5d5b15448698f2"
}'

步骤3:配置回调参数

进入阿里云百炼控制台,创建或选择已创建的应用,单击调试配置,进入配置界面。回调方式选择HTTP post协议,填写真实回调地址并发布应用。

image

步骤4:验证回调结果

使用SDK创建任务后(参见SDK文档),回调服务将分阶段接收:

  1. 阶段1:接收转写任务信息

    {
        "output": {
            "transcriptionPath": "https://agentic-resource-pre.oss-cn-hangzhou.aliyuncs.com/agentic/prepub/CommonDataField/transcription/1627865****/llm-3cx2a3o4n8y****/2025/07/24/5c6117f77a274cf8b795c8749c28b****?Expires=175341****&OSSAccessKeyId=LTAI5tKZP7TuS7QuF8TYN****&Signature=HEXgIeUVMuTbgyJEu8IIZc1k****",
            "status": 1,
            "taskInfo": {
                "appId": "tw_gDEAnYwAIs****",
                "dataId": "fgVnGZkX5x****",
                "model": "tingwu-automotive-service-insights",
                "userId": "1627865****",
                "userSpaceId": "llm-3cx2a3o4n8y****"
            }
        },
        "requestId": "5038efee3f3a448bb600fc5617fc****"
    }
  2. 阶段2:接收任务结果

    {
        "output": {
            "transcriptionPath": "https://agentic-resource-pre.oss-cn-hangzhou.aliyuncs.com/agentic/prepub/CommonDataField/transcription/1627865****/llm-3cx2a3o4n8y****/2025/07/24/5c6117f77a274cf8b795c8749c28b****?Expires=175341****&OSSAccessKeyId=LTAI5tKZP7TuS7QuF8TYN****&Signature=7XmIRXMiRQCmy%2B7tkvqiw76****",
            "status": 0,
            "saleInsightsPath": "https://agentic-resource-pre.oss-cn-hangzhou.aliyuncs.com/agentic/prepub/CommonDataField/saleInspec/1627865****/llm-3cx2a3o4n8y****/2025/07/24/7b6271d72bc4408b8e2801ebfcf2****?Expires=175341****&OSSAccessKeyId=LTAI5tKZP7TuS7QuF8TYN****&Signature=HEVhbNDZw%2FTwrI0eLdnCs90****",
            "serviceInsightsPath": "https://agentic-resource-pre.oss-cn-hangzhou.aliyuncs.com/agentic/prepub/CommonDataField/servInspec/1627865****/llm-3cx2a3o4n8y****/2025/07/24/b8574b1b92184d4caae003408896****?Expires=175341****&OSSAccessKeyId=LTAI5tKZP7TuS7QuF8TYN****&Signature=YzlF2SYFbG4LhtDTWisMgN7A****",
            "taskInfo": {
                "appId": "tw_gDEAnYwAIs****",
                "dataId": "fgVnGZkX5x****",
                "model": "tingwu-automotive-service-insights",
                "userId": "1627865****",
                "userSpaceId": "llm-3cx2a3o4n8y****"
            }
        },
        "requestId": "6005f5c621794168a508cb2dff3a****"
    }
    

基于阿里云事件总线进行回调

步骤1:创建事件规则

  1. 开通EventBridge并进入EventBridge控制台

  2. 地域选择华北2(北京)

  3. 单击创建规则,配置基本信息

    image

    image

  4. 配置事件模式

    • 事件源:acs.tingwuagent

    • 事件类型:按需选择

    image

  5. 配置事件目标(以RocketMQ为例,EventBridge会将tingwuAgent的回调消息投递到相应的EventBridge实例中)

    image

  6. 单击创建按钮

步骤2:配置回调方式

进入阿里云百炼控制台,创建或选择已创建的应用,单击调试配置,进入配置界面。回调方式选择事件总线并发布应用。

image

步骤3:验证回调结果

  1. 使用SDK创建一个客户画像分析任务,然后在EventBridge中的default总线中,看到两条有tingwuAgent发送的回调消息。

    image

  2. 在配置好的rocketMq实例中查看EventBridge路由到其中的消息,若为下图所示则回调成功。

    image

事件类型以及回调事件协议

事件类型

事件描述

事件协议参考

tingwuagent:TaskStateUpdated:AgentSubTaskCompleted

子任务完成后的回调消息。

服务质检、客户画像类AgentEventBridge回调协议

tingwuagent:TaskStateUpdated:AgentTaskFailed

任务失败的回调消息。

tingwuagent:TaskStateUpdated:AgentWholeTaskCompleted

整个任务完成后的回调消息。

事件总线通知节奏

Agent的结果会分为几个阶段进行返回,下面是各Agent的通知节奏。

  • 任务成功:

    • tingwuagent:TaskStateUpdated:AgentSubTaskCompleted:转写任务完成

    • tingwuagent:TaskStateUpdated:AgentWholeTaskCompleted:所有任务完成

  • 任务失败:收到tingwuagent:TaskStateUpdated:AgentTaskFailed回调通知