触发器

触发器定义了工作流如何在 ADK Studio 中启动。每个工作流都以一个 Trigger 节点开始,该节点决定了入口点——无论是来自用户输入、一个 HTTP webhook、一个 cron 计划,还是一个外部事件。

触发器属性面板

触发器类型

类型描述用例
手动通过聊天输入由用户发起交互式代理、测试
WebhookHTTP 端点 (POST/GET)API 集成、CI/CD 流水线
计划基于 Cron 的定时定期报告、数据同步
事件外部系统事件微服务编排、事件驱动工作流

手动触发器

默认的触发器类型。当工作流具有手动触发器时,聊天输入框会显示一个可配置的标签和占位符。

配置:

属性类型默认值
inputLabelstring"输入您的消息"
defaultPromptstring"今天您能帮我用 ADK-Rust 构建什么?"

输入标签显示在聊天输入字段上方,默认提示用作占位符文本。


Webhook 触发器

暴露一个 HTTP 端点,在被调用时启动工作流。有助于与外部服务、CI/CD 管道或其他应用程序集成。

配置:

属性类型描述
pathstringURL 路径 (例如,/my-webhook)
methodGET, POST要接受的 HTTP 方法
authnone, bearer, api_key认证要求

端点

每个 webhook 触发器会创建两个端点:

端点行为
/api/projects/:id/webhook/*path异步 — 立即返回会话 ID
/api/projects/:id/webhook-exec/*path同步 — 等待工作流完成并返回结果

GET webhooks 也有效:

GET /api/projects/:id/webhook/my-path?message=Hello

认证

Bearer token:

curl -X POST "http://localhost:3000/api/projects/{id}/webhook/my-path" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message": "Process this"}'

API 密钥:

curl -X POST "http://localhost:3000/api/projects/{id}/webhook/my-path" \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "Process this"}'

Webhook 事件通知

通过 SSE 订阅实时 webhook 执行事件:

GET /api/projects/:id/webhook-events

此流在接收和处理 webhook 时发出事件。


计划触发器

使用 cron 表达式按重复计划运行工作流。

配置:

属性类型描述
cronstring5字段 cron 表达式
timezonestringIANA 时区 (例如,America/New_York)
defaultPromptstring?当计划触发时发送的输入文本

Cron 语法

标准的 5 字段 cron 表达式:

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *

示例:

Expression含义
* * * * *每一分钟
0 9 * * *每天上午 9:00
0 0 * * 0每周日午夜
0 */6 * * *每 6 小时
30 8 * * 1-5工作日上午 8:30

调度服务跟踪 last_executed 时间戳以防止重复运行。


事件触发器

根据外部系统事件启动工作流。事件通过 sourceeventType 进行匹配,并可选择对事件数据进行 JSONPath 过滤。

配置:

属性类型描述
sourcestring事件源标识符(例如,payment-service
eventTypestring要匹配的事件类型(例如,payment.completed
filterstring?用于过滤事件的 JSONPath 表达式

发送事件

curl -X POST "http://localhost:3000/api/projects/{id}/events" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "payment-service",
    "eventType": "payment.completed",
    "data": {
      "orderId": "12345",
      "amount": 99.00,
      "status": "active"
    }
  }'

JSONPath 过滤器

过滤事件,以便工作流仅在满足特定条件时触发:

过滤表达式匹配条件
$.data.status == 'active'状态字段等于 "active"
$.data.amount > 100金额超过 100
$.data.priority == 'high'优先级为 "high"

不符合过滤条件的事件将被静默忽略。


触发器感知运行按钮

Studio UI 会根据当前活动的触发器类型进行调整:

  • 手动 — 带有配置的标签和占位符的标准聊天输入
  • Webhook — 运行按钮发送模拟的 Webhook 有效负载
  • 计划 — 运行按钮发送配置的默认提示
  • 事件 — 运行按钮发送模拟的事件有效负载

当工作流自上次构建以来发生更改时,发送按钮会转换为构建按钮,以提示重新编译。


API 参考

端点方法描述
/api/projects/:id/webhook/*pathPOST, GET异步 webhook 触发器
/api/projects/:id/webhook-exec/*pathPOST同步 webhook 触发器 (等待结果)
/api/projects/:id/webhook-eventsGETSSE 流用于 webhook 通知
/api/projects/:id/eventsPOST事件触发器

上一页: ← 动作节点 | 下一页: 开发指南 →