并行浏览器代理实战:TinyFish Cookbook的game-buying-guide如何同时抓取10个游戏平台比价

发布时间:2026/10/8 18:32:29

并行浏览器代理实战:TinyFish Cookbook的game-buying-guide如何同时抓取10个游戏平台比价 并行浏览器代理实战TinyFish Cookbook的game-buying-guide如何同时抓取10个游戏平台比价【免费下载链接】tinyfish-cookbookA collection of sample apps and recipes built with the TinyFish web agent. Open-source examples for you to learn build!项目地址: https://gitcode.com/gh_mirrors/ti/tinyfish-cookbook如果你买游戏时总纠结现在买还是再等等那么 TinyFish Cookbook 中的game-buying-guide就是为这件事而生的它是一个 AI 游戏比价工具输入游戏名后10 个并行浏览器代理会同时打开 Steam、Epic、GOG 等平台的搜索页抓取实时价格、折扣与评分并给出立即购买 / 等待 / 观望的建议另有一个专用代理负责查询 SteamDB 历史最低价。一、game-buying-guide 是什么简单说一句话查遍 10 个游戏平台AI 帮你判断最佳购买时机。你在搜索框输入游戏名例如Elden Ring、Cyberpunk 2077应用会同时启动 11 个浏览器代理——10 个分别负责一个游戏商店第 11 个专门去 SteamDB 查历史价格曲线。每个代理都会返回结构化的比价结果当前价、原价、折扣率、用户评分以及 2~3 句推荐理由。覆盖的平台与各代理抓取的关键信息如下来自 README.md平台代理提取的信息Steam价格、折扣、评分、促销结束时间Epic Games Store价格、折扣、是否免费游戏GOG价格、无 DRM 状态、评分PlayStation Store价格、PS Plus 折扣、评分Xbox Store价格、Game Pass 可玩性Nintendo eShop价格、区域定价Humble Bundle价格、捆绑包可购性Green Man Gaming价格、折扣Fanatical价格、捆绑包优惠CDKeys密钥价格、折扣 整套应用没有数据库、没有缓存所有数据都是实时抓取、纯内存运行的。二、整体架构3 个 API 路由搞定一切前端是 Next.js 应用核心交互由 3 个 API 路由支撑平台发现app/api/discover-platforms/route.ts —— 内置一份 10 个商店的硬编码列表 搜索 URL 模板输入游戏名后直接拼出各平台的搜索链接。这一步刻意不用 LLM确定性的事就让代码做省 token 又快。单平台分析app/api/analyze-platform/route.ts —— 调用 TinyFish SDK 的client.agent.stream({ url, goal })把打开商店页、看价格折扣评分、返回规定 JSON写进自然语言 goal结果通过 SSE 流式推给前端。SteamDB 历史价app/api/steamdb-price-history/route.ts —— 专用代理搜索游戏、进入详情页、定位 Price History 区块找出历史最低价、出现日期和折扣深度。三、并行抓取的关键Promise.allSettled 流式推送 ⚡并行化并不神秘核心在客户端钩子 hooks/use-game-search.ts 中的一行await Promise.allSettled([ ...platforms.map((platform) analyzePlatform(platform, gameTitle)), analyzeSteamDB(gameTitle), ]);Promise.allSettled11 个请求同时发出某个平台失败比如商店限流不会拖累其他 10 个结果各自独立更新到界面上——这是并行抓取最实用的容错姿势。SSE 流式事件每个代理在运行中会推送 4 类事件见 route.ts 的事件处理STREAMING_URL云端浏览器的实时画面地址、STATUS当前动作、COMPLETE结构化 JSON 结果、ERROR。实时围观STREAMING_URL会渲染成一张可展开的 iframe你能亲眼看着每个 AI 代理在真实浏览器里翻页面实现在 components/live-browser-preview.tsx。10 张直播卡片同时刷新是这种多代理架构最直观的观感。四、结果不只是抓到了结构化分析与购买决策 比价工具的价值在于判断。每个代理的 goal 提示词analyze-platform/route.ts规定了三档建议规则buy_now折扣 ≥ 30%、历史最低价、或促销即将结束wait原价销售且已知未来有促销或别处更便宜consider中等折扣、值得再权衡所有字段current_price、discount_percentage、recommendation等都定义在 lib/types.ts 中保证前后端契约一致。结果汇总卡片components/results-summary.tsx会做两件事投票机制统计立即购买 / 等待 / 观望各占多少平台用多数派给出总建议最低价冠军解析出所有平台价格标出全场最低并附Buy Now直达链接。⚠️ 一个值得学习的设计细节README 中特别强调COMPLETED ≠ 目标达成——浏览器跑完没崩只说明流程执行了结果内容仍必须做解析校验解析失败会优雅降级为consider而不是抛出错误route.ts。五、本地运行快速启动你的游戏比价工具前置要求Node.js 22.x 一个 TinyFish API Key在 agent.tinyfish.ai 申请Search/Fetch 免费。git clone https://gitcode.com/gh_mirrors/ti/tinyfish-cookbook cd tinyfish-cookbook/game-buying-guide配置环境变量TINYFISH_API_KEY仅用于服务端TINYFISH_API_KEY然后启动npm install npm run dev打开http://localhost:3000输入Baldurs Gate 3或页面推荐的游戏即可看到 10 个代理同时开工。六、项目结构与可复用的最佳实践 ✍️模块文件说明主页面app/page.tsx搜索表单 SteamDB 卡片 结果汇总 代理网格搜索表单components/search-form.tsx游戏名输入 热门游戏快捷按钮代理卡片网格components/agent-grid.tsx实时显示分析中 / 完成 / 等待计数SteamDB 历史低价卡components/steamdb-price-card.tsx历史最低价 是否当前历史低点从 game-buying-guide/README.md 的约束清单里能提炼出多代理比价应用的几条通用经验能确定就不用 LLM平台列表写死LLM 只负责看页面、做判断并行 allSettled 容错N 个代理互不影响部分失败体验依然完整SSE 流式 实时画面长耗时任务给用户看得见的进展而不是干等转圈严格校验结果内容状态完成只是前提内容可信才是目标。这套一个商店一个代理、全部并行、流式汇总的模式换个 URL 模板就能复用到机票比价、多平台电商比价等场景——这正是 TinyFish Cookbook 作为开源示例库的价值所在照着抄改改就能用。【免费下载链接】tinyfish-cookbookA collection of sample apps and recipes built with the TinyFish web agent. Open-source examples for you to learn build!项目地址: https://gitcode.com/gh_mirrors/ti/tinyfish-cookbook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/8 18:32:29

多智能体系统混合架构设计:自研编排与通用框架协同落地

1. 这不是技术站队,而是工程现实的妥协:一个真实落地项目里的架构选择逻辑“多智能体系统”这个词现在听上去很酷,但如果你真在一线带过三个以上Agent协同任务的项目,就会发现它背后藏着一连串让人头皮发紧的问题:任务…

2026/10/8 18:32:29

从全员级AI Agent落地实践看企业智能体架构、并发与信任建设

接近100%员工都在用AI Agent,这个数据刚看到的时候,我的第一反应是:多半又是PR稿。直到把他们的技术分享材料翻了一遍,又跟几个正在用这套系统的朋友聊了聊,才确认这是真事,而且比"全员使用"这个…

2026/10/8 18:32:29

编程自学第二阶段复盘:从照抄代码到独立写项目

从第一个“hello world”到现在能独立写完一个小工具,中间隔着的不是代码量,而是对“编程到底是什么”这件事的理解。这篇“初学总结2”是我自己第二阶段的复盘笔记——第一阶段我在学语法,第二阶段我在学怎么“用代码解决问题”。如果你也处…

2026/10/8 19:32:43

网盘直链下载不装客户端:LinkSwift 用户脚本安装与取链配置指南

网盘直链下载不装客户端:LinkSwift 用户脚本安装与取链配置指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云…

2026/10/8 19:32:43

Blazor Admin 关联表怎么处理?Navigate、Include、Join 实战

后台开发里关联表几乎是必选项:订单要显示客户名、文章要选专栏、用户要分配角色、菜单要挂父子。这篇讲 EasyAdminBlazor 里关联数据从建模到查询、展示、编辑的完整做法。 一、四种关联,四种 Navigate 写法 FreeSql 用 [Navigate] 描述关联&#xff0…

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/8 10:03:20

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 0:02:17

自然数立方等于连续奇数之和:从证明到编程验证

十几年来我一直游走在数学科普和编程教学这两块内容之间,对“看起来像魔法、拆开全是数学”的结论总是格外敏感。最近翻资料时又撞见一句话:任何一个自然数 m 的立方,都可以写成 m 个连续奇数之和。2 的立方等于 3 加 5,3 的立方等…

2026/10/8 0:02:17

C#上位机SSH连接实战:用SSH.NET补齐超时、批量与密钥认证

简介:这是一份基于 C# 开发的 SSH 连接功能半成品工程,原本作为另一个主项目的子功能模块,现独立打包分享。工程采用 WinForms 界面,包含源码、解决方案、安装部署工程、NuGet 依赖包及说明文档,适合正在做远程连接、网…

2026/10/8 0:02:17

Java SpringBoot一体化智能售后系统设计与实现全解析

毕业设计年年做,Java Web 方向的题目翻来覆去就那么几个,但“一体化智能售后系统”这个题,每次看到我都觉得值得认真聊一聊。它不是一个简单 curd 堆出来的管理系统,而是把客户、工单、派单、处理、回访、统计整条链路串起来的一套…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑