@ agentskit/ eval (英语)
简介 : concise-package
以数字衡量剂质量,而不是气息——有自信的船.
标记 : ai • 妇女 agents • 妇女 llm • 妇女 agentskit • 妇女 ai-agents • 妇女 eval • 妇女 evaluation • 妇女 benchmarking • 妇女 testing • 妇女 ci-cd • 妇女 llm-testing
已核实的证据
- 软件包元数据和测试在
packages/eval/。 。 。 . - 软件包指南 : https://www.agentskit.io/docs/参考资料/packages/eval
- 稳定地图: 文件/服务.md
如何适应生态系统
@agentskit/eval是质量层:重放代理运行,比较输出,快照行为,在用户之前抓取回归.
- 探员Kit:与本回购中的其他包一起作曲,从可互换的小零件来构建代理.
- 书记官处: 查找已使用此图层的即时代理和模板 登记. agentskit.io。 。 。 .
- 游戏本: 学习本层背后的生产模式 游戏本. agentskit.io。 。 。 .
为什么爱瓦尔
- 用真正的衡量标准取代“似乎可行” 准确性、每个案件的延迟性、可选的符号使用,以及单个结果对象每个测试案例的通过/失败
- CI/CD 备妥 ——出站代码反映套接字结果;门在精度阈值上布置,使回归永远无法被生产
- 灵活主张 ——用自定义进行子字符串匹配或完全控制
(result) => boolean每个案件的上游 - 提供者不可知论 - 那个
agent关闭可以覆盖任意同步边界 :createRuntime,自定义控制器,或 HTTP 端点 - 失败隔离 ——反应不当,代理失败,断言失败成为失败案例而未终止套件
安装
npm install @agentskit/eval
快速实例
import { runEval } from '@agentskit/eval'
import { createRuntime } from '@agentskit/runtime'
import { anthropic } from '@agentskit/adapters'
const runtime = createRuntime({
adapter: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY, model: 'claude-sonnet-4-6' }),
})
const result = await runEval({
agent: async (input) => {
const r = await runtime.run(input)
return r.content
},
suite: {
name: 'qa-baseline',
cases: [
{ input: 'What is 2+2?', expected: '4' },
{ input: 'Capital of France?', expected: 'Paris' },
{ input: 'Is TypeScript a superset of JavaScript?', expected: (r) => r.toLowerCase().includes('yes') },
],
},
})
console.log(`Accuracy: ${(result.accuracy * 100).toFixed(1)}%`)
console.log(`Passed: ${result.passed}/${result.totalCases}`)
特征
runEval({ agent, suite })运行一个命名的测试套件以对抗任何代理功能- 结果 :
{ accuracy, passed, totalCases, cases[] }个案延迟和结果 - 请求模式:精确匹配,
includes,自定义上游 - CI 出站代码——输油管标注故障时为零
- 与
@agentskit/observability以追踪失败的案例
结果记录
使用 @agentskit/eval/provenance 在不运行代理的情况下保留基准身份和衡量标准:
import { createResultRecord, serializeResultRecord, verifyResultRecord, precisionRecall } from '@agentskit/eval/provenance'
const record = createResultRecord({
suiteId: 'baseline',
caseSetDigest: 'a'.repeat(64), // SHA-256 of the frozen cases
subject: { revision: 'revision-1', digest: 'b'.repeat(64) },
runnerVersion: '1',
metrics: { measured: 2, unavailable: 1, invalid: 0, ...precisionRecall({ tp: 3, fp: 1, fn: 2 }) },
})
const saved = serializeResultRecord(record)
verifyResultRecord(JSON.parse(saved)) // true
ResultRecordInput 需要不为空 suiteId, (中文(简体) ), subject.revision,以及 runnerVersion, (中文(简体) ),
小写64字符 SHA-256 caseSetDigest 财务报告和审定财务报表 subject.digest和 JSON 参数
对象(ResultMetric 支持嵌入式阵列和对象。 创建快照输入 .
ResultRecord 添加 digest: SHA-256,UTF-8 RFC 8785 Canonic JSON 所有输入
字段除外 timestamp. 序列化包括摘要和可选时间戳.
关闭字节相同的重跑时间戳; 更改它不会使摘要失效 .
Core 的 Canonic JSON 语义应用: 未定义的对象字段被省略, 未定义
数组条目变为无效,非无限数字和周期被否决.
verifyResultRecord(unknown) 返回错误的出处或错配
消化,不要扔东西。 它检查完整性,而不是真实性,或者是否提供了
修订和文摘对应真实的文物. 能够重写记录的一方
并且其摘要可以产生另一个有效的记录.
precisionRecall({ tp, fp, fn }) 接受非负式安全整数并返回
{ precision, recall } 内 [0, 1]。零分母输出为零。 计算和单位
结果可以直接被存储在度量衡中;这些帮助者不会运行或判断案件.
决定重放
导入录音、回放、磁带序列化、时间旅行和比较 @agentskit/eval/replay。该条目对节点、浏览器、博览会和React Industrial来说是安全的;浏览器和本地软件包条件不包括文件系统代码.
将磁带粘接到磁盘的节点应用程序应当导入 saveCassette 财务报告和审定财务报表 loadCassette 从明确的节点唯一的子路径:
import { createCassette } from '@agentskit/eval/replay'
import { saveCassette, loadCassette } from '@agentskit/eval/replay/io'
await saveCassette('./fixtures/session.json', createCassette())
const cassette = await loadCassette('./fixtures/session.json')
原节点出口自 @agentskit/eval/replay 继续提供兼容性。 浏览器和本地建筑保留这些导出名称如此类型,运行时会保持对齐,但只使用节点诊断来拒绝。 这些主机应该结合 serializeCassette 或者说 parseCassette 他们自己的存储 API.
@agentskit/eval/snapshot 财务报告和审定财务报表 @agentskit/eval/ci 是面向节点的子路径,因为它们会写入文件并检查 CI 环境变量。 纯粹的比较帮助器在可以捆绑其条目的任何地方仍然可以调用,但浏览器应用程序不应该依赖于其文件系统的工作流程.
重放边界快照磁带、请求、块、日期和普通元数据。 更改直播请求或重放块不会重写录制的磁带 .
大脑信任生命周期
@agentskit/eval/braintrust 计算本地的分数。 何时 BRAINTRUST_API_KEY 或者说 options.apiKey 正在出现,它懒散地初始化了Braintust, 等待每一个实验日志,冲出实验,然后总结. 非致命的 SDK 故障按限定值返回 result.warnings;当地案件和摘要仍可提供.
默认排除了远程大小写字段 。 使用 options.upload 以明确允许选定的输入、输出、预期或元数据字段; 选定的数值上限为 maxFieldBytes (default 4096),和运行级元数据遵循相同的允许列表.
自定义计分器结果在运行时验证. 外部名称或分数不正确 [0, 1] 变成孤立 scorer_error 而不是腐蚀整体.
生态系统
| 软件包 | 作用 |
|---|---|
| @ agentskit/ 运行时间 | 正在测试的典型剂 |
| @ agentskit/ 核心 | 稳定一/O型机床合同 |
| @ agentskit/ 可观察性 | 失败的线索 |
贡献者
许可证
麻省理工学院——见 自由主义。 。 。 .
文档
成熟性和相容性
- 稳定性: β 语录 看到了吗 文件/服务.md
- 节点.js 20+ 财务报告和审定财务报表 类型脚本 严格模式
- 发表于
@agentskit/eval