事件驱动架构
事件驱动架构是系统组件通过事件的产生、检测、消费和响应来进行交互的设计范式。在 AI Agent 应用中,它是流式输出、工具调用状态同步和多层通信的基础模式。
#tech / dev / pattern
#type / concept
#status / evergreen
#tech / architecture
事件驱动架构的基本原理
事件驱动架构(Event-Driven Architecture)是一种软件设计范式,其中系统组件通过事件的产生、检测、消费和响应来进行交互。
- 事件(Event):代表系统中发生的任何重要事情或状态变化,如”任务创建”、“提醒触发”等
- 事件生产者(Event Producer):检测或生成事件的组件
- 事件消费者(Event Consumer):对事件作出反应的组件
- 事件通道(Event Channel):连接生产者和消费者的机制
在Todo和Reminder系统中,事件驱动模型可以将各种类型的任务和提醒统一抽象为”事件”,然后通过事件处理器来执行相应的操作。
这种设计避免了传统轮询(polling)方式的资源浪费,提高了系统效率。
标准化
触发条件
- 时间触发
流程
用户设置任务(单次、重复) —》 添加到 任务队列
任务时间到 —》 发送相应通知
弹窗模块监听通知 —》 执行弹窗
在 AI Agent 应用中的应用
AI Agent 应用是事件驱动架构的天然场景:
1. 流式输出
LLM 产生 token → 包装成 text_delta 事件 → SSE 推送到前端 → 前端逐字渲染。全链路都是事件驱动。
2. 工具调用状态同步
Agent 调用工具 → 产生 tool_call_start 事件 → 前端展示”正在搜索…” → 工具完成 → 产生 tool_call_result 事件 → 前端更新状态。
3. 多层通信
Python AI Service → Go 后端 → React 前端,每一层都是事件的生产者和消费者。事件契约(Event Contract)定义了事件的格式和语义。
4. Human-in-the-loop
Agent 需要审批 → 产生 interrupt 事件 → 前端展示审批界面 → 用户批准 → 产生 resume 事件 → Agent 恢复执行。
事件驱动 vs 请求-响应
| 请求-响应 | 事件驱动 | |
|---|---|---|
| 模式 | 同步,一问一答 | 异步,持续推送 |
| 适用 | 简单 CRUD | 流式输出、实时通知 |
| AI 场景 | 查询工具列表 | LLM 流式生成 |
Related notes
- 所属 MOC: 设计模式MOC, AI Agent Application MOC
- 相关概念: Deep Module
- AI 应用: 事件契约, AI 应用流式协议, SSE