跳转到内容
快速开始

开始使用

自部署 Mirobody

在你自己的基础设施上运行 Mirobody 引擎:能得到什么、三个步骤、数据如何流动,以及如何扩展。

在你自己的机器、服务器或云主机上运行 Mirobody。引擎以 Apache 2.0 开源:核心是一个可以直接 当作库调用的 Python 包(3.12 及以上),需要完整能力时再加上 HTTP 服务、后台 worker、 PostgreSQL(含 pgvector)与 Redis。源码位于 thetahealth/mirobody

Mirobody 是什么、解决的是什么问题,见Mirobody 简介。本页讲的是自己 把它跑起来。

代码结构、贡献方向与这份文档都按同样的三个步骤组织,即 C · S · A —— 其中的 A 既是 Answers,也是产出它的 agent

步骤含义在包里的位置
采集(Collect)从设备 provider、上传的文档与端上批量样本接入数据mirobody/pulse/
标准化(Standardize)将读数解析到规范编码(LOINC · SNOMED CT · RxNorm),归一单位,落为 FHIR R4mirobody/indicator/
问答(Answers)agent 通过虚拟文件系统读取原始文档,给出带图表与引用的回答。同一份标准化序列也支撑了衍生用法:按计划产出的洞察、生成的报告,以及你在其上构建的预警提醒mirobody/agent/

同一项测量在每个来源那里都有不同的写法,单位与参考区间也各不相同 —— 仅这些差异就足以让一个人自己的历史数据无法互相比较。Mirobody 承担的正是这一层:指标名在入库之前被解析,而不是按到达时的字符串原样保存。血红蛋白ヘモグロビンhemoglobin 都解析到 LOINC 718-7LDL-C 与「低密度脂蛋白胆固醇」都解析到 LOINC 13457-7。单位在同一遍处理中归一到 UCUM,因此 毫摩尔每升mmol/L 记录为同一个单位。最终效果是:来自不同设备、不同实验室、不同语言的报告,可以落在同一条时间序列上。

解析在本地完成,所用词表随包发布,不需要密钥、配置与网络连接:

Terminal window
pip install mirobody
mirobody resolve "LDL cholesterol" "血红蛋白" "ヘモグロビン"
from mirobody.engine import resolve
resolve("血红蛋白").loinc # -> '718-7'

标准化可以单独安装,因此这一步可以先用起来,不必运行其余服务。解析规则与随包词表见健康指标,作为库调用的接口见引擎即库

provider 与端上批量样本在写入之前收敛到 StandardPulseData;文件抽取直接写入存储,保留报告原文的指标名,再由语义检索归并。两条通路都落在同一张指标表上,因此 agent 查询的是指标,而不是每家厂商一种形状。写入路径、其后的两张表以及聚合方式见数据流

每种方式对应一个 agent,区别在于tool loop 在谁那边运行

DeepAgent:引擎在你的部署中运行BaseAgent:由外部模型调用
tool loop 运行在这里,你的部署里LLM 服务商那边,通过 HTTP 调用 /mcp
适合自己运行整套引擎Claude Desktop · Cursor · ChatGPT Apps · 任意 MCP 客户端
额外能力虚拟文件系统、QuickJS、Agent Skills、图表MCP 工具面暴露出来的那些

引擎可以按用户签发一条个人 MCP URLPOST /personal/mcp),使某个人的 MCP 客户端只能访问他自己的数据。随包的 Web 客户端把它放在设置里;你自己的客户端也可以直接调这个端点。见Agent 类型MCP 集成

五个配置键各指向一组目录,引擎在启动时扫描它们。扩展不需要编译,也不需要在任何注册表里登记。

配置键默认值放什么
MCP_TOOL_DIRSmirobody/agent/tools工具模块:一个函数或一个 *Service 类就是一个 MCP 工具
MCP_RESOURCE_DIRSmirobody/agent/resourcesMCP UI 资源
AGENT_DIRSmirobody/agentagent 实现
PROVIDER_DIRSmirobody/pulse/providers数据 provider,每个来源一个 mirobody_<slug>/
SKILL_DIRSmirobody/agent/skillsAgent Skills:一个目录,里面放一个 SKILL.md

config.{env}.yaml 中加入自己的目录,并置于列表最前,即可覆盖随包内容。见添加自定义工具Agent Skills开发 Provider

自部署是运行 Mirobody 的两种方式之一,两种方式都不只提供 API,还各自带有现成的入口:

入口地址说明
你自己的部署localhost:18080git clone./deploy.sh → 登录。数据留在你自己的机器上,自带的 Web 客户端是一个完整应用:/data 管文档与读数,/ask 是 agent,另有关爱圈共享:成员可以允许家人(也可以是医生)基于自己的记录向 AI 提问。
你自己的 MCP 端点localhost:18080/mcp供 Claude Desktop、Cursor 等 MCP 客户端接入;需要 HTTPS 或远程访问时设置 MCP_PUBLIC_URL
托管版对话chat.mirobody.ai由我们运行的客户端。
Mirobody Cloudplatform.mirobody.ai密钥、用量,以及用于在其上构建应用的健康数据 API,见云端标签页。
微信小程序微信里搜 mirobody仅限国内、中文界面。后端与托管版对话是同一套,记录与指标也是同一份。

运行起来

快速开始执行:克隆仓库、运行 ./deploy.sh、登录。

完成配置

config.{env}.yaml 里同时填 LLM key embedding key,见配置。两者是不同的密钥;缺少 embedding key 时,健康指标会始终为 0。

了解结构

先读引擎即库了解四档安装分层,再读架构概览

按需扩展

添加自定义工具加一个工具,或用开发 Provider加一个数据源。

贡献同样按这三个步骤划分。其中门槛最低的一类是补全一个无法解析的指标名:用 mirobody resolve "<term>" 确认现状,在 resolver_overrides.tsv 中补一条映射,并在 test_engine_coverage.py 中补一个用例。