Jetty
快速开始
在现有 Flue 项目中安装 Jetty TypeScript SDK:
pnpm add @jetty/sdk
Jetty 不使用 flue add 蓝图。请遵循 Jetty 的 Flue 集成指南 创建并部署评估运行手册,然后从工作流脚本中调用 SDK。
概述
Jetty 可以评估 Flue 智能体产生的输出,并将评估任务存储为轨迹。该轨迹上的标签可以记录分数、通过/失败结果、评估配置以及你想要跨版本比较的其他维度。
以下 Node.js 脚本在进程内启动 Flue 运行时,提示其智能体,将回复发送到单独配置的 Jetty 评估器,并打印评估结果及其 Jetty 轨迹 ID:
import { init } from '@flue/runtime';
import { start } from '@flue/runtime/node';
import { gradeWithJetty, JettyClient } from '@jetty/sdk';
import { Triage } from '../src/agents/triage.ts';
interface TriageGrade {
total: number;
pass: boolean;
}
const ticket = process.argv[2] ?? 'Summarize this support request.';
const jetty = new JettyClient();
await using flue = await start({ agents: [Triage] });
const agent = init(Triage, { id: `evaluate-${Date.now()}` });
const receipt = await agent.dispatch(ticket);
const reply = await agent.read(receipt);
const { grade, trajectoryId } = await gradeWithJetty<TriageGrade>(
jetty,
process.env.JETTY_COLLECTION!,
process.env.JETTY_GRADE_TASK!,
{
files: [
{
filename: 'case.json',
data: JSON.stringify({ ticket, response: reply.text }),
},
],
useTrialKeys: process.env.JETTY_USE_TRIAL_KEYS === 'true',
labels: (result) => ({
'eval.grade': String(result.total),
'eval.pass': String(result.pass),
}),
},
);
console.log(JSON.stringify({ grade, trajectoryId }, null, 2));评估运行手册必须产生 gradeWithJetty(...) 期望的 grade.json 文件。保持评估器与被评估的智能体分开,以便更改智能体不会默默更改其评分标准。
配置
| 变量 | 用途 |
|---|---|
JETTY_API_TOKEN | 必需 - 认证 Jetty SDK。SDK 也可以读取 ~/.config/jetty/token。 |
JETTY_COLLECTION | 必需 - 标识拥有评估任务的集合。 |
JETTY_GRADE_TASK | 必需 - 标识已部署的评估任务。 |
JETTY_USE_TRIAL_KEYS | 可选 - 设置为 true 以使用 Jetty 的试用模型密钥进行评估任务。 |
Flue 智能体仍然需要模型提供商凭证,这些凭证来自进程环境。Jetty 凭证配置单独的评估操作。
@jetty/sdk 和 start() 都需要 Node.js。要评估已部署的智能体(包括 Cloudflare 目标上的智能体),请使用 Agent SDK 通过 HTTP 提示它,并从任何 Node.js 进程将回复传递给相同的 gradeWithJetty(...) 调用。
保护敏感内容
Jetty 轨迹可以持久化用于评估的文件、步骤输入和输出。在将智能体输出发送到 Jetty 之前,请编辑凭证、个人信息和其他敏感内容。使用 Jetty 的密钥参数存储评估运行手册所需的凭证,而不是将它们包含在持久化的初始化参数或上传文件中。
在评估生产内容之前,请审查 Jetty 的保留、访问、隐私和合规控制。
验证
按照 Jetty 的集成指南部署评估运行手册,配置所需的环境变量,并运行脚本:
node scripts/evaluate-triage.ts "Summarize this support request."
确认脚本打印预期的评估结果和轨迹 ID,然后在 Jetty 中检查轨迹以验证其标签和捕获的内容。
后续步骤
有关选择案例、确定性断言和基于模型的评判器,请参阅评估,
有关此处使用的脚本表面(从 flue run 一次性运行到持久化编排),请参阅工作流。Flue 的 Vitest Evals 集成提供了通过 Vitest 运行断言和评判器的替代方案,而 Jetty 将每个评估任务存储为可比较的轨迹。