尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ai-newtab测试指南:如何用Bun与无头Chrome验证「扩展+LLM Agent」这条完整链路
【免费下载链接】ai-newtabClaude generates a daily new tab page based on your browser history.项目地址https://gitcode.com/gh_mirrors/ai/ai-newtab点击查看免费下载ai-newtab 是一款让 Claude LLM Agent 替你读网的 Chrome 新标签页扩展它读取你的浏览历史、以你的身份打开常看的页面再写出一段 React 组件作为当天的个性化主页。这类「浏览器扩展 LLM Agent」组合通常最难验证——一半逻辑跑在浏览器里另一半跑在远端 Agent 会话里。而 ai-newtab 仓库自带了一套基于 Bun 与无头 Chrome 的三层测试体系单元测试、扩展集成测试、真实 API 端到端构建每条都能用一两条命令跑完。本文带你完整走一遍。一、为什么这条链路需要三层验证传统项目的测试往往一管到底但 ai-newtab 的构建链路横跨三方角色运行位置职责扩展service worker你的浏览器持有会话流、执行getHistory/getPageHtml、持久化主页编排层Anthropic运行 Agent 循环、持久化事件日志会话沙箱Anthropic对挂载的页面执行read/grep/write关键在于getHistory和getPageHtml必须运行在用户浏览器里依赖chrome.history和chrome.tabs测试环境里的脚本是够不到的。好在仓库把 Agent 循环抽成了宿主无关的 packages/agent-core/——它不 import 任何chrome.*、browser.*或node:*因此同一套编排代码既能在扩展的 service worker 里跑也能在 Bun 脚本里跑。这正是整条链路可以被分层验证的基础层级命令验证什么需要 API Key 第 1 层单元测试pnpm test历史摘要、站点黑名单、流重连、自动重建等纯逻辑❌️ 第 2 层无头 Chrome 扩展测试pnpm extension:testservice worker 注册、新标签页渲染、port 协议、chrome.history权限❌ 第 3 层真实 API 端到端pnpm agent:runpnpm agent:verify会话生命周期、工具调度、页面挂载、沙箱读写、交付物可渲染✅二、准备工作克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/ai/ai-newtab cd ai-newtab npx pnpm10.11.1 install测试全部由 Bun 驱动请先按 Bun 官方说明安装好运行时。第 3 层测试还用到一个 API Key配置文件模板在 .env.example按需复制即可第 1、2 层完全不需要。三、第一层用bun test跑单元测试pnpm test这条命令等价于bun test harness/无需 API、无需网络秒级完成。四个测试文件各守一段关键逻辑历史摘要harness/history-digest.test.ts —— 验证站点列表被截断到上限、按相关度降序、丢弃urls[]明细、上报totalSitesSeen保证塞给模型的内容小而全。站点黑名单harness/site-filter.test.ts —— 用户填google.com时mail.google.com要被拦notgoogle.com不能被误伤连粘贴带协议的完整 URL 也能被规范化。流重连harness/stream-reconnect.test.ts —— 会话流在构建中途断开时编排器必须重连而不是提前收工。自动重建harness/auto-rebuild.test.ts —— 只在早上 5 点到 12 点之间、且每天最多触发一次晨间构建。所有测试共用同一份夹具历史数据来源是 harness/node-bridge.ts 中的fixtureHistory()——模拟了一个常逛 Hacker News、GitHub 的浏览器档案。四、第二层用无头 Chrome 验证扩展本体先构建扩展再运行测试npx pnpm10.11.1 build pnpm extension:test这个测试由 harness/test-extension.ts 完成它的做法相当硬核以--headlessnew启动一个全新临时配置文件的无头 Chrome打开远程调试端口harness/test-extension.ts#L41-L54由于 Chrome 136 已忽略--load-extension参数改用 CDP 的Extensions.loadUnpacked加载构建产物在页面里注入脚本直接与扩展的 service worker 对话。全程不发起任何 API 调用却验证了 Bun 脚本够不到的浏览器侧能力✅ MV3 service worker 成功注册#L118-L125✅ 新标签页覆盖生效全新配置下渲染出 API Key 输入界面#L127-L157✅ 通过subscribe消息收到构建状态快照#L171-L178✅ 未配置 API Key 时startBuild干净地报错而不是静默卡死#L180-L183✅chrome.history真实可读先种入几条历史再确认能查回来#L185-L204 Linux 用户注意测试默认读取 macOS 的 Chrome 路径请通过环境变量指定例如CHROME_PATH$(which google-chrome) pnpm extension:test。全部通过时会打印绿色的EXTENSION VERIFIED。五、第三层用 Bun 跑真实 API 端到端构建这是唯一花 API 额度的层级验证的是Agent 真的能把主页写出来。1. 配置 API Keycp .env.example .env在 .env 中填入ANTHROPIC_API_KEY可选再写一条HOMEPAGE_PROMPT定制风格。2. 完整构建pnpm agent:runharness/run-agent.ts 运行的正是扩展里那份runHomepageBuild编排器只是把浏览器桥接换成了nodeBridge历史数据用夹具页面抓取用普通fetch。构建完成后终端会打印会话信息、耗时以及一组契约检查#L57-L64✅ 默认导出PersonalizedHomepage组件✅ 导入了 React✅ 没有从 react 之外的包导入✅ 页面里含有真实的外链产物写入harness/out/homepage.tsx。⚠️ 一个重要边界nodeBridge用的是裸fetch看不到需要登录或 JS 渲染的页面——这正是生产环境里getPageHtml必须由浏览器执行的全部理由。所以这一层验证的是 Agent 链路本身而不是浏览器抓取能力。3. 交付物可渲染验证pnpm agent:verify长得像 React不等于能渲染。harness/verify-homepage.ts 模拟新标签页的真实渲染路径用 sucrase 把 TSX 转成 JS——与扩展内的 apps/extension/lib/transpile.ts 同一方案在一个只允许import react的 CommonJS 沙箱里求值#L37-L59用renderToString服务端渲染输出少于 500 字节直接判负#L61-L70要求至少 5 个互不重复的真实外链且不允许出现example.com、placeholder这类占位链接#L72-L84。打印VERIFIED即代表 Sandpack iframe 一定能挂载这份组件。4. 可选进阶崩溃恢复与隐私验证断点续建pnpm agent:resume-test会先执行 harness/test-resume.ts 的crash阶段——真实构建进行到 Agent 刚请求getPageHtml的瞬间直接强杀进程模拟在最坏时刻关闭了 Chrome随后resume阶段通过resumeSessionId重新附着重放事件日志、补答那个没人回答的工具调用并最终完成构建#L89-L122。数据留存pnpm agent:retention sessionId运行 harness/check-retention.ts确认会话已删除#L19-L29、Files API 中不残留任何抓取的页面正文#L32-L39——这是隐私声明的实证。sessionId 可以在agent:run的输出里找到。六、结果速读与常见注意点跑完三层后你会得到这样的结论链输出标记含义✅ 各测试用例全绿bun test纯逻辑正确绿色EXTENSION VERIFIED浏览器侧五项检查通过绿色VERIFIED — ... is a renderable homepage交付物可真实渲染且链接可信几个容易踩的点agent:*系列命令会消耗 API 额度agent:resume-test实际会跑两个会话夹具历史不含登录态页面抓取失败的 URL 会以failed形式上报而非隐藏属正常现象三层测试都通过后最后一步是真实的人工验收chrome://extensions→ 开发者模式 → 加载apps/extension/.output/chrome-mv3在新标签页里粘贴 API Key 点Build todays homepage看着进度面板一步步走完。完整的验证矩阵每条命令证明什么也可参考仓库内的 ARCHITECTURE.md它连同事件流图和已知坑位一起是排查问题时的第一手资料。至此从纯逻辑、到无头 Chrome、再到真实 Agent 会话「扩展 LLM Agent」这条完整链路已经全部被验证过一遍。赞分享【免费下载链接】ai-newtabClaude generates a daily new tab page based on your browser history.项目地址https://gitcode.com/gh_mirrors/ai/ai-newtab点击查看免费下载相关推荐3AGameFactory 无 GPU 冒烟测试test/harness 如何秒级验证整条生成链路3AGameFactory 无 GPU 冒烟测试test/harness 如何秒级验证整条生成链路 3AGameFactory 是一个开源的 3A 游戏生成人工智能媒体生成游戏开发AI 应用AI 技能Beav浏览器AI控制原理剖析MCP、Native Host与Chrome扩展如何串联成Agent操控链路Beav浏览器AI控制原理剖析MCP、Native Host与Chrome扩展如何串联成Agent操控链路 Beav 是一款开箱即用的小红书 AI 运营工作台AI 应用人工智能AI AgentMCP 服务浏览器控制音视频三步让NAS认出第三方硬盘Synology HDD db 完整指南三步让NAS认出第三方硬盘Synology HDD db 完整指南 装第三方硬盘后群晖存储管理器黄色提示不支持。Synology HDD db 是面向个人CLI开发工具上一篇3个实用技巧轻松突破百度网盘限速baidu-wangpan-parse高效下载终极指南下一篇3分钟学会用Python脚本突破百度网盘下载限速的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Quark Shell 上架 Mac App Store 指南:WebKit 沙盒、安全与兼容性注意事项

Quark Shell 上架 Mac App Store 指南:WebKit 沙盒、安全与兼容性注意事项

桌面应用开发工具 【免费下载链接】quark-shell-mac Quark Shell for Mac helps web developers to create native-like Mac menubar app using HTML and JavaScript without writing any native code. 项目地址: https://gitcode.com/gh_mirrors/qu/quark-shell-ma…

📅 2026/10/28 1:34:06
SEO布局指南:新站上线前必做的几件事

SEO布局指南:新站上线前必做的几件事

很多网站上线后流量惨淡,运营方第一反应是"内容不够""外链太少",却忽略了一个根本原因——网站从出生就缺了SEO基因。搜索引擎对一个新站的第一印象,几乎决定了它后续3-6个月的收录速度和排名起点。与其上线后反复修补&a…

📅 2026/10/28 1:34:06
大模型推理引擎vLLM(26):INT8 高吞吐/低延迟 EP 代码梳理、疑问、流程差异、DeepEP 通信差异

大模型推理引擎vLLM(26):INT8 高吞吐/低延迟 EP 代码梳理、疑问、流程差异、DeepEP 通信差异

目录 1 vllm/distributed/device_communicators/all2all.py 2 vllm/model_executor/layers/fused_moe/all2all_utils.py 3 vllm/model_executor/layers/fused_moe/batched_deep_gemm_moe.py 3.1 增加 N、K 参数 放宽 init assert 3.1.1 问题:这里为什么只需…

📅 2026/10/28 1:34:06
MORE NEWS

更多资讯

📰

S7-1200 PUT/GET通信实战:连对、写对、防错三要素

简介:本资源是一份面向工业自动化工程师与PLC初学者的西门子S7-1200 PUT&GET通信实战教程,聚焦PROFINET环境下两台S7-1200 PLC间高效、稳定的数据交互问题,特别适用于需实现跨设备数据同步、分布式控制或项目升级迁移的工程场景。教程完整…

📰

控制器当Git服务器:TwinCAT 3 AdsGitServer版本回退

简介:这份PDF面向使用TwinCAT 3.1.4024及以上版本的自动化工程师与PLC协同开发人员,聚焦控制器内置AdsGitServer的版本管理实践,帮助读者在不依赖外部Git软件的情况下完成程序提交、获取、差异查看与版本回退。资源包共1个PDF文件&#xff0c…

📰

DeepSeek大模型API接入、流式输出与移动端配置指南

简介:《DeepSeek使用指南》面向具备一定编程背景的技术人员、产品经理及希望提升客户服务自动化水平的企业管理者,系统梳理大语言模型助手在网页端、API 集成与移动设备上的使用路径。资源以 1 个 docx 文档交付,压缩包约 16KB,篇…

📰

七端口交换板REV 2.1改版拆解:端口拓扑、复位与配置引脚复用

简介:这份PDF文档是88E6320_DB开发板的原理图设计资料,面向千兆以太网交换、嵌入式硬件及网络设备研发人员,可用于理解88E6320在QFN108封装下的参考电路与板级实现。内容覆盖电源与稳压器选型、POR芯片、MagJack、芯片顶层框图、RESET与GPHY …

📰

15页5G+VR智慧旅游方案PPT:VR观景台到数据中台的拆解复用

简介:面向旅游行业信息化从业者、景区运营方与智慧城市方案设计人员的5GVR智慧旅游解决方案演示文稿,聚焦5G网络与虚拟现实技术在旅游场景中的落地路径。内容围绕5G高速率、低时延、大连接特性与VR沉浸式交互体验展开,涵盖智慧旅游系统架构、…

📰

MySQL高阶篇之配置文件详解与各类客户端工具

本文系统梳理:服务端配置项与系统变量的对应关系、客户端公共选项、配置文件的加载顺序与优先级、配置文件的编写方法,以及 mysqlcheck、mysqldump、mysqlimport、mysqladmin、mysqlshow、mysqldumpslow、mysqlbinlog、mysqlslap 八大客户端工具的用法与…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬