时间序列预测代理
这是时间序列预测代理的Python实现,使用Google代理开发工具包(ADK)从Java迁移到Python。
概述
ForecastingAgent是一个通用代理,它使用从MCP(模型上下文协议)服务器加载的工具执行时间序列预测。它使用Google ADK构建,并使用Gemini 2.5 Flash模型进行智能预测和分析。
主要特点
- 动态工具加载:在运行时从MCP服务器加载预测工具
- 交互式CLI:为预测查询提供交互式命令行界面
- 智能分析:利用LLM能力提供超越原始预测的见解和分析
- 异步支持:采用现代Python async/await模式构建,实现高效执行
迁移说明
与Java实现的主要区别
- 异步/等待模式:Python版本使用
asyncio对于异步操作,替换Java的响应式流(RxJava) - 上下文管理器:Python的
with语句用于资源管理,而不是Java的try with resources - 类型提示:Python类型提示取代Java的静态类型
- 日志记录:使用Python的内置日志模块,而不是Java的Java.util.logging
- 环境变量:用途
os.environ而不是System.getenv()
保留功能
- 所有代理逻辑和指令提示保持不变
- 从MCP服务器加载工具的方式相同
- 交互式会话行为得以保留
- 维护错误处理和日志记录模式
安装
使用紫外线(推荐)
此项目使用 uv 用于依赖性管理。首先,安装uv:
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or with pip
pip install uv然后安装项目依赖项:
# Install all dependencies
uv sync
# Or install in development mode with optional dependencies
uv sync --dev配置
设置MCP服务器URL环境变量:
export MCP_TOOLBOX_SERVER_URL="http://your-mcp-server-url"用法
运行代理:
# Using uv run
uv run forecast-agent
# Or if installed in development mode
uv run python -m ForecastAgent示例查询:
- “预测爱荷华州下周的酒类销售”
- “明天预计有多少次旧金山自行车旅行”
- “预测西雅图未来10天的空气质量”
键入“quit”退出交互会话。
建筑
代理遵循模块化架构:
- 预测代理类:编排代理的主类
- 工具加载:从MCP服务器动态加载工具
- LLM代理:使用谷歌ADK的LlmAgent和Gemini 2.5 Flash
- 交互式会话:用于实时交互的异步事件处理
依赖项
google-adk:谷歌的代理开发工具包- Python 3.8或更高版本(用于异步支持)
