VoltAgent Actions  Triggers 完整指南:用触发器驱动 Agent,用 Action 连接外部系统
人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆【免费下载链接】voltagentAI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework项目地址https://gitcode.com/gh_mirrors/vo/voltagent点击查看免费下载VoltOps Actions Triggers 是 VoltAgent 中连接 Agent 与外部服务的关键能力Triggers决定 Agent 何时开始运行响应 Slack 消息、Gmail 邮件、数据库变更或 cron 定时任务Actions则将 Agent 的输出推送到外部系统发送消息、创建记录、调用 API。本文以 overview.md 为骨架结合 Triggers 文档、Actions 文档 与 核心源码带你从概念、配置到源码原理完整掌握事件驱动的 Agent 自动化体系。核心概念触发器与动作如何协同工作VoltOps 把事件驱动 Agent拆成两个互补的职责Triggers触发器决定 Agent 何时启动——响应消息、邮件、数据库变更或 cron 计划Actions动作把 Agent 输出推向外部系统——发送消息、创建记录、调用 API。两者共享 VoltOps 控制台中的同一套凭据系统你在控制台认证一次就能在触发器与动作中复用无需在代码里反复处理 API Token。一条完整的链路是外部事件被触发器探测到 → 触发器启动 Agent/Workflow 处理事件 → Agent 在处理过程中调用 Action 把结果写回 SaaS。当你需要把 Agent 输出向外推送到 SaaS 系统时就把 Triggers 与 Actions 配对使用——它们共享同一套凭据系统与可观测性能力。Triggers决定 Agent 何时运行Triggers 监控外部服务当事件发生时执行你的 Agent。在 Triggers 总览 中创建触发器由三个要素构成Trigger触发器——要连接的外部服务Slack、Gmail、Airtable、GitHub或 cron 计划Binding绑定——定义监控什么的配置监控哪个 channel、哪个 label、或哪条 scheduleTarget目标——触发时要执行的 Agent 或 Workflow。当外部事件发生如新的 Slack 消息或 Airtable 记录更新时触发器探测到事件Binding 检查事件是否匹配你的配置匹配则执行 Target。支持的 Trigger ProviderProviderDescriptionDelivery MethodSlackMonitor workspace messages and channelsWebhookGmailWatch for emails with specific labelsPollingGoogle CalendarReact to calendar events (created, updated, cancelled)PollingGoogle DriveDetect file or folder changesPollingAirtableDetect record changes in bases and tablesPollingGitHubRespond to repository events (PRs, issues, commits)WebhookScheduleExecute on cron expressionsTime-basedDelivery Method投递方式的含义Webhook 型触发器Slack、GitHub由外部平台主动把事件推送到你的端点Polling 型触发器Gmail、Google Calendar、Google Drive、Airtable由 VoltOps 按轮询间隔主动检查变更Schedule 型cron则纯按时间表达式执行。源码级原理createTriggers 的 DSL 是如何工作的在代码中注册触发器使用的是voltagent/core提供的createTriggersDSL。其实现位于 packages/core/src/triggers/dsl.tsimport { VoltAgent, createTriggers } from voltagent/core; new VoltAgent({ triggers: createTriggers((on) { on.airtable.recordCreated(({ payload }) { console.log(payload); }); }), });从源码看createTriggers(builder)接收一个以on为参数的构建函数dsl.ts它基于Proxy实现点访问语法dot-access syntaxon.airtable.recordCreated会在运行时解析airtable提供者与recordCreated事件提供者与事件名称必须存在于VoltOps 触发目录catalog中否则会抛出Trigger event xxx.yyy is not defined in the VoltOps catalog.之类的错误——目录定义在 catalog-data/default-trigger-catalog.ts例如 cron 事件的默认配置为*/5 * * * *、时区UTC具体事件枚举来自 github-events.ts 与 slack-events.ts最终返回一个VoltAgentTriggersConfigRecordstring, VoltAgentTriggerConfig每个事件注册一个处理器。事件处理器在 triggers/types.ts 中被定义为TriggerHandler接收包含payload、event、trigger、logger、headers、agentRegistry等字段的TriggerHandlerContext。处理器支持三种返回形式直接返回void默认响应、返回任意TriggerHandlerBody、或返回带status/body/headers的完整响应对象。路由的注册与规范化则由 triggers/registry.ts 中的TriggerRegistry完成每个注册的触发器会被分配一个 HTTP path默认方法为post支持get/post/put/patch/delete路径会经过规范化处理——例如airtable.recordCreated会被规范化为/triggers/airtable/recordCreated。这正是你在控制台里看到的默认端点路径的由来。典型的触发器应用场景触发器免去了手动执行 Agent 的繁琐让 Agent 对实时事件即时响应或按计划运行客户支持自动化当 Slack 频道出现新消息时运行情绪分析 Agent邮件处理用 AI 工作流自动分类和路由邮件数据库同步用数据处理 Agent 处理 Airtable 中新增或更新的记录CI/CD 集成GitHub 上打开 PR 时运行代码评审 Agent定时报告在指定时间用 AI Agent 生成并发送每日分析报告。Actions把 Agent 输出推向外部系统VoltOps Actions 提供受管理的集成Airtable、Gmail、Slack 等你可以从 Agent、Workflow 或 VoltOps API 触发它们。与其自己接线每个 SaaS API你只需在 Volt 控制台定义一次目标、连接凭据然后从 SDK 或 VoltAgent 工具中调用 Action即可获得完整的可观测性。详见 Actions 总览。支持的 Action ProviderProviderDescriptionAirtableCreate, update, and manage recordsSlackSend messages and notificationsDiscordSend messages to channelsGmailSend and manage emailsGoogle CalendarCreate and manage eventsGoogle DriveUpload and manage filesPostgresExecute database queries什么时候该用 Actions向外部系统交付数据把 Agent 输出同步到 Airtable、发送邮件、通知聊天应用或调用内部 HTTP 端点复用凭据终端用户只需在 Volt 中认证一次你的代码调用 Action 时无需再处理任何 API Token获得可观测性每次 Action 运行都会记录在 VoltOps 中包含 payload、metadata 和重试历史方便快速排查失败。Actions 的工作原理创建凭据在 Volt 控制台Settings → Integrations创建凭据Volt 安全存储 Provider token选择 Action选择 Action如 Airtable Create Record并配置默认值如 base/table ID调用 Action使用 VoltOps SDKVoltOpsClient调用或将其暴露为 VoltAgent 工具查看运行在控制台检查运行每次调用都展示请求与响应 payload、重试与错误信息。SDK 快速开始import { VoltOpsClient } from voltagent/core; const voltops new VoltOpsClient({ publicKey: process.env.VOLTAGENT_PUBLIC_KEY!, secretKey: process.env.VOLTAGENT_SECRET_KEY!, }); const record await voltops.actions.airtable.createRecord({ credential: { credentialId: cred_123 }, baseId: appAbCdEf123, tableId: tblXyZ987, fields: { Name: Ada Lovelace, Email: adaexample.com, Status: Ready, }, }); console.log(record.responsePayload); await voltops.actions.discord.sendMessage({ credential: { botToken: process.env.DISCORD_BOT_TOKEN! }, content: Inline credentials for the win!, });注意createRecord支持两种凭据方式credentialId引用控制台里已保存的凭据或直接在credential中内联传入apiKey/botToken等 Token。VoltOpsClient的默认baseUrl是https://api.voltagent.dev且内置了 prompt 缓存默认启用、TTL 5 分钟、最大 100 条实现见 voltops/client.ts。你还可以直接在控制台的 Actions 页面通过编辑 JSON payload 点击Run Test测试 Action——控制台后台调用的就是/actions/testAPI因此一旦 payload 在控制台调试通过你可以直接复制生成的 SDK 代码片段。在 Agent 与 Workflow 中使用 ActionsVoltAgent 运行时把每个 Action 当作一个工具。将它加入 Agent 的方式如下createTool来自voltagent/coreimport { createTool } from voltagent/core; import { VoltOpsClient } from voltagent/core; import { z } from zod; const voltops new VoltOpsClient({ publicKey: pk_xxx, secretKey: sk_xxx }); export const createCustomerRecord createTool({ name: createCustomerRecord, description: Create a CRM row in Airtable, parameters: z.object({ name: z.string(), email: z.string().email(), }), execute: async ({ name, email }) { return await voltops.actions.airtable.createRecord({ credential: { credentialId: process.env.AIRTABLE_CREDENTIAL_ID! }, baseId: process.env.AIRTABLE_BASE_ID!, tableId: process.env.AIRTABLE_TABLE_ID!, fields: { Name: name, Email: email }, }); }, });Agent 在规划阶段就可以调用createCustomerRecord而 VoltOps 会为每次调用保留不可变的日志request/response/metadata。VoltOpsActionsClient的实现位于 voltops/actions/client.ts其中airtable命名空间暴露了createRecord、updateRecord、deleteRecord、getRecord、listRecords等方法并有配套测试 client.spec.ts 验证请求构造与错误处理失败的请求会抛出携带status与details的VoltOpsActionError。端到端实战用 Airtable 触发器自动化 Agent下面以Airtable 触发器为例完整走一遍新建记录即触发 Agent的流程usage.md。同样的流程适用于 Slack、Gmail、GitHub、Schedule 等其他 Provider。前置条件拥有 VoltOps Console 访问权限、一个 VoltAgent 示例或你自己的 Agent、一个带有 base 与 Personal Access Token 的 Airtable 账户。Step 1创建 Trigger Connection在 VoltOps Triggers 页面点击Add Trigger选择 Airtable 提供者选择Record created事件然后点击New credential配置认证Connection Name为凭据命名如 Airtable credentialAuthentication选择Personal access tokenOAuth 2.0 同样受支持Access Token在 Airtable Token 创建页面生成一个新 Token需要以下 scopesdata.records:read data.records:write schema.bases:read粘贴 Token 后点击Save credentials进入触发器选项配置。Step 2配置 TriggerBinding指定要监控的 Airtable base、table 与 field这些设置决定触发器何时及如何触发Base选择你的 Airtable base如AI Model Experiment TrackerTable选择要监控新记录的 table如ExperimentsView可选选择要监控的特定视图Trigger Field选择标识记录创建时间的字段如createdTimePoll Interval设置检查新记录的间隔秒例如60——更小的值会增加 API 用量。点击Next检查设置然后以Draft草稿状态创建 binding。接下来需要添加 target 来激活它。Step 3添加 Target 以激活 Binding创建 binding 后点击Add Your First Target打开目标配置向导。目标配置是一个两步流程。Step 3.1为你的项目添加 Trigger Handler向导会显示一段需要复制到 VoltAgent 项目中的代码片段import { VoltAgent, createTriggers } from voltagent/core; new VoltAgent({ triggers: createTriggers((on) { on.airtable.recordCreated(({ payload }) { console.log(payload); }); }), });这段代码做了什么创建一个带触发器处理器的 VoltAgent 实例用createTriggers定义触发器事件处理器on.airtable.recordCreated注册 Airtable 记录创建事件的处理函数事件触发时接收触发器 payloadAirtable 记录数据。默认端点路径系统会根据触发器配置生成类似POST /triggers/airtable/recordCreated的端点路径。VoltAgent 会在你添加触发器处理器时自动创建该路由事件发生时触发器向该端点发送 HTTP 请求路径规范化逻辑见 registry.ts。添加完代码后① 确保 VoltAgent 服务器正在运行② 勾选Ive added the snippet to my project③ 点击Continue进入投递配置。Step 3.2配置 Delivery TargetGeneralTarget Name为此目标取一个描述性名称如Airtable trigger handler。Delivery — Destination三种选择Agent Servers已注册的服务器会显示名称与 URL。选择一台服务器来接收触发器事件。注册新服务器时提供Name如Production server、URLVoltAgent 服务器的根 URL如https://your-deployed-voltagent-server.com以及可选的Tags。本地开发时可用下方 Volt Tunnels 暴露本地服务器Volt Tunnels通过安全的 HTTPS 连接把本地开发服务器暴露到公网适合在不部署远程服务器的情况下测试触发器。若没有活跃隧道点击Start Local Tunnel打开设置弹窗弹窗会显示需要运行的命令pnpm volt tunnel 3141运行后会得到一个类似https://happy-cat-42.tunnel.voltagent.dev的安全 HTTPS URL将其作为投递目标。注意Core 用户可获得带自定义用户名的永久隧道 URL免费用户获得随机临时 URLCustom HTTPS URL把触发器事件发送到你自己的 webhook 端点。填写HTTPS URLVoltOps 会带重试与错误追踪把 payload 转发到此地址与HTTP method默认 POST也可选 PUT 或 PATCH。Endpoint Path指定 VoltAgent 监听此触发器的路径默认/triggers/airtable/recordCreated按 provider 与 event 自动生成如果你的处理器使用其他路径可以修改。Test Connection配置完投递目标与端点路径后点击Test Connection验证端点可达Endpoint is responding correctly端点已准备好接收触发器404 Not Found端点不存在确认已在 VoltAgent 项目中添加触发器处理器Connection failed请求失败并返回错误信息确保 VoltAgent 服务器正在运行且可访问。Delivery Preview测试连接区域下方会展示最终投递配置预览即完整的 URL 与 HTTP 方法POST {destination-url}{endpoint-path}例如POST http://localhost:3141/triggers/airtable/recordCreated。保存前确认它与你预期的端点一致。Advanced可选点击Advanced可为触发器请求添加自定义 HTTP 头如X-API-Key用于认证头或其他自定义元数据。配置完成后点击Create target保存投递目标binding 即可激活。Step 4激活 Binding 并测试在 Airtable base 中新增一条记录来测试触发器打开 Airtable base向被监控的 table 添加一条新记录填写触发字段如Label字段等待轮询间隔过去。回到 VoltOps Console从侧边栏进入Agents部分点击连接到触发器的 Agent即可查看由触发器处理的执行记录。你会看到展示触发器执行历史的图表并可通过Triggers与Add Trigger按钮管理或为 Agent 添加新触发器。Action 实战补充Airtable 作为 Agent 输出的目的地Airtable 是 Agent 输出最常见的去处之一——客户记录、研究笔记、摘要等。VoltOps 提供了受管理的 Airtable Actions让你无需直接接触 Airtable REST API 即可创建、更新、删除、列出和获取记录完整指南见 airtable.md。前置条件① 一个要写入的 Airtable base table② 一个带 API keyspk_…、sk_…的 Volt 项目③ 在 Volt 中创建 Airtable 凭据Settings → Integrations → Add Credential → Airtable粘贴 Airtable access token 后 Volt 会生成cred_xxx标识④ 建议把 base/table ID 存为环境变量AIRTABLE_CREDENTIAL_IDcred_xxx AIRTABLE_BASE_IDappxxxxxxxxxxxxxx AIRTABLE_TABLE_IDtblxxxxxxxxxxxxxx无存储凭据时可以直接把 access token 内联传入await voltops.actions.airtable.createRecord({ credential: { apiKey: process.env.AIRTABLE_API_KEY! }, baseId: process.env.AIRTABLE_BASE_ID!, tableId: process.env.AIRTABLE_TABLE_ID!, fields: { Name: Grace Hopper }, });每次调用都会出现在 Volt →Actions中带请求/响应 payload便于监控失败或在无需重新部署代码的情况下重跑特定 payload。调试要点Proxy/凭据不匹配确保 Volt 凭据与 Action 使用相同服务大小写敏感列 ID 与名称如果你倾向使用 Airtable 字段 ID可设置returnFieldsByFieldId: true默认返回易读的字段名分页listRecords支持与 Airtable REST API 一致的pageSize、offset、view、filterByFormula、sort参数VoltOps 直接透传可观测性在Volt → Actions → Runs查看 payload、metadata、重试与 provider 错误信息如INVALID_PERMISSIONS_OR_MODEL_NOT_FOUND。下一步按 Triggers 使用文档 的步骤创建与管理你的第一个触发器官方仓库还提供了可直接运行的 with-voltagent-actions 示例把 Airtable Action 封装成工具并配合控制台 UI 抽屉测试 payload参考 Actions Airtable 指南 完成具体 Provider 的端到端演练通过 VoltOps 接线更多集成并分享给 Agent 或 Workflow发布你自己的 Actions在 Volt →Actions中监控 Action 运行调试 payload、重跑失败项并与 Agent traces 关联分析。至此你已经掌握 VoltAgent 事件驱动体系的两大支柱用 Triggers 让 Agent 对外部事件随需而动用 Actions 让 Agent 输出有的放矢。结合控制台共享凭据体系与运行日志你可以低成本地把任意 SaaS 服务接入自己的 Agent 工作流。赞分享人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆【免费下载链接】voltagentAI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework项目地址https://gitcode.com/gh_mirrors/vo/voltagent点击查看免费下载相关推荐VoltAgent 实战用 Triggers 与 VoltOps Actions 构建 Airtable 事件驱动 AI AgentVoltAgent 实战用 Triggers 与 VoltOps Actions 构建 Airtable 事件驱动 AI Agent 导读 本指南围绕 Vol人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆Agent 工作流AI 评测MCP 服务MCP Clients语音Renovate 的 hexpm-bob Datasource从 hex.pm 构建产物获取 Elixir 与 Erlang/OTP 版本发布Renovate 的 hexpm bob Datasource从 hex.pm 构建产物获取 Elixir 与 Erlang/OTP 版本发布 导读 本文深入人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆Agent 工作流AI 评测MCP 服务MCP Clients语音VoltAgent A2A Server 实战指南用 JSON-RPC 把 VoltAgent Agent 暴露给外部 AgentVoltAgent A2A Server 实战指南用 JSON RPC 把 VoltAgent Agent 暴露给外部 Agent 本篇技术指南围绕 vol人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆Agent 工作流AI 评测MCP 服务MCP Clients语音上一篇抖音批量下载如何跑通一份实操教程下一篇3分钟掌握XIVLauncherFF14玩家的终极启动器完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考