跳转到主要内容

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.

安装方法

选择最适合您需求的安装方法:
无论是开发环境还是生产环境,Docker 部署都是推荐的方法。

第 1 步:安装 Docker

下载并安装 Docker Desktop for Mac
brew install --cask docker
从应用程序文件夹启动 Docker Desktop。

第 2 步:安装 Git LFS

用于拉取 fhir_concept_graph.bin 等二进制资产。
# macOS
brew install git-lfs

# Linux
sudo apt install git-lfs

git lfs install

第 3 步:克隆仓库

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

第 4 步:一键部署

./deploy.sh
deploy.sh 会自动完成:
  • 生成 .env(含 ENV=localdb 和新鲜的 CONFIG_ENCRYPTION_KEY
  • 创建默认 config.localdb.yaml
  • 构建 Docker 镜像
  • 启动 Postgres、Redis 和 Mirobody 后端
等到后端日志出现 Uvicorn running on http://0.0.0.0:18080 即可。

第 5 步:填写至少一个 LLM API Key

打开 config.localdb.yaml至少填一个:
# DeepAgent(默认)必需
OPENROUTER_API_KEY: 'sk-or-...'

# 可选替代项
OPENAI_API_KEY: 'sk-...'
GOOGLE_API_KEY: '...'
ANTHROPIC_API_KEY: 'sk-ant-...'
所有敏感字段在首次加载时会用 .env 里的 CONFIG_ENCRYPTION_KEY 自动加密。

验证安装

安装完成后,验证一切运行正常:
1

检查服务健康状况

curl http://localhost:18080/health
预期响应:
{
  "status": "healthy",
  "version": "1.0.1",
  "services": {
    "database": "connected",
    "redis": "connected"
  }
}
2

列出可用提供商

curl http://localhost:18080/api/v1/pulse/providers
应返回可用健康提供商的列表。
3

检查日志

查看应用程序日志以确保没有错误:
# Docker 部署
docker-compose logs -f backend

# 直接安装
# 日志将显示在您运行 main.py 的终端中

安装后设置

要启用健康设备集成,您需要从每个提供商处获取 OAuth 凭据。有关获取和设置以下提供商的 OAuth 凭据的详细说明,请参阅配置指南
  • Garmin Connect
  • Whoop
  • 自定义提供商
要启用 AI 功能,请在 config.localdb.yaml 中添加至少一个 API 密钥:
# ============ LLM API 密钥 (至少需要一个) ============
GOOGLE_API_KEY: ''      # 用于 Gemini 模型
OPENAI_API_KEY: ''      # 用于 GPT 模型
OPENROUTER_API_KEY: ''  # 用于 Claude、DeepSeek 等模型

# ============ Agent 配置 ============
MCP_TOOL_DIRS:
  - mirobody/pub/tools
  - mirobody/pub/tools_health

MCP_RESOURCE_DIRS:
  - mirobody/pub/resources

AGENT_DIRS:
  - mirobody/pub/agents
Mirobody 包含两种 Agent 类型:
  • DeepAgent (基于 LangChain): 最适合复杂任务、文件操作、多步骤规划
  • BaselineAgent (原生 Gemini): 最适合简单对话、轻量级 MCP 集成
有关配置详情,请参阅 工具概览
对于生产环境,请设置安全的加密密钥:
DATABASE_DECRYPTION_KEY: '您的_32_位加密密钥'
JWT_KEY: '您的_安全_JWT_密钥'
在生产环境中使用强随机生成的密钥。切勿将这些密钥提交到版本控制系统中。
配置兼容 S3 的存储用于数据备份:
S3_KEY: '您的访问密钥'
S3_TOKEN: '您的私钥'
S3_REGION: 'us-east-1'
S3_BUCKET: '您的存储桶名称'

目录结构

安装后,您的目录结构将如下所示:
mirobody/
├── mirobody/                 # 核心引擎包
│   ├── chat/                # 会话、历史、流式、记忆
│   ├── mcp/                 # MCP JSON-RPC 2.0 服务器(本地 + HTTP 远程)
│   ├── pulse/               # 数据管线(Pulse)
│   │   ├── theta/          # 可穿戴:Garmin / Whoop / Oura / Renpho / Vital ...
│   │   ├── apple/          # Apple Health + CDA 病历
│   │   ├── core/           # FHIR 映射、指标注册表、单位、聚合
│   │   └── file_parser/    # PDF / Excel / CSV / 音频 / 图像 / 基因
│   ├── pub/                 # 内置 Agent 与工具
│   │   ├── agents/         # DeepAgent / MixAgent / BaselineAgent
│   │   ├── tools/          # 内置 MCP 工具(文件操作、图表、execute)
│   │   └── resources/      # MCP 资源
│   ├── indicator/          # 400+ 指标,LOINC/SNOMED CT/RxNorm 搜索
│   ├── server/             # Starlette ASGI、JWT 中间件、限流
│   ├── user/               # JWT、OAuth、WebAuthn/FIDO2、邮件验证
│   └── utils/              # 配置、LLM 客户端、Embedding、DB、存储

├── tools/                   # ★ 拖入式 Python 工具 → 自动注册为 MCP 工具
├── skills/                  # ★ Claude Agent Skills(SKILL.md + metadata.json)
├── agents/                  # ★ 自定义 Agent 实现
├── providers/               # ★ 自定义数据 Provider
├── prompts/                 # Jinja2 prompt 模板
├── resources/               # 通过 MCP 暴露的静态资源(HTML、JSON)

├── database/                # SQL schema 与迁移
├── tests/                   # 集成测试(pytest)
├── compose.yaml             # Docker Compose 配置
├── config.yaml              # 基础配置(不要直接改,复制成 env 配置)
├── config.localdb.yaml      # 你的环境配置(ENV=localdb)
├── .env                     # ENV + CONFIG_ENCRYPTION_KEY
├── main.py                  # 应用入口
├── pyproject.toml           # Python 包元数据
├── package.json             # Node.js 依赖(图表渲染器)
├── deploy.sh                # Docker 一键部署
└── README.md                # 项目说明
带 ★ 的目录是官方推荐的扩展点 —— 文件丢进去就会自动发现。完整生命周期参见 工具概览

安装问题排查

问题: Docker 命令因权限错误而失败。解决方案:
# Linux: 将用户添加到 docker 组
sudo usermod -aG docker $USER

# 注销并重新登录
newgrp docker
问题: 端口 18080 已被占用。解决方案: 在 config.localdb.yaml 中更改端口:
HTTP_PORT: 18081  # 使用任何可用端口
问题: 无法连接到 PostgreSQL。解决方案:
  1. 验证 PostgreSQL 正在运行:
    docker-compose ps postgres
    
  2. 检查 config.localdb.yaml 中的连接设置:
    PG_HOST: db  # Docker 环境使用 'db',本地安装使用 'localhost'
    PG_PORT: 5432
    PG_USER: holistic_user
    PG_DBNAME: holistic_db
    
  3. 检查数据库日志:
    docker-compose logs postgres
    
问题: Python 3.12 不可用。解决方案:
brew install python@3.12
问题: 运行应用程序时出现 ModuleNotFoundError解决方案:
# 确保安装了所有依赖项
pip install -r requirements.txt

# 以开发模式安装
pip install -e .

卸载

删除所有容器、卷和镜像:
# 停止并删除容器
docker-compose down

# 删除卷 (警告: 这将删除所有数据)
docker-compose down -v

# 删除镜像
docker-compose down --rmi all

下一步

配置指南

配置 OAuth 提供商并自定义设置

快速开始

按照快速开始指南测试您的安装

核心概念

了解 Mirobody 的工作原理

开发环境

搭建您的开发环境