ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AgentField Triggers完全指南:用GitHub、Slack、Stripe与Cron自动触发AI Agent

AgentField Triggers完全指南:用GitHub、Slack、Stripe与Cron自动触发AI Agent AgentField Triggers完全指南用GitHub、Slack、Stripe与Cron自动触发AI Agent【免费下载链接】agentfieldBuild, run and scale AI agents like API and microservices项目地址: https://gitcode.com/gh_mirrors/ag/agentfieldAgentField Triggers是 AgentField 控制平面的事件驱动系统把 GitHub Webhook、Slack 消息、Stripe 支付回调和 Cron 定时任务统一接入你的 AI Agent。外部事件一到Agent 立即被唤醒执行任务——无需轮询、无需自建消息队列一个装饰器就能完成绑定。本指南面向新手带你从零跑通官方 Demo看懂事件流转管线并学会在自己写的 Agent 中接入这四种触发源。什么是 AgentField Triggers传统做法里你想让 AI 响应外部事件需要自己写 Webhook 服务器、验签、去重、重试……AgentField 把这些全部内置了。它的核心是一个Source 插件系统源码位于 source.go目前内置 6 个插件触发源类型典型用途是否需密钥githubWebhookPR / Issue 触发 AI 审查与摘要✅stripeWebhook支付成功触发履约、开票、通知✅slackWebhook频道消息触发 AI 助手回复✅cron定时调度每分钟/每天定时巡检、日报❌generic_hmacWebhook任意 HMAC-SHA256 签名服务商✅generic_bearerWebhook任意 Bearer Token 鉴权接口✅每个触发器都有一个公共接收 URLPOST /sources/trigger_id把它填进对应服务商的后台即可。事件验签通过后会被持久化、去重然后分发给你在 Agent 里声明的 reasoner。触发事件如何流转一图看懂理解 AgentField Triggers 的关键是这条管线官方 Demo 文档中有更细的流程图见 triggers-demo/README.mdGitHub / Stripe / Slack 服务商 │ 签名 Webhook ▼ POST /sources/trigger_id ← 公共接收 URL │ ▼ 控制平面验签 → 按事件类型过滤 → 幂等去重 → 持久化 │ 附加 X-Trigger-ID / X-Source-Name 等头 ▼ 你的 Agent reasonerSDK 自动解包事件 注入 TriggerContext │ ▼ UI 实时推送事件列表、Run 详情、Dashboard 指标三个值得新手注意的设计验签失败返回 401主流服务商收到 4xx 不会重试伪造请求会被直接挡在门外持久化成功即返回 200即使后续分发失败事件也已安全落库可手动重放Replay幂等去重按(来源, 服务商事件ID)去重服务商重复投递同一事件时只处理一次。快速开始5 分钟跑通官方 Demo仓库自带一个examples/triggers-demo一个 Python Agent 绑定了 Stripe、GitHubPR Issue、Cron 三类触发器外加 UI 侧创建的 Slack / HMAC / Bearer 三个触发器是体验 AgentField Triggers 最快的方式。# 克隆仓库 git clone https://gitcode.com/gh_mirrors/ag/agentfield cd agentfield/examples/triggers-demo # 1. 启动控制平面8080 示例 Agent8001 docker compose up --build -d # 2. 打开触发器管理页 open http://localhost:8080/ui/triggers # 3. 发送一条带签名的 Stripe GitHub 测试事件 ./scripts/fire-events.sh约 30 秒后打开/ui/triggers你会看到 4 个code触发器代码声明带code徽章运行fire-events.sh后再出现 3 个ui触发器。点击任意一行右侧 Sheet 会以 SSE 实时流展示事件明细。完整说明见 triggers-demo 文档 与 fire-events.sh。在自己的 Agent 里声明触发器两种写法AgentField Python SDK 提供两种等价写法装饰器与类型化声明定义见 triggers.py。Agent 启动注册时控制平面会自动为每个绑定创建触发器行并返回公共 URL——你不需要自己部署任何 Webhook 服务。写法一装饰器推荐新手app.reasoner() on_event(sourcegithub, types[pull_request], secret_envGITHUB_WEBHOOK_SECRET) async def handle_pr(event: dict, trigger: TriggerContext | None None): ... app.reasoner() on_schedule(* * * * *) # 每分钟触发 async def handle_tick(_input, trigger: TriggerContext | None None): ...写法二类型化声明app.reasoner(triggers[ EventTrigger( sourcestripe, types[payment_intent.succeeded], secret_envSTRIPE_WEBHOOK_SECRET, transform_stripe_to_payment, # 可选清洗嵌套 payload ), ]) async def handle_payment(payment: dict, trigger: TriggerContext | None None): ...两个新手要点types支持前缀匹配写pull_request即可匹配pull_request.opened、pull_request.closed等所有动作函数参数里名为trigger的参数会自动注入TriggerContext包含事件来源、事件 ID、服务商幂等键、接收时间等元信息。完整可运行示例见 triggers-demo/agent.py。四大触发源逐一上手1️⃣ GitHub 触发PR 审查、Issue 自动摘要GitHub 源校验X-Hub-Signature-256HMAC-SHA256从X-GitHub-Event读取事件类型、从X-GitHub-Delivery读取幂等键实现见 github.go。配置步骤在/ui/triggers页面复制 GitHub 触发器的公共 URL若服务在内网先用隧道工具如 ngrok暴露 8080 端口进入仓库 Settings → Webhooks粘贴 URLSecret 填你控制平面环境变量里的密钥勾选pull_request/issues事件。典型场景新 PR 一提交Agent 立即读取 diff 生成审查意见新 Issue 一打开Agent 调用 LLM 产出 2-3 句摘要写入记忆方便值班同学快速分诊。2️⃣ Stripe 触发支付成功自动履约Stripe 源按官方方案校验Stripe-Signature头t时间戳,v1HMAC实现见 stripe.go默认时间戳容差 300 秒防重放。绑定示例来自官方 DemoEventTrigger(sourcestripe, types[payment_intent.succeeded], secret_envSTRIPE_DEMO_SECRET, transform_stripe_to_payment)transform是个同步小函数把 Stripe 深层嵌套的 payload 拍平成 reasoner 真正需要的字段金额、币种、客户、状态保持业务代码干净。把公共 URL 填进 Stripe Dashboard 的 Webhook 配置支付成功瞬间 Agent 就能开票、发通知或触发发货流程。3️⃣ Slack 触发把 AI 装进工作频道Slack 源实现 Events API 的签名校验X-Slack-Signature: v0HMAC 时间戳容差实现见 slack.go。在 Slack 后台把 AgentField 的公共 URL 填为事件订阅地址后频道里 机器人 的消息就会驱动你的 reasoner。这是做团队内 AI 助手最直接的路径。4️⃣ Cron 触发给 Agent 定时任务Cron 源运行在控制平面内部LoopSource 类型实现见 cron.go到点自动向你的 reasoner 派发一个tick事件——Agent 侧收到的分发形态和 Webhook 完全一致业务代码无需任何区分。表达式为标准 5 字段分 时 日 月 周支持*、区间、列表、步长如*/5默认时区 UTC通过 IANA 时区名指定时区如timezoneAsia/Shanghai不支持hourly等特殊语法写标准表达式即可。常见玩法每分钟巡检队列、每小时汇总用量、每天早 9 点生成日报推回 Slack。在 UI 里管理触发器与追踪事件触发器在 UI 中有 7 个触点最常使用的是/ui/triggers主列表页顶部是 6 个内置 Source 的插件条下方是可按关键词过滤的触发器表格每行显示公共 URL一键复制、密钥状态、启用开关、24 小时事件数。点击一行打开右侧 Sheet四个标签页值得新手逐一熟悉EventsSSE 实时事件流每行可展开查看验签卡片、Raw / Normalized / Headers 三标签的 Payload 查看器以及Replay重放按钮——分发失败的事件可以一键重试Configuration触发器配置 JSON代码声明的只读Secrets密钥环境变量是否已设置的可视化状态Dispatch logs分发日志。事件触发后产生的 Run 会在/ui/runs打上来源徽章如↪ Stripe、↪ Cron点进 Run 详情顶部还有 Trigger 卡片展示 webhook 原始输入和回链。Dashboard 上还有Inbound events (24h)指标卡实时显示事件量、分发成功率以及死信队列DLQ深度告警。可靠性设计这些细节让你放心上生产机制行为签名校验每个 Source 用官方签名方案验签失败返回 401服务商不再重试防重放Stripe/Slack/generic_hmac 均支持时间戳容差默认 300 秒幂等去重按(来源, 事件ID)去重重复投递只处理一次事件类型过滤未匹配event_types的事件会附带原因返回方便排查配置持久化优先事件先落库再分发失败进 DLQ支持 UI 手动重放更多细节可查阅 triggers.go 的公共接入端点实现以及 029_create_triggers.sql、032_inbound_event_replay_of.sql 等迁移文件。常见问题 FAQQ控制平面在内网GitHub/Stripe 怎么访问用隧道工具如 ngrok暴露 8080 端口把隧道地址 /sources/trigger_id填进服务商后台即可事件走的是同一条管线。Q一个 reasoner 能绑定多个触发源吗可以。triggers[...]列表里放多个EventTrigger/ScheduleTrigger即可控制平面会为每个绑定各建一行触发器。Q事件被去重或过滤了怎么知道原因接入端点的响应体会明确列出被过滤事件的类型与原因如event_type not in trigger filter以及去重计数不必翻服务端日志。Q没有 Stripe / GitHub 账号能体验吗可以。fire-events.sh会在本地发送带正确签名的合成事件完整走一遍验签→去重→分发链路。延伸阅读完整 Demo 文档examples/triggers-demo/README.mdSDK 触发器类型定义sdk/python/agentfield/triggers.pySource 插件接口与注册机制control-plane/internal/sources/source.go演示 Agent 全量代码examples/triggers-demo/agent.py事件处理 HTTP 层control-plane/internal/handlers/triggers.go前端 TypeScript 触发器封装sdk/typescript/src/【免费下载链接】agentfieldBuild, run and scale AI agents like API and microservices项目地址: https://gitcode.com/gh_mirrors/ag/agentfield创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表