Skip to content
FunCoding

Search

Search docs, Skills and MCP

Omni 条件与派生链

设置固定策略、三值条件、产物选择器和有界的媒体处理链。

This page has not been translated into English yet. The original Chinese version is shown below.

以下字段属于 omni 实验分支的 processing.fixedPolicies。先确定哪些资源应处理,再选工具和产物去向;不要将它当作能执行任意代码的自动化语言。

策略身份与顺序

策略 ID 匹配 ^[A-Za-z0-9][A-Za-z0-9._-]*$。同名值设为 null 可以删除低层合并来的固定策略;传输守卫另有不可删除规则。

priority 默认 0,按数值从高到低执行,同分按 ID 升序。mediaTypes 必填且非空,可选 image、video、audio。origins 默认 user 和 tool;派生资源属于 policy,需要显式接收。

执行控制

字段默认与行为
when不设则总是匹配
onConditionUnavailableskip;也接受 run,保留设计值 abortTurn 当前会被拒绝
toolName必填,必须是已注册策略工具;被 tools.disabled 排除的工具不可引用
arguments空对象,按工具设置 schema 校验
maxRunsPerLineage1,限制同一资源谱系的同一策略次数
onFailurecontinue,可设 abort 中止该根资源处理
output.reprocessMediafalse,开启后派生媒体再次匹配策略
output.sourceomit,用派生结果替换源;keep 同时保留源
output.artifacts默认所有产物 include

inputPath、outputDir、resourceId 由编排器注入,不能在固定 arguments 中手填。未知键会报错。abort 的范围是当前根资源处理,不应自行扩写为关闭整个会话。

条件表达式

例如只处理超过二十分钟且不少于 1MiB 的音视频:

[
  "all",
  [">", ["field", "resource.durationMs"], 1200000],
  [">=", ["field", "resource.sizeBytes"], 1048576]
]

比较支持 >、>=、<、<=、==、!=,两个操作数为字段引用或数字/字符串/布尔字面量,排序比较要求数字。all、any、! 组合条件;不支持任意 JavaScript、JSONPath 或通用嵌套求值。

resource 可读 sizeBytes、durationMs、width、height、maxWidth、maxHeight、frameRate、frameCount、bitRate、sampleRateHz、channels、estimatedTokenCount。maxWidth/maxHeight 是宽高别名。

session 可读 contextWindowTokens、promptTokenCount、reservedOutputTokens、availableContextTokens。request.totalEstimatedMediaTokens 是当前 pass 中该资源及派生物的估算,按资源分别计算,不是本次全部附件之和。

未知条件不是 false

无法探测字段时得到 unavailable。all 中存在确定 false 则为 false;any 中存在确定 true 则为 true;其余不确定性继续向上传递,最后由 onConditionUnavailable 决定跳过或执行,并记录缺少哪些字段。

memory.hasTranscript、hasOcr、hasCaption、hasSummary、hasKeyframes、hasClip 用 1/0 表示资源媒体记忆中的已存在产物,覆盖派生链。记忆关闭、没有绑定或存储不可读时为 unavailable,不能按“还没转写”处理。

派生链与产物去向

要让视频抽出的音轨继续压缩和转写,上游设 output.reprocessMedia:true,下游 origins 包含 policy。若开启重新处理却没有任何策略接受 policy,启动校验会拒绝这条无出口的链。

output.artifacts 使用 role:transcript、kind:image 或 * 选择器,优先级 role 高于 kind 高于 *。include 加入投递集,retain 只存储不发送。显式映射中未匹配的产物按 retain 处理;选择器指向工具不可能生成的种类或角色会报错。

链还受最大深度、每根资源总执行次数和派生字节预算约束。source:keep 会继续保留原媒体,不适合希望真正降低最终投递体积的所有步骤;结合传输守卫检查结果。