Token导航 LogoToken导航TokenDH.com
Analytics Agent logo
AI代理stdio官方级别未说明来源级核验

Analytics Agent

MCP Server

Analytics Agent v2是一个基于自然语言查询复杂数据源的AI助手,支持多轮对话、实时流式处理和智能上下文管理。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
数据分析上下文管理Python自然语言处理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

babak-gusto

提供方

babak-gusto

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run cube-mcp-server

详细介绍

分析代理 v2

由OpenAI Agents SDK和模型上下文协议(MCP)驱动的自助分析AI代理

版本2.0.0\ 状态📋 规划阶段\ 之前的版本: 分析代理 (FastAPI + 函数调用)

______________________________________________________________________

概述

Analytics Agent v2 是一个基于网页的AI助手,使用户能够使用自然语言查询复杂的数据源。它利用了:

  • OpenAI智能体软件开发工具包 用于强大的代理编排
  • 模型上下文协议(MCP) 用于通用数据源集成
  • FastAPI 对于支持流式处理的后端API
  • Next.js 用于现代网页聊天界面

主要特点:

  • 🔌(电源插头/插座) MCP-无关(或MCP-无特定偏好)与任何MCP服务器兼容,无需代码更改
  • 💬 多轮对话在后续问题中保持上下文连贯性
  • ⚡(闪电符号,常用于表示快速、能量或电力等概念) 实时流媒体实时查看代理的工作进度
  • 📊(表格) 智能上下文管理高效处理大型模式
  • 🔍 看起来像是放大镜的符号,可以翻译为“🔍 放大镜”或者根据上下文具体含义翻译为“🔍 查看/放大/仔细观察”等。由于没有具体上下文,这里给出一个通用的翻译:“🔍 放大镜”。 完全可观测性查看工具调用、参数和响应
  • 📝 审计日志记录每次交互均记录在案以确保合规
  • 🎯(瞄准目标) 会话管理用于追踪对话的独特ID

______________________________________________________________________

文档

文件描述
PRD.md 翻译成中文是:“产品需求文档(.md 格式)”完整的产品需求文档
\TECHNICAL_SPECS.md\ 翻译为中文是:“技术规格说明书.md”详细的实施规范
README.md此文件 - 项目概述和快速入门

______________________________________________________________________

快速入门

先决条件

安装

# Clone repository
cd /Users/babak.bashiri/workspace/analytics-agent-v2

# Backend setup
cd backend
uv sync
cp .env.example .env
# Edit .env with your credentials

# Frontend setup
cd ../frontend
npm install

# MCP Server (if not already running)
# Example: Cube MCP server
cd /Users/babak.bashiri/workspace/data-mcp/servers/cube
uv run cube-mcp-server

配置

1. 环境变量 (.env):

OPENAI_API_KEY=sk-...
CUBE_API_URL=http://localhost:4000
CUBE_API_SECRET=your_secret
LOG_LEVEL=INFO

2. 大语言模型(LLM)配置 (config/llm_config.json):

{
  "provider": "openai",
  "model": "gpt-4o",
  "temperature": 0.1,
  "api_key_env": "OPENAI_API_KEY"
}

3. MCP配置 (config/mcp_config.json):

{
  "servers": {
    "cube-local": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "cube-mcp-server"],
      "env": {
        "CUBE_API_URL": "${CUBE_API_URL}",
        "CUBE_API_SECRET": "${CUBE_API_SECRET}"
      }
    }
  }
}

跑步

# Terminal 1: Backend
cd backend
uv run uvicorn main:app --reload --port 8000

# Terminal 2: Frontend
cd frontend
npm run dev

# Open browser
open http://localhost:3002

______________________________________________________________________

建筑

Web Browser (Next.js)
       │
       │ HTTP + SSE
       ▼
FastAPI Server
       │
       ├─ OpenAI Agents SDK
       │   ├─ Agent (instructions + tools)
       │   ├─ Session (conversation history)
       │   └─ Runner (execution orchestration)
       │
       ├─ MCP Service (generic client)
       │   ├─ Tool discovery
       │   ├─ Tool execution
       │   └─ Prompt fetching
       │
       └─ LLM Service (OpenAI)
              │
              ▼
         MCP Servers (stdio/HTTP)
              │
              ├─ Cube.js
              ├─ DataHub
              └─ Snowflake

关键原则该代理已 零知识 特定数据源的。所有与数据相关的特定逻辑都存在于MCP服务器中。

______________________________________________________________________

从v1中获得的关键学习点

行之有效的✅

  1. MCP-无感知架构 - 数据源的切换非常顺畅
  2. 模式总结 - 将上下文管理中的关键参数从85K减少到10K tokens
  3. 实时流媒体 - 用户喜欢看到代理的进步
  4. 工具轨迹可视化 - 调试和透明度的提升改善了用户体验
  5. 会话ID生成 - 代理控制的ID比大型语言模型生成的更可靠

挑战与解决方案 🔧

挑战v1 方法v2 改进
上下文限制错误手动修剪逻辑SDK 会话 + 强力摘要
工具执行错误手动重试循环SDK Runner 自动处理
查询中的类型混淆摘要中无类型信息在模式摘要中包含类型
UI中重复的工具调用复杂的合并逻辑更好的事件排序
会话ID重复大语言模型复制示例代理生成唯一ID

______________________________________________________________________

发展路线图

第一阶段:核心代理(第1-2周)

  • \[x\] 设置项目结构
  • \[ \] 实现MCP服务层
  • \[ \] 创建代理工厂
  • \[ \] 使用Cube MCP服务器进行测试
  • \[ \] 基本的 FastAPI 端点

第二阶段:直播与会议(第三周)

  • \[ \] 实现SSE流
  • \[ \] 会话管理
  • \[ \] 上下文窗口优化
  • \[ \] 多轮对话

第三阶段:前端开发(第4周)

  • \[ \] Next.js 聊天界面
  • \[ \] 实时更新
  • \[ \] 工具轨迹可视化
  • \[ \] 代币使用指标

第四阶段:测试与完善(第5周)

  • \[ \] 单元测试
  • \[ \] 集成测试
  • \[ \] 性能优化
  • \[ \] 文档

第五阶段:部署(第6周)

  • \[ \] Docker 安装设置
  • \[ \] Kubernetes 清单文件
  • \[ \] CI/CD 流水线
  • \[ \] 生产部署

______________________________________________________________________

对比:v1 与 v2

v1(FastAPI + OpenAI 函数调用)

优点:

  • ✅ 对执行流程的完全控制
  • ✅ 易于调试(逻辑清晰可见)
  • ✅ 除OpenAI外,无其他外部依赖

缺点

  • ❌ 手动追踪对话历史
  • ❌ 自定义工具执行循环(易出错)
  • ❌ 手动上下文窗口管理
  • ❌ 没有内置的追踪/可观测性功能

代码行数~960(仅main.py)

v2(OpenAI 代理SDK)

优点:

  • ✅ SDK 自动处理对话历史
  • ✅ 强大的工具执行功能,支持重试
  • ✅ 内置追踪和可观测性
  • ✅ 包含会话管理功能
  • ✅ 更好的错误处理

缺点

  • ⚠️ 控制力减弱(SDK 抽象了细节)
  • ⚠️ 需要理解SDK基础元素

预期代码行数(LOC)~400-500(主要逻辑)

何时使用每个(工具/方法)

如果满足以下条件,请使用v1(手动):

  • 你需要对执行过程拥有完全控制权
  • 你想了解每一个细节
  • 你在做原型设计或学习

如果使用v2(SDK)的情况是:

  • 你想要的是生产就绪的稳健性
  • 你更看重可维护性而非控制力
  • 你需要内置的可观测性
  • 你正在为规模化发展而构建

______________________________________________________________________

测试

单元测试

cd backend
uv run pytest tests/test_mcp_service.py -v
uv run pytest tests/test_agent.py -v

集成测试

uv run pytest tests/test_e2e.py -v

手动测试

# Test MCP connection
curl http://localhost:8000/api/mcp/tools

# Test chat endpoint
curl -X POST http://localhost:8000/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "What data is available?"}'

______________________________________________________________________

故障排除

后端无法启动

错误ModuleNotFoundError: No module named 'agents'

修复

cd backend
uv sync

MCP连接失败

错误MCP connection test failed

检查:

  1. MCP服务器正在运行: lsof -ti:3001
  2. 环境变量已设置: cat .env
  3. 配置正确: cat config/mcp_config.json

修复

# Restart MCP server
cd /path/to/mcp-server
uv run cube-mcp-server

上下文限制超出

错误context_length_exceeded

原因模式过大 + 对话过长

修复模式摘要应该能够处理这个问题。如果问题仍然存在:

  1. 检查是否正在使用模式摘要(设置为2+)
  2. 验证上下文修剪功能是否正常工作
  3. 考虑进行简短的交流或开启新的对话

工具调用显示为“错误”

检查

  1. MCP服务器日志: tail -f /tmp/mcp-server.log
  2. 工具参数有效
  3. MCP服务器可以访问数据源

______________________________________________________________________

做出贡献

代码风格

# Format code
uv run ruff format .

# Lint
uv run ruff check .

# Type check
uv run mypy .

添加新的MCP服务器

  1. 添加服务器配置到 config/mcp_config.json:
{
  "servers": {
    "my-server": {
      "type": "stdio",
      "command": "my-mcp-server",
      "args": [],
      "env": {}
    }
  }
}
  1. 重启后端代理 - 代理将自动发现工具
  1. 无需更改代码! 🎉

______________________________________________________________________

常见问题解答(FAQ)

问:这与v1有什么不同?

A.v2版本使用OpenAI Agents SDK进行编排,而不是手动循环。这提供了更好的鲁棒性、内置的会话管理,以及更少的维护代码。

问:我可以使用不同的大型语言模型(LLM)提供商吗?

A.目前仅支持OpenAI。未来版本可能通过提供商抽象支持Anthropic、Cohere等。

问:如何添加新的数据源?

A.为您的数据源创建或部署一个MCP服务器,并将其添加到 mcp_config.json代理自动发现并使用新工具。

问:为什么使用MCP而不是直接调用API?

A.MCP 提供了一种标准协议,用于工具发现、模式检查和执行。这使得代理具有真正的通用性——它可以在不修改代码的情况下与任何兼容 MCP 的数据源一起工作。

问:每次查询的费用是多少?

A.取决于:

  • 模型:gpt-4o ~每查询0.01-0.05美元
  • 模式大小:首次查询成本更高(完整模式)
  • 对话长度:越长 = 上下文越多 = 成本越高

典型费用:每次多轮对话0.02-0.10美元。

问:我的数据安全吗?

A.

  • 数据永远不会离开您的基础设施(MCP服务器控制访问)
  • 代理仅能看到MCP服务器返回的内容
  • 所有查询均已记录,以供审计
  • 在生产环境中添加认证(未来实施)

______________________________________________________________________

资源

文档

相关项目

支持

  • GitHub 问题:\[仓库链接\]
  • Slack: #分析代理(或 #数据分析助手,根据上下文具体翻译)
  • 电子邮箱:data-team@example.com

______________________________________________________________________

许可证

麻省理工学院(MIT)

______________________________________________________________________

致谢

由数据工程团队构建,融合了以下方面的学习成果:

  • v1 实现(FastAPI + 函数调用)
  • 来自50多名用户的生产使用反馈
  • OpenAI Agents SDK 最佳实践
  • MCP协议社区

特别感谢所有v1版本的用户,帮助我们发现并修复了边缘情况! 🙏

______________________________________________________________________

状态准备实施

下一步评论 TECHNICAL_SPECS.md 翻译为中文是:“技术规格说明文件.md” 并开始第一阶段的实施。

目录标签

目录标签

数据分析上下文管理Python自然语言处理本地部署AI助手实时流式处理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP