failproofai-sdk 中,位于 failproofai_sdk.evaluator 下;导入 Tracing SDK 不会加载它。
编写评估
@app.eval(key, version=...)注册一个评估项。key是其结果的显示名称;每次逻辑变更时更新版本号,每条结果都会保留生成它的版本信息。单个 Worker 最多可持有 100 个评估项。result_kind默认为"score",除非您另行指定。对于"metric"或"assertion"类型的评估,请在metrics或assertions中以与 key 相同的名称命名对应条目,该条目即为其结果。when决定一个 Session 是否适用。返回ConditionResult(False, "<reason>")可跳过该 Session,原因会被记录。- 评估函数可以是普通函数或
async函数,timeout_seconds限制其执行时间。 - Payload 键——上面的
tool_name、response和content——由您的 Agent 发送的内容决定,请从真实 Session 中读取它们。
运行 Worker
在 Administration → Keys 下创建一个具有evaluations:run 权限的密钥,将其放入 FAILPROOFAI_EVALUATOR_TOKEN 环境变量——请从您的密钥存储中设置,而不是直接在命令中输入——然后启动 Worker:
__main__ 代码块,python -m failproofai_sdk.evaluator evaluator:app 效果相同。
结果类型
一个
EvalResult 至少包含一个 Score、Metric 或 Assertion,最多 25 个,每个都位于唯一的键下。
Session 对象
每个事件包含
id、ts、event_type 和 payload。
旧版 Evaluator
早期的 Evaluator SDK——由 Failproof AI 在EVALUATOR_ENDPOINT 调用的 HTTP 服务,响应 /evaluate 并通过 JobPending 轮询——已停止支持。请基于此 Worker 构建新的评估器;自托管实例的运营者若仍在使用旧版服务,可在过渡期内继续使用。
