match / case 路由分支
match / case 适合“输入值 -> 处理逻辑”的映射。
1. 固定值路由
python
from agently import TriggerFlow, TriggerFlowRuntimeData
flow = TriggerFlow()
@flow.chunk("low")
async def low(_: TriggerFlowRuntimeData):
return "priority: low"
@flow.chunk("medium")
async def medium(_: TriggerFlowRuntimeData):
return "priority: medium"
@flow.chunk("unknown")
async def unknown(_: TriggerFlowRuntimeData):
return "priority: unknown"
(
flow.to(lambda _: "medium")
.match()
.case("low")
.to(low)
.case("medium")
.to(medium)
.case_else()
.to(unknown)
.end_match()
.end()
)2. 命中模式
hit_first默认;首个命中就结束hit_all适合多标签命中、多分类扩散
3. 当前最佳实践
- 值映射优先用
match - 顺序优先判断优先用
if / elif / else - 需要配置导出时,case 条件函数使用具名函数
不再推荐
- 把非常复杂的业务副作用塞进 case 条件里
- 期待匿名
lambdacase 条件可导出 JSON/YAML