news 2026/9/12 16:53:41

Kilo 基准测试(Benchmarking)指南:从 Harbor Smoke Eval 到评估体系路线图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kilo 基准测试(Benchmarking)指南:从 Harbor Smoke Eval 到评估体系路线图

Kilo 基准测试(Benchmarking)指南:从 Harbor Smoke Eval 到评估体系路线图

【免费下载链接】kilocodeKilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode

导读:本文基于 benchmarking.md 展开,梳理 Kilo Code 当前已落地的基准测试证据(Harbor 烟测工作流、云端模型评估数据链路)与尚未验证的评估路线图(Harbor 适配器、ATIF 轨迹、Opik 集成)。你将掌握:基准测试要回答的两个核心问题、仓库中 smoke-test 工作流的具体执行细节(触发方式、依赖、两个烟测任务、产物上传),以及贡献者在把"评估命令"写入文档前必须满足的验证要求。

Benchmarking 要回答的两个核心问题

Kilo Code 的基准测试体系围绕两个独立问题设计:

  1. 模型对比(Model comparison):在同一个 Kilo Code Agent 之上使用不同模型,结果如何差异?
  2. Agent / 版本对比(Agent comparison):在同一个模型与任务集之上使用不同 Agent 或不同 Kilo Code 版本,结果如何差异?

这两个问题分别隔离了"模型变量"与"代理变量",是后续所有评估设计(任务集、对比维度、轨迹分析)的出发点。需要特别强调的是:基准测试与生产可观测性是两套体系。生产可观测性(见 agent-observability.md)监控的是真实会话的运行状态(指标、会话摄入、告警评估等);而基准测试运行的是受控的评估任务,用于在发布前、模型切换前获得可复现的质量信号。

该文档的边界声明也很明确:页面内容只区分"已核实的仓库证据"与"路线图规划",不保证私有基准工具、外部适配器或示例命令对贡献者立即可用。

当前已核实的评估证据

文档以证据表的形式给出了现状(Status 为Partial,即部分落地):

能力状态证据与边界
Harbor 面向的烟测评估(Harbor-facing smoke eval)当前工作流.github/workflows/smoke-test.yml检出私有仓库Kilo-Org/kilo-bench,安装依赖后通过仓库脚本运行两个烟测任务
CLI 发布烟测覆盖(CLI release smoke coverage)当前工作流工作流可测试最新 npm CLI,也可测试指定版本的发布产物,随后校验结果
烟测结果产物(Smoke result artifacts)当前工作流工作流上传 result、trajectory 与 agent 安装日志供检查
云端模型评估数据摄入(Cloud model eval ingest)当前服务静态源码检查发现services/model-eval-ingest/的推广同步(promotion sync)表面
私有kilo-bench内部实现此处未验证私有仓库脚本、适配器行为与支持的本地命令不在已检查文档范围内
生产环境启用情况此处未验证静态源码无法证明部署、灰度、留存或供应商配置

可见"已核实"的证据集中在工作流文件层面,而私有基准仓库的内部脚本、适配器行为、生产环境启用情况均明确标注为"未验证",这也是整篇文档刻意保持严谨的原因。

仓库中的 smoke-eval 工作流:源码级拆解

文档明确指出现有烟测工作流为.github/workflows/smoke-test.yml,该文件在仓库中真实存在。以下是结合源码的完整拆解。

工作流定位与触发方式

从 smoke-test.yml 的头部注释可见其定位:独立的烟测工作流——检出 kilo-bench 并对最新发布的 CLI(或指定版本)运行一小撮 Harbor 评估任务。它有两种触发方式:

  • workflow_dispatch:手动在 Actions 页面触发,可传可选输入cli_version(例如7.0.36),留空则测试最新 npm 发布版;
  • workflow_call:由发布工作流在草稿发布产物上传后调用。

工作流还配置了concurrency组(group: smoke-test,不取消进行中的运行)与timeout-minutes: 30的上限。

前置条件与所需 Secrets

工作流运行需要三个 Secrets(缺少时会在 "Validate API key" 步骤直接报错退出):

Secret用途
KILO_API_KEYKilo Gateway 密钥,用于驱动评估中的模型请求
KILO_ORG_IDKilo 组织 ID
BENCH_GITHUB_TOKEN具有Kilo-Org/kilo-bench(私有仓库)contents:read权限的 PAT,用于检出基准仓库

执行步骤流水线

工作流运行在blacksmith-2vcpu-ubuntu-2404运行器上,完整步骤为:

  1. 检出 kilo-benchactions/checkout@v6检出Kilo-Org/kilo-bench,使用BENCH_GITHUB_TOKEN
  2. 安装 uvastral-sh/setup-uv@v6,开启缓存;
  3. 设置 Pythonuv python install 3.13
  4. 安装依赖uv sync --no-dev
  5. 校验 API keyKILO_API_KEY为空则输出 error 并退出;
  6. 下载 CLI 产物cli_version为空则测试最新 npm 版;否则用gh release download v$VERSION --pattern kilo-linux-x64.tar.gz从发布草稿下载对应归档,并以环境变量KILO_CLI_PATH传给后续步骤;
  7. 运行两个烟测任务(见下文);
  8. 校验结果python3 scripts/validate_smoke_test.py jobs/smoke-test-*/(脚本位于私有 kilo-bench 仓库中);
  9. 上传产物if: always()保证即使失败也上传,供排查。

两个烟测任务

工作流通过私有仓库脚本./scripts/run_eval.sh运行两个任务,使用模型kilo/anthropic/claude-sonnet-4.6

任务数据集选择工作流中记录的预期范围
hello-world-d hello-world小规模烟测任务
log-summary-date-ranges-d terminal-bench-sample --include-task-name "log-summary-date-ranges"小型终端基准(Terminal-Bench)样例

两个任务都附加了--job-namesmoke-test-hello-world/smoke-test-log-summary)与--timeout-multiplier 2。关于超时倍增器的设计,工作流注释中有详细说明:Harbor 默认的 agent-setup 超时为 360 秒,而hello-world容器(FROM ubuntu:24.04)在 CLI 真正下载前需要执行apt-get updateapt-get install、NodeSource 的curl|bash以及apt install nodejs,在 Blacksmith 运行器上若 apt 镜像或 NodeSource CDN 变慢,可能超过 6 分钟并触发AgentSetupTimeoutError。将 multiplier 设为 2 可为瞬时镜像/CDN 波动留出余量(该参数会统一缩放 setup、agent、verifier、env build 的超时,但它们都是上限值,因此无害)。

成本与产物

工作流注释给出了成本预期:hello-world$0.01log-summary-date-ranges$0.13,总成本预期低于$0.50,墙钟时间低于 15 分钟。这组数据来自仓库内注释,可作为该烟测在发布门禁场景下开销的参考。

上传产物名为smoke-test-results,路径包括:

  • jobs/smoke-test-*/**/result.json(评估结果)
  • jobs/smoke-test-*/**/trajectory.json(轨迹)
  • jobs/smoke-test-*/**/agent/setup/*.txt(CLI 安装脚本的标准输出/错误/返回码,用于定位卡住的步骤)

产物保留 30 天(retention-days: 30),if-no-files-found: warn避免空目录导致硬失败。注释特别说明:kilo-bench 的安装脚本使用set -euo pipefail(无set -x)且从不回显认证令牌或 API 密钥,因此上传安装日志是安全的。

与发布流程的衔接

在 publish.yml 中,烟测被编排为预发布门禁smoke-test任务依赖versionbuild-cli,仅在github.repository == 'Kilo-Org/kilocode'时执行,通过uses: ./.github/workflows/smoke-test.yml复用工作流,并传入cli_version: ${{ needs.version.outputs.version }}secrets: inherit。最终的publish任务在依赖列表中包含smoke-test,意味着烟测未通过则不会进入发布步骤。这从调用链上印证了文档中"CLI 发布烟测覆盖"与"发布前跑稳定子集"的规划方向。

文档对上述证据的定性是:这证明了 smoke 覆盖存在,但不能据此推断出公开的 Harbor 适配器契约或贡献者可直接使用的本地 CLI。

Cloud model-eval-ingest 的证据边界

文档指出,静态源码检查在云端发现了services/model-eval-ingest/服务,用于推广同步(promotion sync)。需要严格对待的边界是:这仅代表"当前仓库定义的服务表面"(repository-defined surface),部署环境、滚动节奏、数据留存与供应商配置必须另行验证,不能在验证之前作出生产级声明。

路线图:待验证的评估能力

文档给出了清晰的路线图,其中除烟测外均标注为"未验证/规划中":

能力状态预期用途
面向贡献者的 Harbor 适配器未验证路线图在受控评估环境中自主运行 Kilo CLI
ATIF 轨迹适配器未验证路线图输出结构化 step 级轨迹用于对比
Opik 集成未验证路线图摄入轨迹并对比评估运行
标准模型对比工作流规划中跨模型对比质量、成本与墙钟时间
标准 Agent 对比工作流规划中在同一任务上对比不同 Agent 或 Kilo 版本
自定义任务集模板规划中构建聚焦的回归或能力套件
烟测之外的 CI 回归套件规划中在发布前运行稳定子集

拟议评估设计:Harbor + ATIF + Opik 的组合

文档提出的更完整评估设计可复用开源评估组件,但前提是在实现过程中逐一验证适配器可用性

组件路线图角色需要验证的内容
Harbor评估框架与数据集确认支持的 Kilo 适配器及调用契约
ATIF结构化轨迹确认输出的字段与推理数据策略
Opik轨迹摄入与分析确认 Harbor 集成配置与 Kilo 适配器支持
Terminal-Bench 或其他数据集受控任务确认版本、许可证与任务选择

潜在架构(文档原文):

Evaluation task set -> controlled trial environment -> verified Kilo adapter -> model request -> result and optional trajectory artifacts -> smoke validation, aggregate analysis, or trace analysis

这条链路与现有 smoke 工作流完全吻合:任务集即hello-world/terminal-bench-sample,受控环境即 Harbor 容器(如ubuntu:24.04),模型请求即kilo/anthropic/claude-sonnet-4.6,产物即result.json/trajectory.json,最后一步即validate_smoke_test.py或未来的聚合/轨迹分析。

拟议对比维度

对比类型固定输入变量衡量指标
模型对比Kilo Code Agent + 任务集模型完成度(Completion)、成本(Cost)、墙钟时间
Agent 对比模型 + 任务集Agent 或 Kilo Code 版本完成度、成本、墙钟时间
轨迹分析评估任务运行轨迹工具选择、错误、重复步骤

模型对比与 Agent 对比共享"完成度 / 成本 / 墙钟时间"三个指标,从质量与资源消耗两个维度给出可量化的决策依据;轨迹分析则深入到单次运行内部,回答"工具选得对不对、哪里出错、是否原地打转"这类行为层面的问题。

命令验证要求:什么不能直接写进文档

文档提出了明确的命令纪律:不要opik harbor run -a kilokilo --autokilo run --auto当作开箱即用的接口写进文档,除非在相关仓库中验证了适配器与自主 CLI 调用确实可行。私有kilo-bench工作流命令只是实现证据,不是面向公众的使用保证。这一点直接约束了贡献者在写评估类文档时的措辞边界。

未来交付物

  • 验证并文档化受支持的自主 CLI 调用方式;
  • 验证 Harbor 适配器的归属与可用性;
  • 定义 ATIF 导出字段与数据处理策略;
  • 在发布任何命令前验证 Opik 摄入路径;
  • 仅在本地复现成功后才发布贡献者工作流;
  • 在成本与运行时长允许的前提下,将 smoke 覆盖扩展为稳定的回归子集。

参考资料(仓库内延伸阅读)

  • 本文依据:benchmarking.md
  • 烟测工作流源码:smoke-test.yml
  • 发布门禁调用链:publish.yml
  • 与基准测试区分的生产可观测性:agent-observability.md

结论:Kilo 的基准测试当前处于"烟测落地、体系待建"的阶段。仓库内已有可独立运行、可接入发布门禁的 Harbor 烟测工作流(含成本与超时设计),而 Harbor 适配器契约、ATIF 轨迹、Opik 摄入等更完整的评估体系仍属路线图,须逐项验证后方可文档化与对外承诺。

【免费下载链接】kilocodeKilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 16:47:11

使用 ESLint `no-eq-null` 规则:杜绝无类型检查的 `null` 比较

使用 ESLint no-eq-null 规则:杜绝无类型检查的 null 比较 【免费下载链接】eslint Find and fix problems in your JavaScript code. 项目地址: https://gitcode.com/GitHub_Trending/es/eslint 在 JavaScript 中,foo null 这类比较看似无害&am…

作者头像 李华
网站建设 2026/9/12 16:42:20

AI与文学创作:人机协作模式探索与实践

1. 项目背景与创作动机《AI元人文:悟空而行》是一部探讨人工智能与人类文化交融的实验性文学作品。作为作者,我试图通过这部作品构建一个跨越技术与人文的叙事空间。创作初衷源于对当前AI技术爆发式发展下人文精神处境的思考——当机器能够模仿人类创作时…

作者头像 李华
网站建设 2026/9/12 16:39:03

Hugo-PaperMod 菜单不显示?一张分诊表定位 4 类导航故障

Hugo-PaperMod 菜单不显示?一张分诊表定位 4 类导航故障 【免费下载链接】hugo-PaperMod A fast, clean, responsive Hugo theme. 项目地址: https://gitcode.com/GitHub_Trending/hu/hugo-PaperMod 上周帮朋友查了个坑:本地 hugo server 预览一…

作者头像 李华
网站建设 2026/9/12 16:38:49

广告墙Java课程设计:从ER建模到定时下架全流程实现

简介:面向Java课程实验与课程设计的「广告墙」项目源码包,适用于计算机、人工智能、通信工程等专业的在校生、教师及初级开发者,旨在帮助读者快速掌握广告信息管理、用户注册登录、管理员后台等典型业务模块的实现思路,并可直接用…

作者头像 李华