自动化

列出工作流

列出可见工作流的摘要、最新版本、标签及近七天统计。

列出可见工作流的摘要、最新版本、标签及近七天统计;默认排除已归档条目。

GET /automation/v1/workflows

鉴权

Authorization: Bearer $PRAXIS_API_KEY

请求字段

参数类型说明
query: limitinteger可选;每页条数,整数 1–100,默认 25。 minimum: 1;maximum: 100
query: cursorstring可选;上一页返回的 next_cursor,不透明字符串;保持原查询条件继续翻页。
query: qstring可选;不区分大小写,按名称或说明的字面子串匹配;% 与 _ 无通配含义。
query: namespacestring[]可选;仅返回指定命名空间的定义,名称按小写匹配。 多个值以逗号分隔,匹配任一值。 minItems: 1
query: scope"platform" / "own"[]可选;platform 仅平台定义,own 仅租户自建定义;省略返回两者。 多个值以逗号分隔,匹配任一值。 minItems: 1
query: archivedboolean可选;true 仅已归档,false 仅未归档;默认 false。
query: labelsobject可选;按标签过滤,使用 labels[k]=v;同键逗号多值取任一,不同键同时满足。
query: created_at[gte]string可选;创建时间下界,包含边界;使用带时区的 ISO 8601 时间。 format: "date-time"
query: created_at[lte]string可选;创建时间上界,包含边界;使用带时区的 ISO 8601 时间。 format: "date-time"

示例

curl --fail-with-body -X GET "https://api.deepraxis.ai/automation/v1/workflows" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  --get \
  --data-urlencode "namespace=docs-samples" \
  --data-urlencode "limit=1"
import { createAutomationClient } from '@deepractice-ai/praxis-sdk/automation';

function env(name: string): string {
  const value = process.env[name];
  if (!value) throw new Error(`Set ${name}`);
  return value;
}
const automation = createAutomationClient({
  apiKey: env('PRAXIS_API_KEY'),
  baseUrl: 'https://api.deepraxis.ai',
  maxRetries: 0,
  timeoutMs: 90_000,
});
const result = await automation.workflows.list({
  "query": {
    "namespace": [
      "docs-samples"
    ],
    "limit": 1
  }
});
console.log(result);

响应

HTTP 200

Success

application/json

字段类型说明
dataobject[]必填 / 必有;本页的工作流摘要,按 created_at 倒序、id 倒序排列。
data[].idstring必填 / 必有;编排 ID,脚本前缀 scr_,工作流前缀 wf_;日常使用 namespace 与 name。
data[].kind"script" / "workflow"必填 / 必有;编排类型。script 为 TypeScript 脚本,一次执行;workflow 为 YAML 工作流,由步骤组成,可等待事件、定时器或子运行并可暂停。
data[].namespacestring必填 / 必有;命名空间,引用形如 namespace/name@版本。
data[].namestring必填 / 必有;名字,与 namespace 一起在租户内唯一,脚本与工作流共用命名空间,重名返回 409 NAME_TAKEN。
data[].descriptionstring必填 / 必有;说明文字,最多 1000 字符。
data[].labelsobject必填 / 必有;用户自定义标签:字符串键值对,用于分类与列表过滤(labels[key]=value);键不能以 praxis. 开头。
data[].ownerstring必填 / 必有;所属租户,由网关注入;按不透明字符串处理。
data[].latest_versionnull / object必填 / 必有;latest 标签指向的已发布版本 {version, published_at};尚未发布为 null。
data[].latest_version(分支2).versionstring必填 / 必有;最新发布版本的版本号(semver)。
data[].latest_version(分支2).published_atstring必填 / 必有;该版本的发布时间(RFC 3339 UTC)。
data[].dist_tagsobject必填 / 必有;标签到精确版本号的映射,例如 latest 指向 1.2.0;用 ns/name@标签 运行时按此解析。
data[].draft_changedboolean必填 / 必有;true 表示草稿内容(摘要)不同于 latest 版本,即有未发布的改动。
data[].latest_runnull / object必填 / 必有;该编排最近一次运行的摘要;还没有运行为 null。
data[].latest_run(分支2).idstring必填 / 必有;运行 ID(run_ 前缀),可用于 runs.retrieve。
data[].latest_run(分支2).numbernull / number必填 / 必有;运行在该脚本或工作流内的递增序号。
data[].latest_run(分支2).status"running" / "completed" / "faulted" / "cancelled" / "pending" / "waiting" / "suspended"必填 / 必有;运行状态。pending 已创建尚未开始;running 执行中;waiting 工作流在等待事件、定时器或子运行;suspended 工作流被暂停;cancelled 已取消;faulted 失败;completed 成功完成。
data[].latest_run(分支2).created_atstring必填 / 必有;运行创建时间(RFC 3339 UTC)。
data[].latest_run(分支2).current_waitnull / object必填 / 必有;当前未完成的等待点;没有等待为 null。
data[].latest_run(分支2).current_wait(分支2).idstring必填 / 必有;等待点 ID,前缀 wait_;完成事件等待点时作为路径中的 wait_id。
data[].latest_run(分支2).current_wait(分支2).run_idstring必填 / 必有;所属运行 ID(run_ 前缀)。
data[].latest_run(分支2).current_wait(分支2).kind"event" / "timer" / "child"必填 / 必有;等待类型。event 等待外部事件,可通过 runs.completeWait 提交;timer 等待到达 resume_at;child 等待子运行结束。
data[].latest_run(分支2).current_wait(分支2).state"cancelled" / "open" / "resolved" / "expired"必填 / 必有;等待点状态。open 仍在等待;resolved 已被满足;expired 已超过 expires_at;cancelled 已被取消,不会再被满足。
data[].latest_run(分支2).current_wait(分支2).tasknull / object必填 / 必有;产生该等待的工作流步骤 {reference, name};没有对应步骤为 null。
data[].latest_run(分支2).current_wait(分支2).task(分支2).referencestring必填 / 必有;步骤的 JSON Pointer,例如 /do/2/wait_payment。
data[].latest_run(分支2).current_wait(分支2).task(分支2).namestring必填 / 必有;步骤名,即工作流 YAML 中的键。
data[].latest_run(分支2).current_wait(分支2).resume_atnull / string必填 / 必有;kind=timer 时恢复运行的时刻(RFC 3339 UTC);其它类型为 null。
data[].latest_run(分支2).current_wait(分支2).event_typenull / string必填 / 必有;kind=event 时等待的事件类型;其它类型为 null。
data[].latest_run(分支2).current_wait(分支2).child_run_idnull / string必填 / 必有;kind=child 时被等待的子运行 ID;其它类型为 null。
data[].latest_run(分支2).current_wait(分支2).created_atstring必填 / 必有;等待点创建时间(RFC 3339 UTC)。
data[].latest_run(分支2).current_wait(分支2).expires_atnull / string必填 / 必有;等待点到期时间(RFC 3339 UTC);没有期限为 null。
data[].latest_run(分支2).current_wait(分支2).resolved_atnull / string必填 / 必有;等待点被满足的时间(RFC 3339 UTC);尚未满足为 null。
data[].stats_7dobject必填 / 必有;近七天的运行统计:按运行结束日期累计,在运行结束时更新,读取时不扫描运行。 不接受额外字段。
data[].stats_7d.runsnumber必填 / 必有;近七天内结束的运行总数(任意终态)。
data[].stats_7d.failuresnumber必填 / 必有;其中以 faulted 结束的运行数。
data[].archived_atnull / string必填 / 必有;归档时间;未归档为 null。归档后名字保留,不可复用。
data[].created_atstring必填 / 必有;创建时间(RFC 3339 UTC)。
data[].updated_atstring必填 / 必有;最近一次更新的时间(RFC 3339 UTC)。
next_cursornull / string必填 / 必有;下一页游标,原样传给 cursor 参数并保持原查询条件;没有更多页为 null。接口不返回总数。

实测响应

HTTP 200

{
  "data": [
    {
      "id": "wf_00mv67m4jad0d5c2a3d1e04dc9ac4c18cff616eca7",
      "owner": "tnt_3a9759864ccb4e00",
      "kind": "workflow",
      "namespace": "docs-samples",
      "name": "sample-workflows-1791867412840-b05e8a",
      "description": "",
      "labels": {},
      "latest_version": null,
      "dist_tags": {},
      "draft_changed": true,
      "latest_run": null,
      "stats_7d": {
        "runs": 0,
        "failures": 0
      },
      "archived_at": null,
      "created_at": "2026-10-13T04:57:29.206Z",
      "updated_at": "2026-10-13T04:57:29.206Z"
    }
  ],
  "next_cursor": null
}

错误码

HTTP错误码与说明
400INVALID_PARAMS:请求参数、路径、游标或请求体格式无效。
defaultRFC 9457 automation problem. 429 includes Retry-After.

鉴权错误与通用错误 · 排查时保留响应头 X-Request-Id。

导出

本页内容