7600个测试的wigolo:本地优先项目的测试与benchmark体系解析

发布时间:2026/9/16 16:20:39
7600个测试的wigolo:本地优先项目的测试与benchmark体系解析 7600个测试的wigolo本地优先项目的测试与benchmark体系解析【免费下载链接】wigoloThe go-to web for your AI coding agent — local-first search, fetch, crawl research over MCP. No API keys, no cloud, $0/query. Public beta.项目地址: https://gitcode.com/GitHub_Trending/wi/wigolowigolo 是一个本地优先local-first的 AI 智能体网页工具为 Claude Code、Cursor 等编码智能体提供搜索、抓取、爬取、抽取与本地研究能力——无 API Key、无云端、每次查询 $0。为了让这些能力持续可靠项目用一套7600 个测试的质量保障体系兜底并配备了覆盖搜索质量、抽取质量、智能体任务与嵌入性能四类的 benchmark 系统。本文带你拆解这套本地优先项目的测试与 benchmark 体系是如何设计、运行和演进的。一、先认识 wigolo为什么本地优先项目更看重测试wigolo 的核心理念是一切都在本机缓存、嵌入模型、重排模型全部存放在~/.wigolo/目录下不经过任何第三方服务。这种架构带来一个独特挑战——没有云端可以背锅搜索结果准不准、抽取质量高不高、浏览器引擎快不快全靠本地代码说话。因此项目用大规模测试套件 可回归的 benchmark 基线来守护质量7600 个测试覆盖 CLI、TUI、搜索管线、抓取路由、抽取管线、REST API、SDK 等所有模块4 类 benchmark分别度量搜索相关性、内容抽取保真度、智能体任务完成率与嵌入/重排性能基线捕获机制确保 v1 引擎重构前后的质量可量化对比。二、测试金字塔单元测试、集成测试与 e2e 三层防线wigolo 使用 Vitest 作为测试框架此处不贴外链直接看仓库配置即可测试代码集中在tests/目录按职责分层测试层目录运行命令特点单元测试tests/unit/npm run test:unit最大体量search 127 个、extraction 56 个、fetch 41 个、CLI 168 个文件集成测试tests/integration/npm run test:integration覆盖完整管线如搜索管线、抓取路由、REST APIe2e 测试tests/e2e/npm run test:e2e真实进程启动如 MCP 启动、SearXNG 冷启动引导性能测试tests/perf/npm run test:perf延迟 SLA 基准独立配置串行运行全局配置见 vitest.config.tsNode 环境、tests/**/*.test.ts(x)全量包含、V8 覆盖率统计、20 秒超时。测试夹具fixtures离线测试的地基本地优先意味着测试不依赖真实网络。tests/fixtures/ 目录沉淀了大量真实场景快照spa-shells/— 单页应用空壳页面验证抓取路由升级site-extractors/— 15 个站点定制抽取器夹具cdp-json/— 浏览器 CDP 调试协议响应reranker-tokenizer-corpus.json— 重排器分词语料与快照。这些夹具让 7600 个测试在任何机器上都能稳定复现无需联网。三、Benchmark 体系四类基准测试如何度量质量真正的亮点在 benchmarks/ 目录。项目把质量拆成了 4 个可独立运行、可回归对比的基准。3.1 搜索质量 Benchmark离线重放 经典信息检索指标benchmarks/search/ 采用预录响应 离线重放模式查询集benchmarks/search/fixtures/queries.json — 按docs / error / conceptual / code / multi-query分类标注的查询集相关性判定benchmarks/search/fixtures/relevance.json — 人工标注每个 URL 的等级0–3 级模拟引擎benchmarks/search/mock-engine.ts — 重放预录搜索结果保证测试可离线运行。指标计算在 benchmarks/search/metrics.ts 中实现全部是信息检索领域的标准度量Precision3/5/10— 前 K 条结果中相关结果占比MRR平均倒数排名— 第一个相关结果出现的位置NDCG / NDCG5/10— 考虑多级相关性的排序质量延迟百分位— p50 / p95 / p99 / 均值 / 最大最小值。运行一条命令即可产出 JSON Markdown 双格式报告benchmarks/search/report.tsnpm run bench:search报告按分类docs、code……给出细分指标让某类查询质量下降一眼可见。3.2 抽取质量 Benchmark黄金答案对照法benchmarks/extraction/ 回答另一个问题从网页里抽出的正文够不够干净、完整benchmarks/extraction/fixtures/manifest.json 是清单中心每个条目标注了页面分类article / docs / github / stackoverflow / spa / table-heavy / code-heavy、HTML 夹具路径与黄金 Markdown 答案路径fixtures/golden/下 21 个标准答案文件。对照黄金答案计算benchmarks/extraction/types.tsPrecision / Recall / F1— 文本重叠度ROUGE-L— 最长公共子序列衡量标题数 / 链接数是否匹配— 结构性完整性校验抽取耗时— 性能兼顾。结果同时按页面分类和使用的抽取器双维度聚合能精准定位是哪个站点类型、哪个抽取器退化。3.3 Agent 任务 Benchmark端到端完成率benchmarks/agent/ 度量自治智能体wigolo agent的完整工作流——计划 → 搜索 → 抓取 → 抽取 → 综合benchmarks/agent/fixtures/tasks.json — 任务集benchmarks/agent/fixtures/expected.json — 期望输出benchmarks/agent/evaluator.ts — 自动评判器配合 benchmarks/agent/task-executor.ts 执行任务并打分。3.4 嵌入与性能 Benchmarkbenchmarks/embedding/runner.ts — 嵌入模型质量基准npm run bench:embedding加RUN_FASTEMBED1走本地模型tests/perf/ — 四个.bench.ts延迟基准嵌入、重排、搜索 v1、向量检索。四、基线捕获让质量不退化可验证本地优先项目的引擎层重排模型、向量库、嵌入库是不断演进的原生组件。wigolo 用 benchmarks/baselines/ 目录冻结关键节点的质量快照pre-v1 基线— v1 引擎上线前的搜索/抽取基准输出search-pre-v1.txt、extraction-pre-v1.txt用于前后对比依赖检查benchmarks/baselines/v1-dependency-checks.json — 逐项验证fastembed、sqlite-vec等关键依赖的平台兼容性与 API 变化并给出结论和替代方案例如发现 fastembed 不带 Reranker 后切换到 huggingface/transformers跳过原因档案benchmarks/baselines/_skip-reasons.md — 连为什么某次基准没跑成都记录在案沙箱拒绝 Unix socket 的listen()系统调用并给出后续补测计划。这套基线 检查 归因的做法把模糊的感觉变慢了变成可追踪的数字——这正是本地优先项目最值得借鉴的工程习惯。五、性能测试的独立配置为延迟 SLA 保驾护航延迟测试对 CPU 噪声极其敏感wigolo 为它单独准备了 vitest.perf.config.tspool: forkssingleFork: true—串行、独立进程运行杜绝并行测试文件抢占 CPU超时放宽到120 秒适配冷启动模型加载默认npm test不会混跑性能基准避免污染日常测试信号。这是质量测试与性能测试分离的经典设计日常回归求快求稳性能验证求纯求真。六、运行这套体系常用命令速查全部脚本定义在 package.json 中零记忆成本npm test # 全量 7600 测试vitest run npm run test:unit # 仅单元测试 npm run test:integration # 仅集成测试 npm run test:e2e # 仅端到端测试 npm run test:perf # 延迟 SLA 性能基准 npm run bench:search # 搜索质量基准 npm run bench:extraction # 抽取质量基准 npm run bench:agent # 智能体任务基准 npm run bench:embedding # 嵌入质量基准SDK 一侧同样有独立测试闭环TypeScript SDKsdks/typescript/tests/、Python SDKsdks/python/tests/以及 LangChain / CrewAI / LlamaIndex / Vercel AI SDK 四个框架封装包各自配备测试套件通过npm run test:sdk:ts与npm run test:sdk:py一键执行。贡献指南 CONTRIBUTING.md 明确要求提交 PR 前先跑通测试套件——7600 个测试既是质量门槛也是新贡献者的活文档。七、总结本地优先项目测试体系的三个可复用经验夹具优先离线可复现— 用真实页面快照SPA 空壳、站点定制页、CDP 响应替代网络依赖测试在任何环境都能确定性运行质量与性能分轨— 功能回归走默认配置快速反馈延迟 SLA 走独立串行配置互不干扰基线即资产— 把每个关键节点依赖版本、引擎重构前后的质量快照冻结存档并诚实记录为什么没测让退化可量化、可归因。完整使用文档见 docs/README.md测试与基准源码分别在 tests/ 与 benchmarks/欢迎深入源码。【免费下载链接】wigoloThe go-to web for your AI coding agent — local-first search, fetch, crawl research over MCP. No API keys, no cloud, $0/query. Public beta.项目地址: https://gitcode.com/GitHub_Trending/wi/wigolo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询