项目简介 HAgent (Hardware AI Agent Engine) 是一个开源基础设施,旨在将大型语言模型(LLM)的强大能力引入硬件设计领域。通过将LLM与芯片设计工具集成在编译器式的流水线中,HAgent支持创建定制化的EDA(电子设计自动化)流程,涵盖代码生成、验证、调试和流片等多个环节。其架构利用容器化(Docker)步骤和YAML接口简化开发,并提供MCP服务器以标准化的方式与LLM客户端(如Google Gemini, Claude Code)通信,从而为LLM应用提供安全、可扩展的上下文服务框架。

主要功能点

  • 上下文服务: 作为LLM的后端,提供结构化上下文信息。
  • 工具集成: 将各种硬件设计工具(如Yosys、sbt)封装为LLM可调用的工具。
  • Prompt模板: 支持自定义的Prompt模板,优化LLM的交互模式。
  • 资源管理: 托管和管理与硬件设计相关的资源(如RTL代码、规格文档、构建配置)。
  • 标准化通信: 使用JSON-RPC协议与LLM客户端进行通信。
  • 可扩展性: 允许研究人员和工程师轻松扩展和定制EDA流程。
  • 会话管理: 管理与LLM客户端的会话状态。
  • 能力声明: 向客户端声明可用的工具及其接口(schema)。

安装步骤 HAgent MCP服务器的安装依赖于Python和'uv'包管理器,并推荐使用Docker以获得隔离的运行环境。

  1. 安装'uv':
    • macOS/Linux: 'curl -LsSf https://astral.sh/uv/install.sh | sh'
    • Windows: 'powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"'
    • 或者使用pip: 'pip install uv'
  2. 克隆仓库: 'git clone https://github.com/masc-ucsc/hagent.git' 'cd hagent'
  3. 安装依赖: 'uv sync' 如果需要开发或运行测试:'uv sync --extra dev'
  4. 验证安装: 'uv run python -c "import hagent; print('HAgent installed successfully')"'
  5. 设置API Key: HAgent会使用LiteLLM支持多种LLM提供商。根据您的需求,设置相应的API密钥: 'export OPENAI_API_KEY=your_openai_key_here' 'export SAMBANOVA_API_KEY=your_sambanova_key_here' 'export ANTHROPIC_API_KEY=your_anthropic_key_here' 'export FIREWORKS_AI_API_KEY=your_fireworks_key_here' (请用您的实际密钥替换'your_key_here') 'export HAGENT_LLM_MODEL=openai/gpt-5-mini' (可选,用于覆盖配置中LLM模型)
  6. 设置执行模式和目录: HAgent支持'local'和'docker'两种执行模式。为MCP服务器,推荐使用'docker'模式。
    • Docker模式 (推荐): 仅设置执行模式,其他目录由MCP服务器在首次启动时自动创建或通过'hagent_server.sh'脚本处理。 'export HAGENT_EXECUTION_MODE=docker' (如果需要,可以设置'HAGENT_REPO_DIR', 'HAGENT_BUILD_DIR', 'HAGENT_CACHE_DIR'来挂载宿主机目录,例如:'export HAGENT_REPO_DIR=$(pwd)/repo')
    • Local模式: 'export HAGENT_EXECUTION_MODE=local' 'export HAGENT_REPO_DIR=/path/to/your/git/repository' 'export HAGENT_BUILD_DIR=/path/to/your/build/directory' 'export HAGENT_CACHE_DIR=/path/to/your/cache/directory'

服务器配置 MCP客户端(如Google Gemini, Claude Code)需要配置MCP服务器的启动命令才能连接。以下是配置示例:

{
  "name": "hagent-mcp-server",
  "command": [
    "uv",
    "run",
    "python",
    "hagent/mcp/hagent-mcp-server.py"
  ],
  "args": [
    "--debug" // 可选参数,启用调试模式,输出更详细的日志
  ],
  "description": "HAgent MCP服务器,提供硬件设计AI代理能力。"
}

注意:'hagent-mcp-server.py'脚本在启动时会自动设置一些默认的环境变量,例如'HAGENT_DOCKER'(默认为'mascucsc/hagent-builder:2025.09'),以及在首次运行时根据'HAGENT_REPO_DIR'、'HAGENT_BUILD_DIR'和'HAGENT_CACHE_DIR'创建必要的目录结构或克隆'simplechisel'仓库。请确保您的系统已安装Docker并处于运行状态。

基本使用方法

  1. 启动HAgent MCP服务器: 在'hagent'项目根目录(或通过'scripts/setup_simplechisel_mcp.sh'脚本设置的工作目录)运行: 'uv run python hagent/mcp/hagent-mcp-server.py --debug' 服务器将以stdio模式启动,等待来自MCP客户端的JSON-RPC请求。
  2. 连接MCP客户端: 在您的LLM开发环境(如Google Gemini或Claude Code)中,配置上述的MCP服务器信息,然后连接。
  3. 通过LLM调用工具: 连接成功后,LLM客户端即可调用HAgent MCP服务器提供的工具。例如,您可以使用LLM与MCP服务器交互,请求编译特定的硬件设计:
    • 列出可用工具: LLM客户端会自动发现并列出如'hagent.build'、'hagent.info'等工具及其schema。
    • 调用'hagent.info'工具: 请求获取当前HAgent环境信息。
    • 调用'hagent.build'工具: 请求编译一个设计配置文件。例如,LLM可能会生成如下工具调用: 'hagent.build(name="gcd", api="compile")' 这将指示HAgent MCP服务器执行名为"gcd"的构建配置文件的"compile" API。

信息

分类

AI与计算