Run Steps

Run Steps 描述了智能体运行过程中所采取的步骤,包括模型和工具的调用。

列出运行步骤

返回一个运行任务的所有步骤列表。

请求示例

HTTP

curl --location 'https://dashscope.aliyuncs.com/api/v1/threads/thread_cc2a3e9d-436b-482b-91c5-377e0f376506/runs/run_3de634fa-75d4-4370-adcf-92ba2a60c396/steps?limit=20&order=asc' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

SDK

from dashscope import Steps
steps = Steps.list('run_id',
                   thread_id='thread_id',
                   limit='')
import com.alibaba.dashscope.common.GeneralListParam;
import com.alibaba.dashscope.common.ListResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.runs.RunStep;
import com.alibaba.dashscope.threads.runs.Runs;

public class Main {
    public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
        Runs runs = new Runs();
        GeneralListParam listSteps = GeneralListParam.builder().build();

        ListResult<RunStep> run = runs.listSteps("threadId", "runId", listSteps);
    }
}

请求体

参数名称

参数类型

是否必须

默认值

参数描述

run_id

string

需要列出步骤的运行 (Run) 的 ID。

thread_id

string

线程 (Thread) 的 ID。

limit

integer

None

要检索的运行步骤数量。默认为None,表示使用服务器端的默认值。

order

string

None

根据created_at字段进行排序的顺序。可以设置为asc(升序)或desc(降序)。默认为None,表示使用服务器端的默认排序方式。

after

string

None

用于分页,指定一个运行步骤 ID,返回在此 ID 之后的运行步骤列表。与before参数互斥。默认为None。

before

string

None

用于分页,指定一个运行步骤 ID,返回在此 ID 之前的运行步骤列表。与after参数互斥。默认为None。

workspace

string

None

DashScope 工作空间 ID。如果不提供,将使用环境变量DASHSCOPE_WORKSPACE的值。默认为None,代表主空间。

响应示例

{
    "object": "list",
    "data": [
        {
            "id": "[REDACTED]",
            "object": "thread.run.step",
            "created_at": 1711517599333,
            "assistant_id": "[REDACTED]",
            "thread_id": "[REDACTED]",
            "run_id": "[REDACTED]",
            "type": "message_creation",
            "status": "completed",
            "step_details": {
                "type": "message_creation",
                "message_creation": {
                    "message_id": "[REDACTED]"
                }
            },
            "last_error": {
                "code": "",
                "message": ""
            },
            "expires_at": 0,
            "started_at": 0,
            "cancelled_at": -1,
            "failed_at": -1,
            "completed_at": -1,
            "metadata": {},
            "usage": {}
        }
    ],
    "first_id": "[REDACTED]",
    "last_id": "[REDACTED]",
    "has_more": false,
    "request_id": "[REDACTED]"
}

响应体

一个运行步骤对象列表

检索运行步骤

请求示例

HTTP

代码示例

curl --location 'https://dashscope.aliyuncs.com/api/v1/threads/thread_cc2a3e9d-436b-482b-91c5-377e0f376506/runs/run_3de634fa-75d4-4370-adcf-92ba2a60c396/steps/step_4db180b5-d44a-4b12-9390-4307c6cb87a5' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

SDK

代码示例

from dashscope import Steps
step = Steps.retrieve('step_id',
                      thread_id='thread_id',
                      run_id='run_id')
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.runs.RunStep;
import com.alibaba.dashscope.threads.runs.Runs;

public class Main {
    public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
        Runs runs = new Runs();
        RunStep run = runs.retrieveStep("threadId", "runId", "stepId");
    }
}

请求体

参数名称

参数类型

是否必须

默认值

参数描述

step_id

string

要检索的运行步骤 (RunStep) 的 ID。

thread_id

string

线程 (Thread) 的 ID。

run_id

string

运行 (Run) 的 ID。

workspace

string

None

DashScope 工作空间 ID。如果不提供,将使用环境变量DASHSCOPE_WORKSPACE的值。

响应示例

{
    "assistant_id": "[REDACTED]",
    "cancelled_at": null,
    "completed_at": 1735025124000,
    "created_at": 1735025123150,
    "expired_at": null,
    "failed_at": null,
    "id": "[REDACTED]",
    "metadata": {},
    "object": "thread.run.step",
    "request_id": "[REDACTED]",
    "run_id": "[REDACTED]",
    "status": "completed",
    "status_code": 200,
    "step_details": {
        "message_creation": {
            "message_id": "[REDACTED]"
        },
        "type": "message_creation"
    },
    "thread_id": "[REDACTED]",
    "type": "message_creation",
    "usage": null
}

响应体

与指定 ID 匹配的运行步骤对象

运行步骤对象

表示运行执行过程中的一个步骤。

对象示例

{
  "status_code": 200,
  "id": "[REDACTED]",
  "assistant_id": "[REDACTED]",
  "cancelled_at": null,
  "completed_at": 1678886400,
  "created_at": 1678886300,
  "expired_at": null,
  "failed_at": null,
  "last_error": null,
  "metadata": {
    "user_id": "[REDACTED]",
    "context": "order_processing"
  },
  "object": "thread.run.step",
  "run_id": "[REDACTED]",
  "status": "completed",
  "step_details": {
    "type": "message_creation",
    "message_creation": {
      "message_id": "[REDACTED]"
    }
  },
  "thread_id": "[REDACTED]",
  "type": "message_creation",
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 20,
    "total_tokens": 30
  }
}

对象属性

参数名称

参数类型

参数描述

id

string

运行步骤的唯一标识符,可在 API 端点中引用。

assistant_id

string

与此运行步骤关联的助手的 ID。

cancelled_at

integer

运行步骤被取消的时间戳(Unix 时间戳,单位:秒)。

completed_at

integer

运行步骤完成的时间戳(Unix 时间戳,单位:秒)。

created_at

integer

运行步骤创建的时间戳(Unix 时间戳,单位:秒)。

expired_at

integer

运行步骤过期的时间戳(Unix 时间戳,单位:秒)。如果父运行已过期,则步骤也被视为已过期。

failed_at

integer

运行步骤失败的时间戳(Unix 时间戳,单位:秒)。

last_error

object

与此运行步骤相关的最后一个错误。如果没有错误,则为null。

metadata

map

一组最多包含 16 个键值对,可以附加到对象上。用于以结构化格式存储有关对象的附加信息。键的最大长度为 64 个字符,值的最大长度为 512 个字符。

object

string

对象类型,始终为thread.run.step。

run_id

string

此运行步骤所属的运行的 ID。

status

string

运行步骤的状态,可以是in_progress(进行中)、cancelled(已取消)、failed(已失败)、completed(已完成)或expired(已过期)。

step_details

object

运行步骤的详细信息。

thread_id

string

运行的线程的 ID。

type

string

运行步骤的类型,可以是message_creation(消息创建)或tool_calls(工具调用)。

usage

obect

资源使用情况统计信息。

status_code

integer

HTTP 状态码。注意:此参数主要用于内部处理,通常情况下,您无需关注此参数。