# web-search-agent **Repository Path**: bright-data/web-search-agent ## Basic Information - **Project Name**: web-search-agent - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-09 - **Last Updated**: 2025-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
## 基于 [Mastra](https://mastra.ai) 构建的强大 AI 驱动网页搜索助手,可搜索、提取与爬取开放网络,并提供准确且带来源的信息。 brightdata-mastra-fixed
## 概览 该智能体将 Google 的 Gemini 2.5 Flash 模型与 Bright Data 的网页搜索能力相结合,打造一个智能搜索助手,能够: - 在任意主题上搜索最新信息 - 提供准确、可靠且带引用来源的回答 - 通过持久化记忆维护对话上下文 - 从多个来源返回结构化、条理清晰的结果 ## 功能特性 - 智能生成:使用 Google Gemini 2.5 Flash 进行智能文本生成 - 网页搜索集成:利用 Bright Data 的 MCP(Model Context Protocol)进行网页抓取与搜索 - 持久化记忆:使用 LibSQL 数据库存储会话历史 - 来源引用:始终提供 URL 与来源归属 - 结构化日志:内置 Pino 日志,便于监控与调试 ## 架构 ### 核心组件 - Web Search Agent(`src/mastra/agents/web-search-agent.ts`):具备搜索能力的主 AI 智能体 - Bright Data MCP 客户端(`src/mastra/mcp/bright-data-client.ts`):对接 Bright Data 搜索 API - Mastra 核心(`src/mastra/index.ts`):集中化配置与编排 ### 关键依赖 - `@mastra/core` - 智能体与工作流的核心框架 - `@ai-sdk/google` - Google AI 的 Gemini 模型集成 - `@mastra/mcp` - Model Context Protocol 客户端 - `@mastra/memory` - 持久化记忆管理 - `@mastra/libsql` - LibSQL 数据库适配器 - `@mastra/loggers` - 日志工具 ## 要求 ### 系统要求 - Node.js:>= 20.9.0 - npm:最新版本 ### 所需 API 密钥 1. Bright Data Token:用于网页搜索能力 2. Google AI API Key:用于访问 Gemini 模型 ## 快速开始 ``` npx create-mastra@latest --template https://github.com/brightdata/web-search-agent ``` ## 设置 ### 1. 克隆与安装 ```bash cd web-search-agent npm install ``` ### 2. 环境配置 复制示例环境文件并添加你的 API 密钥: ```bash cp .env.example .env ``` 编辑 `.env` 并添加你的密钥: ```env BRIGHT_DATA_TOKEN=your_bright_data_token_here GOOGLE_GENERATIVE_AI_API_KEY=your_google_ai_api_key_here ``` #### 获取 API 密钥 Bright Data Token: 1. 在 [Bright Data](https://www.bright.cn) 注册 2. 前往你的控制台 3. 生成用于网页搜索的 MCP 令牌 Google AI API Key: 1. 访问 [Google AI Studio](https://aistudio.google.com) 2. 创建或选择一个项目 3. 为 Gemini 模型生成 API Key ### 3. 数据库设置 该智能体使用 LibSQL 进行持久化记忆: - 开发环境:使用内存数据库(`:memory:`) - 生产环境:使用基于文件的存储(`file:../mastra.db`) 无需额外配置——数据库将自动创建。 ## 使用方法 ### 开发模式 启动带热重载的开发服务器: ```bash npm run dev ``` ### 生产构建 构建应用: ```bash npm run build ``` ### 启动生产服务 ```bash npm run start ``` ## 智能体能力 Web Search Agent 旨在实现: ### 搜索操作 - 执行实时网页搜索 - 访问超出训练数据范围的最新信息 - 处理复杂的多部分查询 - 跨多个域与来源进行搜索 ### 响应质量 - 提供准确、经核验的信息 - 包含带 URL 的正确来源引用 - 以清晰、易读的格式组织信息 - 汇总来自多个来源的关键信息 ### 记忆与上下文 - 记住先前对话 - 在既有搜索结果基础上继续 - 在会话间保持上下文 - 存储搜索历史以供参考 ## 项目结构 ``` web-search-agent/ ├── src/ │ └── mastra/ │ ├── agents/ │ │ └── web-search-agent.ts # Main AI agent │ ├── mcp/ │ │ └── bright-data-client.ts # Bright Data integration │ └── index.ts # Mastra configuration ├── .env.example # Environment template ├── .gitignore # Git ignore rules ├── package.json # Dependencies and scripts ├── tsconfig.json # TypeScript configuration └── README.md # This file ``` ## 配置 ### 智能体设置 在 `src/mastra/agents/web-search-agent.ts` 中进行配置: - 模型:Google Gemini 2.5 Flash - 记忆:LibSQL 持久化存储 - 工具:Bright Data 网页搜索能力 - 超时:搜索操作 120 秒 ### 数据库配置 在 `src/mastra/index.ts` 中的存储设置: - 开发环境:内存数据库,便于快速迭代 - 生产环境:基于文件的持久化存储 ## 故障排除 ### 常见问题 “BRIGHT_DATA_TOKEN environment variable is required” - 确保 `.env` 存在并包含有效的 `BRIGHT_DATA_TOKEN` - 检查令牌是否过期 “Google AI API key not found” - 核对 `.env` 中的 `GOOGLE_GENERATIVE_AI_API_KEY` - 确保该密钥具备 Gemini 模型访问权限 搜索超时 - 检查网络连接 - 确认 Bright Data 服务状态 - 考虑在 `bright-data-client.ts` 中增加超时 ### 日志 应用使用 Pino 进行结构化日志,包含: - 智能体响应与推理 - 搜索 API 调用与响应 - 错误详情与堆栈 - 性能指标 ## 开发 ### 新增功能 1. 新工具:添加到 `src/mastra/tools/` 2. 智能体改动:更新 `src/mastra/agents/web-search-agent.ts` 3. 配置更改:修改 `src/mastra/index.ts` ### 测试 当前未配置测试。若需添加测试: ```bash npm install --save-dev jest @types/jest ```