自动化规则
通过过滤、采样和动作规则自动路由进入的智能体轨迹。Potato 会对每条进入的轨迹运行各条规则,将其路由到标注队列、整理进数据集、运行评估器、触发 webhook 或通知标注者。
自动化规则打通了从生产到评估的闭环:一条可编程的 filter → sampling rate → actions 流水线会对每个进入 Potato 的条目运行,无论条目是从数据文件加载,还是在运行时通过轨迹 webhook 或追踪 SDK 摄入。每条匹配的规则都可以将条目路由到标注队列、整理进评估数据集、运行评估器、触发出站 webhook,或通知标注者。
启用
yaml
automation:
enabled: true
rules:
- name: route-errors
when: {field: status, in: [error, failed]}
sample_rate: 1.0 # 0.0–1.0 (default 1.0 = every match)
actions:
- {type: add_to_queue, priority: 100, reason: "Agent errored"}
- {type: add_to_dataset, dataset: errors-to-fix}
- {type: run_evaluator, evaluator: trajectory_match}
- {type: fire_webhook, url: "https://example.com/hook"}
- {type: notify, message: "New error trace"}规则何时触发
一条规则在两个条件同时成立时触发:
when匹配 —— 使用共享的条件语法(与分诊相同):equals、in、contains、exists、lt/lte/gt/gte,以及点号字段路径(metadata.score)。条件列表按 AND 组合;空的when匹配一切。sample_rate选中它 —— 基于(item id, rule name)哈希的确定性采样,因此重新处理同一条目会得到相同的决定(幂等、可安全重放)。
动作
| 动作 | 运行时机 | 效果 |
|---|---|---|
add_to_queue | 内联(快速) | 提升条目的分诊优先级,使其优先出现 |
add_to_dataset | 内联(快速) | 将条目作为示例追加到数据集 |
notify | 内联(快速) | 通过 SSE 通知已连接的标注者 |
run_evaluator | 后台工作进程 | 用评估器为条目打分;分数存储在条目上 |
fire_webhook | 后台工作进程 | 向外部 URL 以 POST 发送 {rule, item_id, item_data} |
快速动作在摄入路径中内联执行。重型动作(run_evaluator、fire_webhook)交给后台工作进程,因此摄入永远不会等待外部调用。每个动作都会记录结果,失败会被捕获而不是抛出,所以一条写坏的规则不会破坏摄入。
查看状态
管理面板链接到 Automation(/admin/automation),显示已配置的规则、活动计数器和最近的动作结果(也可通过 /admin/automation/status 和 /admin/automation/outcomes 以 JSON 获取)。
相关内容
- Read the Docs 上的完整参考 —— 所有动作类型和条件语法,与版本匹配
- 数据集与实验 ——
add_to_dataset的目标 - 程序化评估器 ——
run_evaluator - 分诊队列 —— 共享同一套条件语法
- 追踪 SDK —— 进入轨迹的来源之一