ARTICLE DETAIL

资讯详情

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

如何用 OpenHuman 的触发器(Triggers)让新邮件和 GitHub Issue 自动触发 Agent 动作

如何用 OpenHuman 的触发器(Triggers)让新邮件和 GitHub Issue 自动触发 Agent 动作 如何用 OpenHuman 的触发器Triggers让新邮件和 GitHub Issue 自动触发 Agent 动作【免费下载链接】openhumanOpenHuman is an open source personal AI for Mac, Windows and Linux — local-first memory, agent orchestration, and deep research.项目地址: https://gitcode.com/GitHub_Trending/op/openhuman如果你的 Gmail 收件箱和你的 GitHub 仓库经常在你不盯着屏幕的时候进新消息OpenHuman 的 Triggers触发器管道可以做到连接好 Gmail 和 GitHub 之后GMAIL_NEW_GMAIL_MESSAGE新邮件和GITHUB_ISSUE_OPENED新 Issue这类事件会近乎实时地进入 OpenHuman由 triage分诊agent 自动判断该忽略、记录、还是真的跑一个 agent 动作全程不需要你手动发起。适用前提OpenHuman 默认运行在 backend-managed托管模式下——这是触发器能工作的前提在 direct 模式下触发器 webhook 需要你自己搭基础设施见文末限制。第一步连接 Gmail 和 GitHub触发器来自你已连接的集成。在应用的集成目录里分别找到 Gmail 和 GitHub点击Connect浏览器会打开 OAuth 页面登录授权后连接变为Connected状态相关的 trigger 订阅会自动接入无需手工配置 API key来源Third-party Integrations。连接 Gmail 时有一个 scope 细节值得注意来源Triggers新的 OpenHuman Gmail 授权会请求https://www.googleapis.com/auth/gmail.readonly这是GMAIL_NEW_GMAIL_MESSAGE订阅和原生 Gmail 同步读取新邮件元数据所必需的如果这个 Gmail 连接是在该 scope 引入之前建立的需要在 Settings 里重新连接 Gmail之后再启用 Gmail 触发器。GitHub 侧没有额外的 scope 要求连接后GITHUB_ISSUE_OPENED、GITHUB_PULL_REQUEST_OPENED这两个仓库事件即可触发。连接状态有三种Not connected未设置、Connected已激活并在同步、Manage可重配或断开随时可以在Connections页面撤销任一连接。触发事件到达后会发生什么webhook 不会以原始形式到达你的机器。完整链路是来源Triggers第三方 APIGmail / GitHub发出 webhookOpenHuman backend 持有 OAuth token、直接接收 webhook做 HMAC 校验并归一化 payloadbackend 通过既有认证 socket 以composio:trigger事件转发给你的 Rust corecore 在进程内事件总线发布DomainEvent::ComposioTriggerReceived每个触发器都先经过trigger_triageagent它从四个动作中恰好选一个动作结果文档给出的适用情形drop静默记录后丢弃垃圾、重复、无关噪声acknowledge写一条简短 memory 记录不跑 agent值得记住的被动通知reacttrigger_reactoragent 执行一两次工具调用单步小动作存一条记忆、记一条结构化事件escalate完整 orchestrator agent 接管做多步规划需要推理、多步骤或跨技能的任务例如草拟一封邮件回复并排队等你批准、为一个新 Issue 拉取上下文并写结构化评论对你的两个场景escalate路径的典型产物在文档中列举为为新邮件起草回复并进入你的批准队列为入站的 GitHub Issue 拉取相关上下文并写出结构化评论。react / escalate 动作都运行在你本机、针对本地 Memory Tree使用与其他 agent 相同的模型路由和工具面。triage 本身跑在快速模型档位上分类目标是亚秒级。如何验证触发器确实在工作文档承诺的审计方式是每一个触发器无论分类决定是什么都会写入 trigger history你可以看到什么到达过、分类器做了什么决定、如果有实际跑了什么。此外决定和升级会作为TriggerEvaluated/TriggerEscalated事件发布到进程内总线core 内的任何组件都可以订阅。在仓库代码里前端封装了这条查询路径composio.ts 中的openhumanComposioListTriggerHistory(limit 100)调用 RPCopenhuman.composio_list_trigger_history返回archive_dir、current_day_file以及条目列表每条记录包含received_at_ms、toolkit、trigger、metadata_id、metadata_uuid和payload。判断方法新邮件或新 Issue 到达后history 中应出现对应toolkit如gmail/github和trigger如GMAIL_NEW_GMAIL_MESSAGE/GITHUB_ISSUE_OPENED的条目——有条目说明事件已被接收并记录至于分类器走了drop/react/escalate哪条路由 history 里的决定记录体现。调整分类行为与整体关闭触发器默认开启集成连上之后其触发器自动进入管道。需要收敛行为时有两个入口来源Triggers 与 ComposioTriagePanel设置面板触发器 triage 设置面板已并入Connections页面的 Composio 区块底层 RPC 为update_composio_trigger_settings/get_composio_trigger_settings。面板提供两个控件Disable AI triage for all triggers开关打开后所有触发器不再跑 LLM 分类但文档同时说明 Triggers are still recorded to history: no LLM turn is run——即只保留被动记录按集成禁用的文本框输入逗号分隔的集成 slug例如gmail, slack不区分大小写只对指定集成关闭分类。输入内容会按下划线归一化为triage_disabled_toolkits列表点Save后通过update_composio_trigger_settings持久化。环境变量把OPENHUMAN_TRIGGER_TRIAGE_DISABLED设为1、true或yes会关闭 agent 分类、回退到纯被动记录集成本身保持连接只是抑制自动动作。例如在启动应用的 shell 中export OPENHUMAN_TRIGGER_TRIAGE_DISABLED1关闭分类不等于断开集成连接、auto-fetch 同步每 20 分钟一次都不受影响被抑制的只是自动动作行为。限制与边界direct 模式下触发器不可用如果你切到用自己的 Composio API key 的 direct 模式同步工具调用仍然工作但实时触发器 webhook 必须配置在你自己的 webhook 基础设施上ComposioPanel 源码注释明确说明 triggers dont work at all in direct mode。想让新邮件和 GitHub Issue 自动触发 agent请保持在默认 backend-managed 模式。隐私边界第三方 token 只存在于 backend从不在你的机器上webhook 先到 backend 做 HMAC 校验触发器 payload 由本地 core 处理分类与反应都运行在你本机。成本分层是设计意图连接一个 Gmail 账户每小时可能产生数十个触发器triage 存在的意义就是让drop免费、react便宜、只有值得的事才进入 orchestrator避免每个噪声事件都消耗编排预算。如果你希望深入实现细节仓库中的入口是triage agent 在 trigger_triage 指向的src/openhuman/agent/agents/trigger_triage/reactor 在src/openhuman/agent/agents/trigger_reactor/触发器历史持久化在src/openhuman/integrations/composio/trigger_history.rsComposio 总线订阅在src/openhuman/integrations/composio/bus.rs。【免费下载链接】openhumanOpenHuman is an open source personal AI for Mac, Windows and Linux — local-first memory, agent orchestration, and deep research.项目地址: https://gitcode.com/GitHub_Trending/op/openhuman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表