Los pasos de ejecución describen las acciones que realiza un agente durante una ejecución, incluidas las llamadas al modelo y a herramientas.
ImportanteLa API de Asistentes está siendo descontinuada. Migre a la API de Responses como alternativa. La API de Responses incluye múltiples herramientas integradas y admite la gestión de contexto de múltiples turnos.
Listar pasos de ejecución
Devuelve una lista de todos los pasos de una tarea de ejecución.
Solicitud de ejemplo
HTTP
curl --location 'https://dashscope-intl.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
import dashscope
from dashscope import Steps
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
steps = Steps.list(
'run_id',
# We recommend setting the API key as an environment variable. If not, replace `api_key=os.getenv(...)` with `api_key="your_api_key"`.
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='thread_id',
limit=20
)
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;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Runs runs = new Runs();
// We recommend setting the API key as an environment variable. If not, replace `apiKey(System.getenv(...))` with `apiKey("your_api_key")`.
GeneralListParam listSteps = GeneralListParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
ListResult<RunStep> run = runs.listSteps("threadId", "runId", listSteps);
}
}
Cuerpo de la solicitud
Nombre del parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
run_id | string | Sí | El ID de la ejecución para la cual usted want listar los pasos. | |
thread_id | string | Sí | El ID del hilo. | |
limit | integer | No | None | El número de pasos de ejecución a recuperar. El valor predeterminado es None. Un valor de None utiliza el valor predeterminado del lado del servidor. |
order | string | No | None | El orden en el que se deben clasificar los resultados según el campo created_at. Puede establecer este parámetro en asc (ascendente) o desc (descendente). El valor predeterminado es None, lo que indica que se utiliza el método de clasificación predeterminado del lado del servidor. |
after | string | No | None | ID del paso de ejecución que se utilizará como cursor para la paginación. Cuando se proporciona, devuelve la página de resultados inmediatamente posterior a este paso. |
before | string | No | None | ID del paso de ejecución que se utilizará como cursor para la paginación. Cuando se proporciona, devuelve la página de resultados inmediatamente anterior a este paso. |
workspace | string | Sí | None | El ID de espacio de trabajo para Alibaba Cloud Model Studio es necesario solo si `api_key` es una clave API para un subespacio de trabajo. |
api_key | string | Sí | None | La Clave API de Model Studio. Le recomendamos que configure la Clave API como variable de entorno. |
Respuesta de ejemplo
{
"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": ""
},
"expired_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]"
}
Cuerpo de respuesta
Una lista de objetos de paso de ejecución
Recuperar un paso de ejecución
Solicitud de ejemplo
HTTP
Código de ejemplocurl --location 'https://dashscope-intl.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
Código de ejemploimport dashscope
from dashscope import Steps
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
step = Steps.retrieve(
'step_id',
# We recommend setting the API key as an environment variable. If not, replace `api_key=os.getenv(...)` with `api_key="your_api_key"`.
api_key=os.getenv("DASHSCOPE_API_KEY"),
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;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Runs runs = new Runs();
// We recommend setting the API key as an environment variable. If not, replace `apiKey=System.getenv(...)` with `apiKey="your_api_key"`.
String apiKey = System.getenv("DASHSCOPE_API_KEY");
RunStep run = runs.retrieveStep("threadId", "runId", "stepId", apiKey);
}
}
Cuerpo de la solicitud
Nombre del parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
step_id | string | Sí | El ID del RunStep a recuperar. | |
thread_id | string | Sí | El ID del hilo. | |
run_id | string | Sí | El ID de la ejecución. | |
workspace | string | Sí | None | El ID de espacio de trabajo para Alibaba Cloud Model Studio es necesario solo si está utilizando una clave API de subespacio de trabajo. |
api_key | string | Sí | None | La Clave API de Model Studio. Le recomendamos que configure la Clave API como variable de entorno. |
Respuesta de ejemplo
{
"assistant_id": "[REDACTED]",
"cancelled_at": null,
"completed_at": 1735025124000,
"created_at": 1735025123150,
"expired_at": null,
"failed_at": null,
"id": "[REDACTED]",
"last_error": null,
"metadata": {},
"object": "thread.run.step",
"request_id": "[REDACTED]",
"run_id": "[REDACTED]",
"status": "completed",
"step_details": {
"message_creation": {
"message_id": "[REDACTED]"
},
"type": "message_creation"
},
"thread_id": "[REDACTED]",
"type": "message_creation",
"usage": null
}
Cuerpo de respuesta
El objeto de paso de ejecución que coincide con el ID especificado.
Objeto de paso de ejecución
Representa un paso en el proceso de ejecución de una corrida.
Ejemplo de objeto
{
"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
}
}
Atributos del objeto
Nombre del parámetro | Tipo | Descripción |
|---|---|---|
id | string | El identificador único del paso de ejecución, que se puede referenciar en los endpoints de la API. |
assistant_id | string | El ID del asistente asociado con este paso de ejecución. |
cancelled_at | integer | La marca de tiempo UNIX de 13 dígitos (en milisegundos) cuando se canceló el paso de ejecución. |
completed_at | integer | La marca de tiempo UNIX de 13 dígitos (en milisegundos) cuando se completó el paso de ejecución. |
created_at | integer | La marca de tiempo UNIX de 13 dígitos (en milisegundos) cuando se creó el paso de ejecución. |
expired_at | integer | La marca de tiempo UNIX de 13 dígitos (en milisegundos) cuando expiró el paso de ejecución. Si la ejecución principal ha expirado, el paso también se considera expirado. |
failed_at | integer | La marca de tiempo UNIX de 13 dígitos (en milisegundos) cuando falló el paso de ejecución. |
last_error | object | El último error asociado con este paso de ejecución. Este parámetro es null si no ocurrió ningún error. |
metadata | map | Un conjunto de hasta 16 pares clave-valor que se pueden adjuntar al objeto. Esto se utiliza para almacenar información adicional sobre el objeto en un formato estructurado. La longitud máxima de una clave es de 64 caracteres y la longitud máxima de un valor es de 512 caracteres. |
object | string | El tipo de objeto, que siempre es thread.run.step. |
run_id | string | El ID de la ejecución a la que pertenece este paso de ejecución. |
status | string | El estado del paso de ejecución. Valores válidos: in_progress, cancelled, failed, completed o expired. |
step_details | object | Los detalles del paso de ejecución. |
thread_id | string | El ID del hilo en ejecución. |
type | string | El tipo de paso de ejecución. Valores válidos: message_creation o tool_calls. |
usage | object | Estadísticas de uso de recursos. |
status_code | integer | El código de estado HTTP. Nota: Este parámetro se utiliza para procesamiento interno. En la mayoría de los casos, no necesita preocuparse por este parámetro. |
Códigos de error
Si una llamada falla y devuelve un mensaje de error, consulte Códigos de error para solucionar problemas.