用途:处理动态任务图场景——由模型或应用提交 DAG 数据,完成规划、校验、剪枝、解析到处理器并执行。TaskDAG 是 Agently 的 DAG 基础能力,Dynamic Task 是其规划与执行的兼容便利门面,内部编译到 TriggerFlow。
主要能力:支持提交式 DAG(plan=TaskDAG 或字典)、配置式 DAG(TaskDAG.from_yaml/from_json,可用 task_dag_key_path 选取子图)、自动规划 DAG(planner= 生成,model= 执行)。校验器会拒绝重复 id、缺失依赖、环、不支持的任务类型、schema 版本不匹配、不安全副作用策略及未知必需处理器;不影响必需语义输出的未知可选处理器可被剪枝。
使用方式:普通应用代码用 Agently.create_dynamic_task(...);需要分阶段控制时拆分为 AgentlyTaskDAGPlanner、TaskDAGValidator、TaskDAGResolver、TaskDAGExecutor;需要 Blocks 生命周期证据时用 TaskDAGExecutor.compile_blocks(...) 或 async_run_blocks(...),默认 async_run(...) 直接编译到 TriggerFlow。输入占位符:${INIT}、${DEPS.task_id.path}、${STATE...}、${TRIGGER...},整串占位符保留原类型,缺失路径执行时失败关闭。处理器命名建议以 _handler 结尾。
适用场景:需要模型生成或应用提交任务图、并做校验与执行的流程编排。
限制:不要为提交的 DAG 手写调度器;不要用 json.loads 等解析模型文本,应使用 Agently 输出 schema;默认不向规划器暴露 actions/skills;不要把 Dynamic Task 当作 AgentTask 生命周期所有者;不要将 Blocks 视为 TaskDAG 执行必需。