Прочитати виконання та його трасування
Читайте статус виконання, поки воно йде, і його трасування по вузлах, коли воно просунулося.
Виконання — це один запит, пройдений через флоу. Його відкриває запит до флоу — POST /v1/operations/execute, — і воно зберігає версію флоу, на якій почалося. Операції цієї сторінки його читають: його статус, на який чекає клієнт, і його трасування по вузлах. Консоль показує те саме трасування на сторінці виконання, яку відкривають із вкладки Виконання флоу.
Статус і трасування
GET /v1/executions/{id}/statusвідповідає полями відповіді на запит:status,output,error_code,error_message,cost,cache,waiting_onіtrace_url. Поки виконання не закінчилося, він додаєretry_after_seconds— паузу, яку Slen радить зробити перед наступним читанням. Читайте його, щоб дочекатися виконання.GET /v1/executions/{id}відповідає трасуванням: виконання з його флоу —flow_name— це назва флоу, якою вона є зараз, — його версією, часом початку й кінця та двома списками —nodesіevents.
Обидві операції потребують дозволу read. Ключ читає виконання свого проєкту. Виконання іншого проєкту або неіснуюче відповідає 404 з кодом flow_execution_not_found. Виконання одного флоу перелічено в статті Флоу.
Що містить трасування
У
nodesє рядок для кожного вузла, який виконання пройшло: порт, через який він вийшов, вoutput_port, його вартість, скільки він тривав. Вузол записується, коли він закінчений, тому вузла, біля якого виконання чекає, там ще немає. У вузла, який завершує шлях, — Повернути відповідь, Відхилити запит — порту немає, іoutput_portдорівнюєnull.Рядок ще називає вузол і те, що він вирішив.
label— назва, яку автор дав вузлу в цій версії,null, якщо її немає.code— власне рішення вузла — відмова Перевірка бюджету, код Відхилити запит,approvedу погодження — і може відрізнятися відerror_codeвиконання: той код отримав той, хто викликав.model— модель останньої спроби вузла AI-модель або модель, для якої Перевірка бюджету прочитав бюджет вузла.Виклик моделі перелічує свої спроби в рядку свого вузла AI-модель: одна спроба на кожне підключення провайдера, яке він пробував, з підключенням, пулом, надісланою моделлю (
model_code) і тим, чим вона закінчилася.eventsрозповідає про прохід по порядку, з номерами вseq: оцінки й холди, відповіді та збої провайдерів, паузи й рішення. Подія несе суми, id і рішення — ніколи не промпт, не вхід флоу й не відповідь моделі.
Події трасування зберігаються 30 днів, а виконання з його вузлами — 90 днів, якщо сервіс не налаштовано інакше.
Чим закінчилося виконання
status каже, чим закінчився запит, а стаття Що каже відповідь перелічує всі статуси. error_code і error_message кажуть, чому виконання не завершилося успішно. Крім кодів API, середовище виконання закриває виконання, яке більше не може пройти, власним кодом — Коди помилок показують, який вигляд має таке виконання.
uncertain— невідомо, чим закінчився виклик моделі цього виконання: провайдер не відповів вчасно, або про виклик, який він виконував у фоні, більше не можна було запитати.error_codeдорівнюєoperation_uncertain. Холд виклику лишається, доки не спливе, бо провайдерові могли заплатити, і Slen виклик не повторює. Стаття Коли результат невідомий каже, що робити.failedзbackground_hold_expired— виклик моделі йшов у фоні, і його холд закрило інше списання, поки він чекав. Виклик закінчився, не запитавши в провайдера відповідь, і провайдер усе ще може виставити за нього рахунок.failedзexecution_timeout— у проходу вийшов час. Якщо модель уже відповіла, її виклик оплачено, іcost.actualусе одно прийде.
Вартість виконання
cost.estimated — сума оцінок, за якими авторизовано виклики моделей цього виконання. cost.actual — те, на що їх списано, і воно приходить після відповіді: виклики розраховуються у фоні, зазвичай протягом хвилини-двох.
cost.actualлишаєтьсяnull, поки виконання йде і поки хоча б один його виклик чекає на списання, тому виконання з двома викликами моделі ніколи не показує вартість одного.Воно лишається
nullназавжди, коли нічого не списано: відмова, відповідь із кешу, збій у провайдера.Коли його задано, воно більше не змінюється.
Читання трасування надолужує вартість, розрахунок якої було пропущено, тому трасування, прочитане після розрахунку, її показує.
Операції
Описи операцій і полів подано англійською.
Трасування одного запуску флоу
GET /v1/executions/{id}
- Дозвіл:
read - Доступно в SDK для PHP і Node.js
Node by node, event by event, with the cost on each.
Параметри
| Параметр | Опис |
|---|---|
id обовʼязковоpath | Snowflake identifier, as a string.
|
Відповіді
The execution trace
{
"data": {
"execution_id": "74438200973594624",
"flow_id": "74438200973594624",
"flow_version_id": "74438200973594624",
"operation": "generate_email",
"operation_id": "74438200973594624",
"status": "running",
"error_code": "string",
"error_message": "string",
"cost": {
"estimated": "0.02700000",
"actual": "0.02700000"
},
"cache": {
"hit": true,
"cached_at": "2026-10-02T09:30:00Z"
},
"started_at": "2026-10-02T09:30:00Z",
"finished_at": "2026-10-02T09:30:00Z",
"duration_ms": 1,
"flow_name": "string",
"nodes": [
{
"node_key": "string",
"node_type": "sdk_request",
"status": "completed",
"output_port": "string",
"cost": "0.02700000",
"duration_ms": 1,
"started_at": "2026-10-02T09:30:00Z",
"finished_at": "2026-10-02T09:30:00Z",
"metadata": {},
"attempts": [
{
"attempt_id": "74438200973594624",
"attempt_number": 1,
"connection_id": "74438200973594624",
"pool_id": "74438200973594624",
"status": "string",
"error_code": "string",
"latency_ms": 1,
"cost": "0.02700000",
"provider_request_id": "74438200973594624",
"model_code": "gpt-4o-mini"
}
],
"label": "string",
"model": "gpt-4o-mini",
"code": "string"
}
],
"events": [
{
"seq": 1,
"type": "accepted",
"node_key": "string",
"occurred_at": "2026-10-02T09:30:00Z",
"payload": {}
}
]
}
}Помилки
| Статус | Коди | Коли |
|---|---|---|
| 401 | No credential, or one that is not valid | |
| 403 | Authenticated, but not allowed: scope ( | |
| 404 | No such resource for this tenant. Somebody else's resource — and a resource of a project the caller does not reach — answers the same way on purpose: the two must not be distinguishable. |
Заголовки
X-Request-Id
Тіло кожної помилки — конверт помилки.
Статус запуску флоу для опитування
GET /v1/executions/{id}/status
- Дозвіл:
read - Доступно в SDK для PHP і Node.js
Status, cost, what the run waits on, and the answer once there is one — the endpoint an SDK polls. Answered from a Redis snapshot when there is one and from the row otherwise, byte for byte the same either way. A run of a project the caller does not reach is 404 either way — the snapshot carries its project. Use GET /v1/executions/{id} for the node-by-node trace.
Параметри
| Параметр | Опис |
|---|---|
id обовʼязковоpath | Snowflake identifier, as a string.
|
Відповіді
The current state of the execution
{
"data": {
"execution_id": "74438200973594624",
"status": "running",
"operation": "generate_email",
"output": {},
"error_code": "string",
"error_message": "string",
"cost": {
"estimated": "0.02700000",
"actual": "0.02700000"
},
"cache": {
"hit": true,
"cached_at": "2026-10-02T09:30:00Z"
},
"waiting_on": {
"node_key": "string",
"type": "queue_node",
"resume_at": "2026-10-02T09:30:00Z"
},
"trace_url": "string",
"retry_after_seconds": 1
}
}Помилки
| Статус | Коди | Коли |
|---|---|---|
| 401 | No credential, or one that is not valid | |
| 403 | Authenticated, but not allowed: scope ( | |
| 404 | No such resource for this tenant. Somebody else's resource — and a resource of a project the caller does not reach — answers the same way on purpose: the two must not be distinguishable. |
Заголовки
X-Request-Id
Тіло кожної помилки — конверт помилки.
Приклади
Прочитати трасування
id — це execution_id відповіді на запит. Відповідь — виконання з його nodes і events у формі, яку описує блок вище.
curl https://api.slen.ai/api/v1/executions/74438200973594700 \
-H "Authorization: Bearer $SLEN_API_KEY"Прочитати статус
Виконання чекає біля свого вузла review на рішення людини. resume_at немає, а retry_after_seconds радить, коли прочитати знову.
curl https://api.slen.ai/api/v1/executions/74443028719599616/status \
-H "Authorization: Bearer $SLEN_API_KEY"{
"data": {
"execution_id": "74443028719599616",
"status": "waiting",
"operation": "generate_email",
"output": null,
"error_code": null,
"error_message": null,
"cost": {
"estimated": null,
"actual": null
},
"cache": {
"hit": false,
"cached_at": null
},
"waiting_on": {
"node_key": "review",
"type": "approval",
"resume_at": null
},
"trace_url": "/v1/executions/74443028719599616",
"retry_after_seconds": 30
}
}Що читати далі
Асинхронні запуски й очікування — дочекайтеся виконання через SDK.
Коли результат невідомий — виконання, яке закінчилося зі статусом
uncertain.Операції — запит, який відкриває виконання, і запис кожного виклику моделі.
Розбір виконання — ті самі виконання в консолі.
Зібрано з openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d