什么是 Tools?
Tools 是一些 Python functions,让 AI agents 能够与健康数据交互、执行动作并访问外部服务。Mirobody Health 的 tools 系统让你无需复杂配置就能非常轻松地扩展自定义能力。Tools 会从项目根目录的
tools/ 自动发现,并通过 MCP protocol 对外暴露。Tool 架构
易于添加
编写 Python functions——无需 JSON schema
自动发现
自动检测并注册 tools
MCP 原生
通过 Model Context Protocol 立即可用
内置 Tools
Mirobody Health 默认包含两个关键的健康 tools:1. get_user_health_profile
获取完整的用户健康 profile 信息。- 用户 profile 信息
- 已连接的健康设备/providers
- 健康数据摘要与统计信息
2. get_health_indicator
获取用于分析的指定健康指标数据。- 查询一段时间内的心率数据
- 获取睡眠模式
- 分析活动趋势
- 对比生物标志物
Tool 分类
- 用户数据 Tools
- 公共数据 Tools
需要认证的 私有数据 tools:
- 访问用户健康指标
- 查询个人 profiles
- 获取设备数据
- 分析个人趋势
- 必须包含
user_info: UserInfo参数 - 自动强制 OAuth 认证
- 数据仅限当前认证用户范围
Tools 如何工作
1
Tool 发现
启动时,Mirobody Health 会扫描
tools/ 目录,查找包含 Service class 的 Python 文件。2
自动注册
Service class 中的每个 public method 都会被自动注册为一个 tool。
3
通过 MCP 暴露
Tools 会通过 MCP protocol 在
http://localhost:18080/mcp 暴露出来,供 AI agents 发现并调用。4
Agent 调用
AI agents(Claude、Cursor、ChatGPT)可以通过 MCP 接口发现并调用你的 tools。
Tool 配置
Tools 在config.yaml 中配置:
config.yaml
健康数据的数据库 Schema
Tools 可以从以下表中查询标准化健康数据:theta_ai.th_series_data
用于时间序列健康指标的主表:| Column | Type | Description |
|---|---|---|
id | integer | Primary key |
user_id | varchar | 用户标识 |
indicator | varchar | 指标 code/name |
value | text | 原始指标值 |
value_standardized | text | 标准化后的指标值 |
start_time | timestamp | 指标开始时间 |
end_time | timestamp | 指标结束时间 |
source | varchar | 数据来源(system/device/manual) |
source_table | varchar | 原始来源表 |
source_table_id | varchar | 来源记录 ID |
indicator_id | text | 唯一指标标识 |
deleted | integer | 删除标记(0: active, 1: deleted) |
create_time | timestamptz | 创建时间戳 |
update_time | timestamptz | 更新时间戳 |
task_id | varchar | Task ID |
full_dim_id | bigint | Full dimension ID |
fhir_id | bigint | FHIR resource ID |
fhir_mapping_info | jsonb | FHIR mapping 信息 |
is_standardized | boolean | 标准化标记 |
comment | text | 备注 |
theta_ai.health_user_profile_by_system
用户 profile 存储表:| Column | Type | Description |
|---|---|---|
id | integer | Primary key |
user_id | varchar | 用户标识 |
version | integer | 版本号 |
name | varchar | Profile 名称 |
last_execute_doc_id | integer | 上一次执行的 document ID |
common_part | varchar | Profile 内容(JSON) |
create_time | timestamp | 创建时间戳 |
last_update_time | timestamp | 更新时间戳 |
is_deleted | boolean | 删除标记 |