接收事件并触发自动化任务

要让第三方事件启动智能体,需要同时配置四项内容:支持回调的通道实例、公开回调地址、callback 类型自动化任务和回调规则。任意一项缺失,都不会形成历史记录。

开始之前

请先完成:

  1. 配置并测试通道实例,保存 credential_refcallback_path

  2. 创建自动化任务,将 trigger.mode 设为 callback

  3. 从第三方平台文档确认其地址验证、签名、重试和事件字段。

企业微信、GitHub、飞书和 Slack 可以使用公开事件回调入口。其他通道实例可能用于工具凭据或系统智能体配置,不应据此推断它们支持入站事件。

1. 配置公开回调地址

通道实例返回的 callback_path 形如:

/newmoi/callbacks/{provider}/{workspace_id}/{credential_ref}

将它与当前 Product API 的协议和主机组合后,配置到第三方平台。公开入口接受 Provider 的地址验证和事件请求,不使用 X-API-Key;平台会根据路径中的工作区和凭据引用找到通道配置,再按 Provider 协议验证签名和解析事件。

不要自行缩短路径、替换 credential_ref,也不要把第三方 Secret 放进 URL。

2. 创建回调规则

下面把飞书消息事件路由到一个回调类型自动化任务:

curl -X POST \
  "$PRODUCT_API_BASE_URL/workspaces/$WORKSPACE_ID/callback-rules" \
  -H "X-API-Key: $PRODUCT_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "feishu",
    "credential_ref": "<CREDENTIAL_REF>",
    "name": "feishu-message-to-support-agent",
    "description": "Route received messages to the support automation task.",
    "enabled": true,
    "priority": 100,
    "match": {
      "event_types": ["im.message.receive_v1"]
    },
    "target_type": "agent_automation_task",
    "target_config": {
      "automation_task_id": "<AUTOMATION_TASK_ID>"
    },
    "stop_after_match": true
  }'

providercredential_ref 必须与通道实例一致。match 可以按资源类型、事件类型、事件动作或字段相等条件筛选;这些值来自 Provider 解析后的事件,不同 Provider 不能共用一套事件名称。

3. 验证端到端链路

从第三方平台发送一个可识别的测试事件,然后按顺序检查:

  1. Provider 后台是否显示投递成功;

  2. 通道实例和凭据是否仍处于可用状态;

  3. 回调规则是否启用,Provider、凭据引用和匹配条件是否正确;

  4. 目标自动化任务是否为活动状态且触发模式为 callback

  5. 是否出现 trigger_type=callback 的历史记录;

  6. 运行是否进入终态,并能读取结果或错误。

不要用公开回调入口的 HTTP 接收成功代替业务成功判断。事件可能已接收,但没有规则匹配,或者目标任务运行失败。

规则优先级和停止条件

多条规则可能匹配同一事件。priority 决定评估顺序,stop_after_match=true 表示命中后停止继续匹配。建立多条规则前先定义清楚是否允许一个事件启动多个任务,避免重复副作用。

更新规则时必须携带当前 version。若发生版本冲突,重新读取规则并合并修改。停用规则适合临时停止路由;删除规则前应保留所需的配置记录。

下一步

最后更新于