SuperAPI AI 工具集

flowing

编程与开发

查看项目

更新于 10-16 07:24

技能介绍

用途:当流程需要 3 个以上步骤、包含分支、重试或输入契约时,用 Python 任务组成有向无环图(DAG)来表达,而不是用自然语言步骤描述。运行器负责控制流,执行者只在任务节点上做判断。与 Claude Code 动态工作流不同:本技能是单上下文、针对自身工具调用的控制流,脚本本身做实际工作,二者可组合而非互斥。

主要能力:@task 定义任务,depends_on 声明依赖,依赖以同名关键字参数传入;Flow(terminal).run() 进行拓扑排序,逐层执行,同层独立任务用线程池并行(max_workers)。控制流原语:when= 条件门,谓词为假则 SKIPPED 并向下传播;validate= 边契约,体执行前校验依赖值,失败不重试;retry_until= 谓词驱动循环,返回假则按 retry= 预算重试,适合生成-校验-再生成的 LLM 步骤。其他:retry= 仅对抛异常重试并带指数退避、timeout_s=、fail_fast=、detached=True 让副作用任务不阻塞主流程;flow.resume() 与 flow.override(task, value) 支持同进程内从失败点恢复;journal_path= 启用内容寻址的持久日志(JSONL,按任务字节码及其 when/validate/retry_until 与依赖键链式计算 SHA-256),新容器中可重放未变前缀。

使用方式:从 flowing 导入 task、Flow;按上述装饰器写任务,调用 Flow(终点).run()。超出快速上手与三个原语的用法,应先读 references/reference.md。

适用场景:流程含关键分支、步骤有输入契约、LLM 步骤需收敛、3 个以上独立操作可并行、多步管道中后期失败不应浪费前期工作、副作用不应阻塞关键路径。

限制:单容器、基于线程池,不适用于异步或分布式工作流;单次顺序操作无需使用;若下一步需要基于前一步结果做无法谓词化的推理,应使用 think loop;持久日志依赖 pickle,不可序列化返回值会重新执行,闭包捕获值不参与键计算;同进程 resume 仅限同进程。资料未提供收费、价格、平台与效果信息。