项目简介
HUD Python('hud-python')是一个功能强大的开源工具包,旨在帮助开发者和研究人员构建、评估和训练AI智能体。它将各种软件和应用封装成标准化的交互式环境,这些环境作为MCP服务器运行,允许LLM客户端通过统一的JSON-RPC协议进行通信,并调用工具、访问资源。无论是在本地开发还是大规模云端运行,HUD Python都能提供全面的支持,包括实时遥测、公共基准测试和内置强化学习管道。
主要功能点
- MCP环境构建: 轻松将任何软件或应用转换为遵循Model Context Protocol (MCP) 标准的交互式环境。这些环境作为MCP服务器,提供上下文信息和功能给AI智能体。
- 工具托管与执行: MCP服务器可以注册和执行多种工具,例如浏览器自动化工具(Playwright)、模拟计算机操作工具(键盘、鼠标、截图),以及针对特定应用(如2048游戏、Todo应用、Google表格)的定制工具,使得LLM能够调用外部功能。
- 资源管理与数据访问: 支持托管和管理各种资源,如环境状态、遥测数据、问题注册表等,并提供标准化的访问能力。
- Prompt模板定义: 支持定义和渲染Prompt模板,以实现可定制的LLM交互模式。
- 灵活的部署模式: 支持将MCP环境部署为本地Docker容器、远程云端实例,或直接在Python环境中运行,满足不同场景的需求。
- 强化学习集成: 内置强化学习管道,支持在任何HUD环境中进行策略训练和基准测试。
- 实时遥测与评估: 提供实时监控,记录每一次工具调用、观察和奖励,方便调试和性能分析;支持运行公共基准测试和评估智能体表现。
安装步骤
'hud-python' 可以通过 'pip' 命令轻松安装:
- 核心安装(包含MCP服务器、遥测、基础环境设计工具):
pip install hud-python - 智能体安装(额外添加AI提供者、数据集支持):
pip install "hud-python[agent]" - CLI工具(可选,推荐使用 'uv' 管理):
(如果 'uv' 不可用,可以使用 'pip install --user pipx && pipx install hud-python')uv tool install hud-python
MCP服务器配置
HUD Python生成的MCP服务器支持多种启动方式。MCP客户端需要知道MCP服务器的启动命令及其参数才能建立连接。以下是常见MCP服务器的配置示例:
-
本地Python环境运行 (如文本2048游戏) 如果您的MCP服务器环境文件在项目根目录下的 'environments/text_2048/src' 目录中,可以使用以下配置:
{ "local_text_2048_server": { "command": "python", "args": ["-m", "hud_controller.server"], "env": {"PYTHONPATH": "environments/text_2048/src"}, "cwd": "environments/text_2048" } }- server name: 'local_text_2048_server' - 给您的MCP服务器实例起一个唯一的名称。
- command: 'python' - 启动服务器的命令,这里是Python解释器。
- args: '["-m", "hud_controller.server"]' - 传递给Python解释器的参数,指示运行 'hud_controller.server' 模块。
- env: '{"PYTHONPATH": "environments/text_2048/src"}' - 服务器运行时的环境变量,确保Python能找到 'hud_controller' 模块。
- cwd: '"environments/text_2048"' - 服务器启动时的工作目录。
-
本地Docker容器运行 (如远程浏览器环境) 如果您已构建名为 'hudpython/hud-remote-browser:latest' 的Docker镜像,可以使用以下配置在本地Docker容器中启动MCP服务器:
{ "local_remote_browser_server": { "command": "docker", "args": ["run", "--rm", "-i", "hudpython/hud-remote-browser:latest"] } }- server name: 'local_remote_browser_server' - 给您的MCP服务器实例起一个唯一的名称。
- command: 'docker' - 启动服务器的命令,这里是Docker客户端。
- args: '["run", "--rm", "-i", "hudpython/hud-remote-browser:latest"]' - 传递给Docker客户端的参数,用于运行指定的Docker镜像。
-
远程HUD云端MCP服务器 您也可以连接到HUD提供的远程云端MCP服务器。这种情况下,您只需要提供URL和认证信息。
{ "hud_cloud_mcp": { "url": "https://mcp.hud.so/v3/mcp", "headers": { "Authorization": "Bearer YOUR_HUD_API_KEY", "Mcp-Image": "hudpython/hud-text-2048:v1.2" } } }- server name: 'hud_cloud_mcp' - 给您的MCP服务器实例起一个唯一的名称。
- url: 'https://mcp.hud.so/v3/mcp' - HUD云端MCP服务器的URL。
- headers: 包含认证信息的HTTP头,'YOUR_HUD_API_KEY' 需要替换为您的实际HUD API密钥。'Mcp-Image' 指定要启动的环境Docker镜像。
基本使用方法
安装完成后,您可以:
-
启动一个开发环境 (MCP服务器) 使用HUD CLI命令在本地启动一个带热重载的MCP服务器环境。例如,为远程浏览器环境:
hud dev environments/remote_browser这会在后台启动一个MCP服务器,并允许您在代码修改时自动重载。
-
构建和分析MCP环境镜像 构建您的环境Docker镜像:
hud build your-username/your-environment:latest environments/your_environment_path分析已构建环境的能力(工具、资源等):
hud analyze your-username/your-environment:latest -
使用HUD智能体与环境交互 在您的Python代码中,使用 'hud.clients.MCPClient' 连接到MCP服务器,并使用 'hud.agents' 中提供的智能体(如 'ClaudeAgent' 或 'GenericOpenAIChatAgent')与环境交互,执行任务:
import asyncio import hud from hud.datasets import Task from hud.agents import ClaudeAgent from hud.clients import MCPClient from hud.settings import settings # 获取您的API Key async def run_agent_task(): # MCP服务器配置 (例如,使用HUD云端2048游戏环境) mcp_config = { "hud": { "url": "https://mcp.hud.so/v3/mcp", "headers": { "Authorization": f"Bearer {settings.api_key}", # 替换为您的HUD API Key "Mcp-Image": "hudpython/hud-text-2048:v1.2" # 远程2048游戏环境镜像 } } } # 定义一个任务,包含Prompt、MCP服务器配置、设置工具和评估工具 task_data = { "prompt": "玩2048游戏,争取达到64点。", "mcp_config": mcp_config, "setup_tool": { "name": "setup", "arguments": {"name": "board", "arguments": {"board_size": 4}}, }, "evaluate_tool": { "name": "evaluate", "arguments": {"name": "max_number", "arguments": {"target": 64}}, }, } task = Task(**task_data) # 创建MCP客户端连接MCP服务器 client = MCPClient(mcp_config=task.mcp_config) # 创建一个Claude智能体,并指定允许调用的工具 agent = ClaudeAgent( mcp_client=client, model="claude-sonnet-4-20250514", # 您的Claude模型 allowed_tools=["move"] # 允许智能体使用'move'工具 ) with hud.trace("2048游戏智能体演示"): try: # 运行任务,智能体将自动执行设置、游戏过程和评估 result = await agent.run(task, max_steps=20) print(f"游戏完成!奖励: {result.reward}") finally: # 关闭MCP客户端连接 await client.shutdown() asyncio.run(run_agent_task())这段代码将启动一个AI智能体,连接到远程2048游戏MCP服务器,并尝试完成“达到64点”的任务。您可以在HUD平台('app.hud.so')上实时查看智能体的行为轨迹和评估结果。
信息
分类
AI与计算