自动化

列出触发器

分页列出租户触发器,可按目标、类型和状态筛选。

分页列出租户触发器,可按目标、类型和状态筛选;ns/name 匹配该目标的所有标签或版本,ns/name@spec 精确匹配。

GET /automation/v1/triggers

鉴权

Authorization: Bearer $PRAXIS_API_KEY

请求字段

参数类型说明
query: limitinteger可选;每页条数,整数 1–100,默认 25。 minimum: 1;maximum: 100
query: cursorstring可选;上一页返回的 next_cursor,不透明字符串;保持原查询条件继续翻页。
query: targetstring[]可选;ns/name 匹配该目标的所有版本或标签;ns/name@spec 精确匹配已存的引用。 多个值以逗号分隔,匹配任一值。 minItems: 1
query: kind"schedule" / "webhook"[]可选;schedule 或 webhook;省略返回两者。 多个值以逗号分隔,匹配任一值。 minItems: 1
query: state"enabled" / "paused" / "expired"[]可选;触发器状态:enabled、paused 或 expired;省略不过滤。 多个值以逗号分隔,匹配任一值。 minItems: 1
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"

示例

先设置以下环境变量,使用你自己的资源:

: "${TARGET:?Set TARGET}"
curl --fail-with-body -X GET "https://api.deepraxis.ai/automation/v1/triggers" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  --get \
  --data-urlencode "target=${TARGET}"
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.triggers.list({
  "query": {
    "target": [
      env("TARGET")
    ]
  }
});
console.log(result);

响应

HTTP 200

Success

application/json

字段类型说明
dataobject[]必填 / 必有;本页的触发器,按 created_at 倒序、id 倒序排列。
data[].namestring必填 / 必有;触发器名称,1–100 字符。 minLength: 1;maxLength: 100
data[].descriptionstring必填 / 必有;触发器说明,最多 1000 字符。 maxLength: 1000
data[].labelsobject必填 / 必有;触发器标签:字符串键值对,最多 64 个;键不能以保留前缀 praxis. 开头,违反返回 400 INPUT_INVALID。
data[].targetstring必填 / 必有;要运行的脚本或工作流引用,形如 ns/name@标签或版本;默认跟随 latest,写成 @1.2.0 则钉死版本。
data[].inputnull / string / number / boolean / object / JSON[]必填 / 必有;任意 JSON 值:null、布尔、数字、字符串、数组或对象。
data[].input(分支5).*null / string / number / boolean / object / JSON[]递归 JSON 值。
data[].input(分支6)[]null / string / number / boolean / object / JSON[]递归 JSON 值。
data[].kind"schedule" / "webhook"必填 / 必有;触发器类型。schedule 按计划(cron、every 或 at)触发;webhook 由入站 HTTP 请求触发。
data[].scheduleobject / object / object / null必填 / 必有;定时规则,kind=schedule 时有值(cron、every 或 at 三选一);webhook 为 null。
data[].schedule(分支1)(分支1).cronstring必填 / 必有;Five fields; supports L, W, #. DST gaps skip the day and overlaps run once.
data[].schedule(分支1)(分支2).everystring / object必填 / 必有;时长:ISO 8601 字符串(如 PT5M),或 {days, hours, minutes, seconds, milliseconds} 对象;折算后必须是 60000 至 31622400000 毫秒(1 分钟至 366 天)的整数毫秒。
data[].schedule(分支1)(分支2).every(分支2).daysinteger可选;天数,非负整数。 minimum: 0
data[].schedule(分支1)(分支2).every(分支2).hoursinteger可选;小时数,非负整数。 minimum: 0
data[].schedule(分支1)(分支2).every(分支2).minutesinteger可选;分钟数,非负整数。 minimum: 0
data[].schedule(分支1)(分支2).every(分支2).secondsinteger可选;秒数,非负整数。 minimum: 0
data[].schedule(分支1)(分支2).every(分支2).millisecondsinteger可选;毫秒数,非负整数。 minimum: 0
data[].schedule(分支1)(分支3).atstring必填 / 必有;一次性触发的时刻(RFC 3339 UTC);不能早于当前时间,也不能晚于一年后。执行后触发器进入 expired。 format: "date-time"
data[].timezonestring必填 / 必有;IANA 时区名,定时规则按它解释;API 缺省为 UTC。 default: "UTC"
data[].start_atstring / null必填 / 必有;定时触发器的开始时间(RFC 3339 UTC);此前不触发。没有限制为 null。
data[].end_atstring / null必填 / 必有;定时触发器的结束时间(RFC 3339 UTC);超过后进入 expired。没有期限为 null。
data[].overlap"skip" / "allow"必填 / 必有;重叠策略:上一次运行未结束时又到点,skip(默认)跳过,allow 照常启动。 default: "skip"
data[].catchup_window_secondsinteger必填 / 必有;补跑窗口(秒),默认 300,仅定时触发器适用:到点时若已延迟超过该值(宕机、暂停期间),记为 missed 且不补跑。 default: 300;minimum: 0
data[].webhookobject / null必填 / 必有;webhook 设置,kind=webhook 时有值;schedule 触发器为 null。
data[].webhook(分支1).input_mode"body" / "envelope"必填 / 必有;webhook 触发时传给目标的输入形态。body(默认)只传请求体;envelope 传含 body、raw_body、raw_body_encoding、headers、webhook_id、received_at 的信封对象。
data[].webhook(分支1).url_hintstring必填 / 必有;webhook 地址的掩码提示,省略号代替私密 token,不能用于调用。新建触发器为公开完整 URL;历史记录可能为 /automation/v1/hooks/{id}/… 相对路径。
data[].idstring必填 / 必有;触发器 ID,前缀 trg_;用于 webhook 地址以及触发器的所有接口。
data[].ownerstring必填 / 必有;所属租户,由网关注入;按不透明字符串处理。
data[].state"enabled" / "paused" / "expired"必填 / 必有;触发器状态。enabled 启用,会按计划或请求触发;paused 已暂停,不触发;expired 已到期,一次性触发器执行完或超过 end_at 后进入,不再触发。
data[].source"api" / "definition"必填 / 必有;触发器来源。api 为通过 API 创建,可修改和删除;definition 为由工作流 YAML 的 schedule 生成,只能暂停或恢复,修改返回 409 TRIGGER_MANAGED。
data[].created_byobject必填 / 必有;网关注入的主体 {type, id},表示谁发起或操作;本服务不解析名字,名字由控制台批量解析。 不接受额外字段。
data[].created_by.type"user" / "api_key" / "agent" / "run" / "trigger"必填 / 必有;主体类型。user 为登录用户;api_key 为平台 API Key;agent 为智能体;run 为由运行本身(例如父运行)执行的操作;trigger 为触发器。
data[].created_by.idstring必填 / 必有;主体标识,含义随 type 而定:用户 ID、API Key ID、智能体 ID、运行 ID 或触发器 ID;按不透明字符串处理。
data[].created_by_user_idstring必填 / 必有;创建者的真实用户 ID,由网关转发;触发器启动的运行以该用户身份取令牌,用于审计与用量归属。
data[].next_fire_timesstring[]必填 / 必有;接下来最多 5 次的触发时间(RFC 3339 UTC);webhook、已暂停或已到期的触发器为空数组。 maxItems: 5
data[].last_firingobject / null必填 / 必有;最近一次触发记录;从未触发为 null。
data[].last_firing(分支1).idstring必填 / 必有;触发记录 ID;记录保留 30 天。
data[].last_firing(分支1).trigger_idstring必填 / 必有;所属触发器 ID(trg_ 前缀)。
data[].last_firing(分支1).scheduled_atstring必填 / 必有;计划触发的时间(RFC 3339 UTC);webhook 取请求到达时间。 format: "date-time"
data[].last_firing(分支1).fired_atstring必填 / 必有;实际触发的时间(RFC 3339 UTC)。 format: "date-time"
data[].last_firing(分支1).outcome"accepted" / "started" / "skipped_overlap" / "missed" / "failed" / "deduped"必填 / 必有;触发结果。accepted 已持久化等待处理;started 已创建运行;skipped_overlap 因上一次运行未结束而跳过;missed 到点时延迟超过补跑窗口,不补跑;failed 创建运行失败;deduped 与 24 小时内相同 webhook-id 的请求重复,已去重。
data[].last_firing(分支1).run_idstring / null必填 / 必有;本次触发创建的运行 ID(run_ 前缀);未创建运行为 null。
data[].last_firing(分支1).resolved_versionstring / null必填 / 必有;本次触发实际解析到的精确版本号;尚未解析或失败时为 null。
data[].last_firing(分支1).errorobject / null必填 / 必有;触发失败时的原因 {code, message};没有失败为 null。
data[].last_firing(分支1).error(分支1).codestring必填 / 必有;失败的错误码。
data[].last_firing(分支1).error(分支1).messagestring必填 / 必有;失败的说明文字。
data[].countsobject必填 / 必有;触发结果累计次数 {started, skipped, missed, failed}。 不接受额外字段。
data[].counts.startedinteger必填 / 必有;成功启动运行的次数。 minimum: 0
data[].counts.skippedinteger必填 / 必有;因重叠策略为 skip 且上一次运行未结束而跳过的次数。 minimum: 0
data[].counts.missedinteger必填 / 必有;因延迟超过补跑窗口而错过的次数。 minimum: 0
data[].counts.failedinteger必填 / 必有;创建运行失败的次数。 minimum: 0
data[].created_atstring必填 / 必有;创建时间(RFC 3339 UTC)。 format: "date-time"
data[].updated_atstring必填 / 必有;最近一次更新的时间(RFC 3339 UTC)。 format: "date-time"
data[].etagstring必填 / 必有;触发器当前修订标识,更新时作为 If-Match;不匹配返回 412。
data[].usage_30dobject / null可选;仅 GET /triggers/{id} 返回,列表省略。最近 30 天由此触发器启动的运行及子运行的归因实扣。运行本身不收费;这里是运行中调用模型、搜索等能力产生的实扣,按调用归因;未评级的用量稍后计入。汇总超时(1.5 秒)或失败时为 null,详情仍返回 200。
data[].usage_30d(分支1).currency"USD"必填 / 必有;金额币种,固定为 USD。
data[].usage_30d(分支1).coststring必填 / 必有;已评级实扣的美元十进制字符串,精确到 6 位小数;没有用量时为 0.000000。 pattern: "^[0-9]+\.[0-9]{6}$"
data[].usage_30d(分支1).pending_eventsinteger必填 / 必有;尚未评级的用量事件数,金额稍后才计入。 minimum: 0
next_cursorstring / null必填 / 必有;下一页游标,原样传给 cursor 参数并保持原查询条件;没有更多页为 null。接口不返回总数。

实测响应

HTTP 200

{
  "data": [
    {
      "id": "trg_00mv67mzzqa0d63b98d72446dd9d1331051a3e100e",
      "owner": "tnt_3a9759864ccb4e00",
      "name": "sample-webhook-1791867412840-b05e8a",
      "description": "",
      "labels": {
        "namespace": "docs-samples"
      },
      "target": "docs-samples/sample-scripts-1791867412840-b05e8a@1.0.0",
      "input": {},
      "kind": "webhook",
      "schedule": null,
      "timezone": "UTC",
      "start_at": null,
      "end_at": null,
      "overlap": "skip",
      "catchup_window_seconds": 300,
      "webhook": {
        "input_mode": "body",
        "url_hint": "https://api-develop.deepraxis.ai/automation/v1/hooks/trg_00mv67mzzqa0d63b98d72446dd9d1331051a3e100e/…"
      },
      "state": "paused",
      "source": "api",
      "created_by": {
        "type": "api_key",
        "id": "key_3e00b8984967"
      },
      "created_by_user_id": "usr_49d4fcb99517",
      "next_fire_times": [],
      "last_firing": null,
      "counts": {
        "started": 0,
        "skipped": 0,
        "missed": 0,
        "failed": 0
      },
      "created_at": "2026-10-13T04:58:09.974Z",
      "updated_at": "2026-10-13T04:58:12.519Z",
      "etag": "etag_00mv67n1yf40e7b8d39ce5459d9ce835bfb1083701"
    }
  ],
  "next_cursor": null
}

错误码

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

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

导出

本页内容