Skip to content

TriggerFlow 概览

TriggerFlow 不是“更复杂的请求调用”,而是 Agently 用来处理显式流程、并发、等待、恢复、运行态事件的工作流层。

适合什么时候读

  • 你的问题已经不是一次请求能解决
  • 你需要阶段、分支、并发或等待恢复
  • 你希望流程本身可观察、可测试、可复盘

你会学到什么

  • 什么情况下应该升级到 TriggerFlow
  • TriggerFlow 的信号驱动心智模型
  • blueprint、execution、runtime state 之间的关系

TIP

TriggerFlow 的工程实践默认推荐 Async First:优先 async chunk、async_start(...)get_async_runtime_stream(...),以及在 chunk 内用 get_async_generator(type="instant") 消费模型结构化流式输出。

什么时候该升级

如果你已经出现这些特征,就别再把问题硬塞进单次请求:

  • 同一个任务分多个阶段执行
  • 需要显式条件分支或路由
  • 需要并发处理一组任务
  • 需要暂停、等待外部输入后再继续
  • 需要 runtime stream 或 execution save/load

TriggerFlow 心智模型

最小示例

python
from agently import TriggerFlow, TriggerFlowRuntimeData

flow = TriggerFlow()

@flow.chunk("normalize")
async def normalize(data: TriggerFlowRuntimeData):
    return str(data.value).strip()

@flow.chunk("greet")
async def greet(data: TriggerFlowRuntimeData):
    return f"Hello, {data.value}"

flow.to(normalize).to(greet).end()
print(flow.start(" Agently "))

上面这个最小例子保留同步入口,是为了先让你理解流程结构。只要流程进入真实服务场景,推荐马上切到:

  • async chunk handler
  • execution.async_start(...)
  • execution.get_async_runtime_stream(...)
  • 模型步骤中的 response.get_async_generator(type="instant")

推荐阅读顺序

  1. 核心概念
  2. 基本流程
  3. 事件与信号
  4. 运行态数据与收敛
  5. 运行时流
  6. 蓝图与复用
  7. 从 Token 输出到实时信号

常见误区

  • 只是输出控制不稳,就误以为需要 TriggerFlow。
  • 把 TriggerFlow 当成静态 DAG,而不是信号驱动 runtime。
  • 还没想清楚流程 owner layer,就先写了很多 node 和状态共享逻辑。

下一步去哪

相关案例

  • agently-triggerflow
  • agently-playbook