研究编排服务

一个强大的AI驱动研究编排服务,从多个来源收集、分析和综合信息,为复杂查询提供全面答案。

  • by objones25
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 objones25/mcp-research-tool

使用说明

研究编排服务

一个强大的、由人工智能驱动的研究编排服务,可以收集、分析和综合来自多个来源的信息,为复杂的查询提供全面的答案。该服务基于Cloudflare Workers构建,利用多种专业工具和人工智能功能来提供结构良好、引用正确的研究成果。

概述

该服务将自然语言查询转化为结构化的研究任务,智能地选择和编排各种专业工具来收集相关信息。然后,它将收集到的数据综合成一个连贯的、引用良好的答案,并附有信心指标。

主要特点

  • 智能查询分析:

    • 对用户查询进行高级分析,以了解意图、实体和约束
    • 每个专业研究工具的查询优化
    • 自动URL和上下文提取
  • 多工具编排:

    • 基于查询上下文和相关性评分的动态工具选择
    • 具有智能重试逻辑的并行执行
    • 每个工具的自动查询自适应
    • 跨研究迭代的智能工具重用
  • 迭代研究过程:

    • 通过有针对性的差距分析进行多次研究迭代
    • 针对缺失信息的高度集中的后续查询
    • 有效处理后续迭代
    • 收集到足够信息时智能终止
  • 人工智能驱动的合成:

    • 将来自不同来源的信息组合成全面的答案
    • 正确的引用和来源归因
    • 带部分和亮点的结构化格式
  • 质量保证:

    • 个人结果和整体综合的置信度评分
    • 来源可信度评估
    • 结果的相关性过滤
    • 批处理以实现高效分析
  • 性能优化:

    • 使用Cloudflare KV的内置缓存系统
    • 工具的并行执行
    • API故障的智能重试逻辑
    • 高效批处理用于结果评估

建筑

核心组件

  1. 编排器 (src/orchestrator.ts):

    • 协调整个研究过程
    • 通过智能重用管理工具选择和执行
    • 处理结果聚合和合成
    • 支持元数据丰富的工具执行,以获得更好的上下文
  2. 查询优化器 (src/queryOptimizer.ts):

    • 分析意图和上下文的查询
    • 优化不同工具的查询
    • 提取实体、URL和YouTube视频ID
  3. 刀具管理器 (src/toolManager.ts):

    • 根据相关性处理工具选择
    • 使用重试逻辑和缓存管理工具执行
    • 提供统一的错误处理
    • 在需要时使用回退到基于分数的选择
  4. 结果处理器 (src/resultProcessor.ts):

    • 评估结果与批处理的相关性
    • 分析信息差距并创建有针对性的后续查询
    • 综合最终结果
    • 实现并行处理以获得更好的性能
  5. 格式化器 (src/formatter.ts):

    • 具有适当格式的结构输出
    • 处理引文管理
    • 提供信心指标

研究过程

研究过程遵循以下步骤:

  1. 查询分析:分析查询以了解意图、提取实体、识别URL并确定查询类型。

  2. 工具选择:

    • 根据与查询的相关性选择工具
    • 在初始迭代中,以前使用的工具会被过滤掉
    • 对于后续查询,可以重用工具来探索新的方面
  3. 查询优化:查询针对每个选定的工具进行了优化,以最大限度地提高相关性。

  4. 工具执行:

    • 工具与元数据上下文并行执行
    • 相关时自动提取URL和YouTube视频ID
    • 缓存结果以提高性能
  5. 相关性评估:

    • 评估结果与原始查询的相关性
    • 处理过程分批进行,以高效处理大型结果集
    • 通过批处理确保多样性
  6. 差距分析:

    • 识别信息缺口
    • 有针对性的后续查询侧重于缺失的方面
    • 分析提供了具体的缺失方面,并解释了差距
  7. 迭代:

    • 重复后续查询的过程,直到填补空白
    • 工具可以在不同方面的迭代之间重复使用
    • 每次迭代都建立在先前的知识之上
  8. 合成:

    • 所有相关结果都被综合成一个全面的答案
    • 来源被正确引用和组织
    • 置信度得分根据源质量和内容计算

研究工具

该服务与多种专业研究工具集成:

  1. 网页搜索:

    • 勇敢的搜索:以隐私为重点的网络搜索,覆盖面广
    • 塔维利搜索:增强相关性的人工智能搜索
  2. 技术信息:

    • GitHub存储库搜索:查找相关存储库
    • GitHub代码搜索:搜索代码示例和实现
    • 堆栈交换:Stack Overflow和相关网站的技术问答
  3. 学术研究:

    • 档案:学术论文和预印本
    • 专利检索:知识产权和创新跟踪
  4. 时事:

    • 新闻API:最近的新闻和发展
    • 媒体监控:当前事件跟踪
  5. 内容提取:

    • 消防爬行:Web内容提取和分析
    • YouTube文字记录:视频内容转录
  6. 参考信息:

    • 维基百科搜索:一般知识和参考
    • 图书搜索:文献和书目信息

用法

基础示例

const worker = new ResearchWorker();

const result = await worker.research(
  "What are the latest developments in quantum computing?",
  3  // Research depth (1-5)
);

console.log(result.content[0].text);

响应格式

interface ResearchResult {
  answer: string;          // Synthesized research answer
  sources: Source[];       // List of sources used
  confidence: number;      // Overall confidence score (0-1)
  metadata: {
    executionTime: number;
    iterations: number;
    totalResults: number;
    queryTypes: string[];
    toolsUsed: string[];
    toolResults: ToolResult[];
  }
}

设置和配置

先决条件

  • Cloudflare Workers帐户
  • Node.js 16+
  • 牧马人CLI

必需的API密钥

# Core APIs
BRAVE_API_KEY=your_brave_api_key
TAVILY_API_KEY=your_tavily_api_key
GITHUB_TOKEN=your_github_token
FIRE_CRAWL_API_KEY=your_fire_crawl_api_key
NEWS_API_KEY=your_news_api_key
PATENTSVIEW_API_KEY=your_patentsview_api_key

# LLM APIs
OPENAI_API_KEY=your_openai_api_key
GROQ_API_KEY=your_groq_api_key

# Cloudflare Resources
SHARED_SECRET=your_shared_secret     # For API authentication
RESEARCH_CACHE=your_kv_namespace     # For result caching

安装

  1. 克隆存储库:

    git clone https://github.com/yourusername/research-orchestration-service.git
    cd research-orchestration-service
    
  2. 安装依赖项:

    npm install
    
  3. 配置环境变量:

    cp .env.example .env
    # Edit .env with your API keys
    
  4. 部署到Cloudflare Workers:

    wrangler publish
    

配置选项

研究深度

这 depth 参数(1-5)控制:

  • 研究迭代次数
  • 使用的工具数量(深度*1.5)
  • 结果综合复杂性

工具选择

工具选择通过以下方式进行管理:

  • 相关性评分 src/tools.ts
  • 查询类型的工具兼容性元数据
  • 迭代之间的智能重用
  • 上下文感知查询优化

批处理

系统使用批处理用于:

  • 相关性评估(批量:5,平行批次:3)
  • 差距分析(批量:8)
  • 大型结果集的最终多样性通过

缓存

系统在多个级别实现缓存:

  • 完整研究结果(TTL:3天)
  • 单个工具执行
  • 上下文元数据可提高缓存命中率

高级功能

有针对性的后续查询

该系统生成具有高度针对性的后续查询,这些查询:

  • 特别关注缺失的信息
  • 使用与已识别差距相关的精确术语
  • 避免重复已收集的信息
  • 包括对缺失方面的解释

智能刀具再利用

与避免工具重复的传统系统不同:

  • 初始查询过滤掉以前使用过的工具
  • 后续查询可以重用新方面的工具
  • 防止连续重复完全相同的工具集
  • 确保主题的全面覆盖

元数据丰富执行

工具执行包括丰富的上下文:

  • 迭代次数
  • 原始查询和当前查询
  • 后续查询指标
  • 提取的URL和媒体ID

错误处理

该服务实现了全面的错误处理:

  • 临时故障的自动重试
  • 工具故障的回退策略
  • 详细的错误报告
  • 请求验证

未来改进

  • []添加对更专业的研究工具的支持
  • []实施高级缓存策略
  • []通过更好的NLP增强查询理解
  • []添加对特定领域研究工作流程的支持
  • []改进来源验证和事实核查
  • []添加对实时更新和流式结果的支持
  • []实行限速定额管理
  • []添加对自定义工具配置的支持

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

该项目利用了多个API和服务:

  • 勇敢的搜索API用于网络搜索
  • Tavily AI用于增强搜索
  • 用于代码搜索的GitHub API
  • arXiv API用于学术研究
  • 新闻API当前事件
  • 用于图书信息的开放式图书馆API
  • 专利查看API获取专利信息
  • Cloudflare Workers用于托管和执行
  • 用于AI处理的OpenAI和Groq API

特别感谢:

  • Octotools团队启发编排组件架构
  • 所有API提供商和开源社区使该项目成为可能。