Hyperion(代码库:hyper)是一个统一的AI驱动的代码分析和协调平台,通过Model Context Protocol (MCP)与Claude Code集成。它提供智能代码索引、语义搜索以及通过单一Go二进制文件和多种运行模式的AI辅助开发工作流。
hyper),具有三种运行模式┌─────────────────────────────────────────────────────────────┐
│ Hyperion (hyper 二进制文件) │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ HTTP 模式 │ │ MCP 模式 │ │ 两种模式 │ │
│ │ (REST + UI) │ │ (stdio) │ │ (默认) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ 端口 7095 Claude Code 两种模式激活 │
│ Web 浏览器 集成 │
│ │
├─────────────────────────────────────────────────────────────┤
│ 核心服务 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 代码索引与分析 │ │
│ │ • 文件监控 (fsnotify) │ │
│ │ • 代码解析器及标记化 │ │
│ │ • 语义索引 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 嵌入式及向量搜索 │ │
│ │ • 多个嵌入提供商 │ │
│ │ • Qdrant 向量数据库 │ │
│ │ • 语义相似性搜索 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ AI 集成 │ │
│ │ • LangChain 集成 │ │
│ │ • 工具定义 (JSON Schema) │ │
│ │ • MCP 协议处理器 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 存储层 │ │
│ │ • MongoDB (元数据、任务、历史记录) │ │
│ │ • Qdrant (向量嵌入) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
hyper/
├── cmd/
│ └── coordinator/ # 统一的二进制入口点
│ └── main.go # --mode 标志: http|mcp|both
│
├── internal/
│ ├── server/ # HTTP 服务器 (Gin 框架)
│ │ ├── routes.go # REST API 端点
│ │ ├── handlers/ # HTTP 请求处理器
│ │ └── middleware/ # CORS, 认证, 日志
│ │
│ ├── mcp/ # Model Context Protocol
│ │ ├── handlers/ # MCP 工具实现
│ │ ├── storage/ # MongoDB + Qdrant 客户端
│ │ ├── embeddings/ # 嵌入提供商
│ │ ├── indexer/ # 代码索引逻辑
│ │ ├── watcher/ # 文件监控
│ │ └── protocol.go # MCP 协议处理
│ │
│ ├── ai-service/
│ │ ├── tools/ # 工具定义
│ │ └── llm/ # LLM 集成
│ │
│ └── middleware/ # 共享中间件
│
├── embed/ # 嵌入式UI (自动生成)
│ └── ui/ # 构建的React UI
│
├── go.mod # Go 依赖项
├── Makefile # 构建目标
└── .archived/ # 归档冗余二进制文件
├── cmd/bridge/
├── cmd/mcp-server/
├── cmd/indexer/
└── cmd/hyper/
coordinator/
└── ui/ # React UI 源码
├── src/
│ ├── components/ # React 组件
│ ├── pages/ # 页面组件
│ ├── services/ # API 客户端
│ └── App.tsx # 主应用
├── dist/ # 构建的UI (自动生成)
└── package.json
| 组件 | 技术 | 目的 |
|---|---|---|
| 框架 | Gin Web Framework | HTTP 服务器及路由 |
| 协议 | MCP Go SDK | Claude Code 集成 |
| 数据库 | MongoDB | 元数据、任务、历史记录 |
| 向量数据库 | Qdrant | 语义搜索 |
| 文件监控 | fsnotify | 实时文件监控 |
| 嵌入 | 多个提供商 | 向量生成 |
| 日志 | Uber Zap | 结构化日志 |
| LLM 链 | LangChain Go | AI 编排 |
| JWT | golang-jwt | 认证 |
| WebSocket | Gorilla WebSocket | 实时更新 |
| 组件 | 技术 | 目的 |
|---|---|---|
| 框架 | React 18+ | UI 库 |
| 构建工具 | Vite | 快速打包 |
| 样式 | 待定 | UI 样式 |
| API 客户端 | Fetch/Axios | REST API 通信 |
| 状态管理 | 待定 | 状态管理 |
| 提供商 | 模型 | 使用场景 |
|---|---|---|
| Ollama (推荐) | nomic-embed-text | 本地、GPU加速、隐私优先 (默认) |
| OpenAI | text-embedding- 3-small | 云端、高质量 |
| Voyage AI | voyage-3 | 专用嵌入 |
| TEI | 自定义模型 | 自托管嵌入 |
建议:我们强烈建议使用 Ollama 进行嵌入,因为:
- 隐私:所有代码都保留在您的机器上
- 成本:没有API费用或速率限制
- 性能:本地GPU加速处理
- 离线:无需互联网连接即可工作
- 质量:Nomic-embed-text 提供出色的代码嵌入
| 组件 | 目的 |
|---|---|
| MongoDB Atlas | 云数据库 |
| Qdrant Cloud | 管理向量数据库 |
| Docker | 容器化 |
| Docker Compose | 本地开发 |
--mode=http)./bin/hyper --mode=http
--mode=mcp)./bin/hyper --mode=mcp
--mode=both) - 默认./bin/hyper --mode=both
./bin/hyper # 默认
# MongoDB
MONGODB_URI="mongodb+srv://user:pass@cluster.mongodb.net"
MONGODB_DATABASE="coordinator_db1"
# Qdrant 向量数据库
QDRANT_URL="https://qdrant-instance.com"
QDRANT_KNOWLEDGE_COLLECTION="dev_squad_knowledge"
# 嵌入提供商 (ollama|openai|voyage|tei)
EMBEDDING="ollama"
# Ollama 配置
OLLAMA_URL="http://localhost:11434"
OLLAMA_MODEL="nomic-embed-text"
# OpenAI 配置
OPENAI_API_KEY="sk-..."
OPENAI_MODEL="text-embedding-3-small"
# Voyage AI 配置
VOYAGE_API_KEY="pa-..."
# 服务器配置
PORT="7095"
LOG_LEVEL="info"
# 代码索引
CODE_INDEX_AUTO_RECREATE="false"
.env.hyper (在可执行目录或当前目录).env 格式POST /api/index/scan - 扫描目录中的代码GET /api/index/status - 获取索引状态DELETE /api/index/clear - 清除所有已索引的代码POST /api/search/semantic - 语义代码搜索GET /api/search/results/:id - 获取搜索结果GET /api/code/:fileId - 获取代码文件POST /api/analyze - 分析代码片段GET /api/dependencies/:fileId - 获取文件依赖关系GET /api/tasks - 列出任务POST /api/tasks - 创建任务GET /api/history - 获取操作历史POST /api/mcp/tools - 列出可用工具POST /api/mcp/execute - 执行 MCP 工具# 构建带有嵌入式UI的统一二进制文件
make native
# 开发模式带热重载
make dev-hot
# 运行测试
make test
bin/hyper (~16MB,含嵌入式UI)# 构建 Docker 镜像
docker build -t hyperion:latest .
# 使用 Docker Compose 运行
docker-compose up
# 运行容器
docker run -p 7095:7095 \
-e MONGODB_URI="..." \
-e QDRANT_URL="..." \
hyperion:latest
# 安装依赖项
make install
# 安装 Air 以实现热重载
make install-air
# 配置环境
cp .env.example .env.hyper
# 启动热重载 (Go + UI)
make dev-hot
# 或仅 Go 热重载
make dev
# 运行测试
make test
# 构建用于分发
make native
# 运行所有测试
make test
# 运行特定测试
go test ./internal/mcp/handlers -v
# 测试覆盖率
go test -cover ./...
internal/mcp/indexer/internal/mcp/embeddings/internal/mcp/storage/internal/mcp/handlers/internal/server/