跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.mirobody.ai/llms.txt

Use this file to discover all available pages before exploring further.

前置条件

开始搭建开发环境前,请确保你已安装:

Python 3.10+

运行应用程序所需

Node.js 18+

图表渲染和服务器端渲染 (SSR) 所需

Docker & Docker Compose

用于运行 PostgreSQL 和 Redis

系统构建工具

gcc, gfortran 以及科学计算库

Git

用于版本控制

代码编辑器

VS Code, PyCharm 或你偏好的 IDE

快速搭建

1

克隆仓库

git clone https://github.com/thetahealth/mirobody.git
cd mirobody
2

安装系统依赖

xcode-select --install
brew install gcc gfortran fftw hdf5 openblas lapack
3

创建虚拟环境

python3 -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install --upgrade pip
4

安装 Python 依赖

pip install -e .

# 可选额外依赖
# pip install -e ".[cn]"    # 国内可选:阿里 OSS、火山、Dashscope
# pip install -e ".[fin]"   # 金融数据:yfinance
# pip install -e ".[test]"  # 测试套件
Mirobody 也发布在 PyPI 上,可用 pip install mirobody 做非可编辑安装。
5

安装 Node.js 依赖

npm install --omit=dev
服务端图表渲染器依赖。
6

启动后台服务

docker compose up -d pg redis
也可以让 Mirobody 连接你已有的 PostgreSQL / Redis 实例。
7

配置环境变量

echo "ENV=localdb" > .env
echo "CONFIG_ENCRYPTION_KEY=$(openssl rand -hex 32)" >> .env
然后编辑 config.localdb.yaml
# 默认 DeepAgent 必需
OPENROUTER_API_KEY: 'sk-or-...'

# 可选替代项
OPENAI_API_KEY: ''
GOOGLE_API_KEY: ''
ANTHROPIC_API_KEY: ''

# 数据库(默认值匹配 compose 文件)
PG_HOST: 'localhost'
PG_PORT: 5432
PG_USER: 'mirobody'
PG_PASSWORD: ''
PG_DBNAME: 'mirobody'

# Redis
REDIS_HOST: 'localhost'
REDIS_PORT: 6379
REDIS_DB: 0
REDIS_PASSWORD: ''
8

运行应用

python -m main
服务器在 http://localhost:18080 启动。
在 WSL 下运行同样可以从 Windows 直接访问该地址。

开发工具

推荐的 VS Code 扩展

.vscode/extensions.json
{
  "recommendations": [
    "ms-python.python",
    "ms-python.vscode-pylance",
    "ms-python.black-formatter",
    "charliermarsh.ruff",
    "tamasfe.even-better-toml",
    "redhat.vscode-yaml"
  ]
}

代码格式化

# 安装开发依赖
pip install black ruff pytest pytest-asyncio

# 格式化代码
black .

# 代码检查 (Lint)
ruff check .

运行测试

# 运行所有测试
pytest

# 运行并生成覆盖率报告
pytest --cov=connect --cov-report=html

# 运行特定的测试文件
pytest tests/test_provider_garmin.py

# 运行集成测试
pytest -m integration

项目结构

mirobody/
├── mirobody/                # 主应用程序包
│   ├── chat/               # 聊天和 Agent 服务
│   │   ├── adapters/      # 协议适配器 (HTTP, WebSocket)
│   │   ├── agent.py       # Agent 注册和加载
│   │   ├── service.py     # 聊天服务路由
│   │   └── unified_chat_service.py  # 核心聊天逻辑
│   ├── mcp/                # MCP 协议实现
│   │   ├── service.py     # JSON-RPC 处理器
│   │   ├── tool.py        # 工具加载和执行
│   │   └── resource.py    # 资源管理
│   ├── pulse/              # 健康数据平台
│   │   ├── theta/         # OAuth 提供商 (Garmin, Whoop 等)
│   │   ├── apple/         # Apple 健康平台
│   │   ├── core/          # 核心健康服务
│   │   ├── file_parser/   # 文件解析处理器
│   │   └── router/        # API 路由
│   ├── pub/                # 公共工具和 Agent
│   │   ├── tools/         # 通用 MCP 工具
│   │   ├── tools_health/  # 健康相关 MCP 工具
│   │   ├── resources/     # MCP 资源
│   │   └── agents/        # Agent 实现
│   ├── server/             # HTTP 服务器
│   ├── user/               # 身份验证
│   └── utils/              # 实用工具
├── database/               # 数据库架构和迁移
│   └── resource/          # SQL 初始化文件
├── compose.yaml           # Docker Compose 配置
├── config.yaml            # 基础配置 (不可修改)
├── config.localdb.yaml    # 你的环境配置
├── .env                   # 环境变量
├── main.py                # 应用程序入口
├── requirements.txt       # Python 依赖
├── package.json           # Node.js 依赖
└── run.sh                 # 部署脚本

核心目录

包含 Agent 编排、消息历史记录以及 HTTP (SSE) 和 WebSocket 协议适配器的聊天服务。
MCP 协议实现,包含 JSON-RPC 2.0 处理器、工具/资源加载和身份验证。
健康数据平台,包含 OAuth 提供商、Apple 健康集成、文件处理和数据聚合。
可通过 MCP 发现的公共工具、资源和 Agent。在此处添加自定义工具。

下一步

参与贡献

了解如何为项目做出贡献

测试指南

为你的代码编写测试

Provider 集成

添加新的 Provider 集成

部署指南

部署你的改动