HealthClawGuardrails 是 AI Skill Hub 本期精选Agent工作流之一。综合评分 8.0 分,整体质量较高。我们强烈推荐将其纳入你的 AI 工具库,帮助提升工作效率。
HealthClawGuardrails 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
HealthClawGuardrails 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:pip 安装(推荐)
pip install healthclawguardrails
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install healthclawguardrails
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/aks129/HealthClawGuardrails
cd HealthClawGuardrails
pip install -e .
# 验证安装
python -c "import healthclawguardrails; print('安装成功')"
# 命令行使用
healthclawguardrails --help
# 基本用法
healthclawguardrails input_file -o output_file
# Python 代码中调用
import healthclawguardrails
# 示例
result = healthclawguardrails.process("input")
print(result)
# healthclawguardrails 配置文件示例(config.yml) app: name: "healthclawguardrails" debug: false log_level: "INFO" # 运行时指定配置文件 healthclawguardrails --config config.yml # 或通过环境变量配置 export HEALTHCLAWGUARDRAILS_API_KEY="your-key" export HEALTHCLAWGUARDRAILS_OUTPUT_DIR="./output"
<img src=".github/assets/healthclaw-logo.png" alt="HealthClaw — AI-Powered Healthcare Intelligence" width="440">
Full notes live in Releases.
| Version | Highlights |
|---|---|
| **v1.10.0** | **Runs in front of a real FHIR server.** The proxy now authenticates to an upstream FHIR server with its own client credential, so an agent never holds one — with a runnable [Aidbox example](examples/aidbox-healthclaw-guardrails/) that stands the guardrails in front of Aidbox and asserts each property rather than narrating it · **access kernel** — r6.access becomes the one tenant reader, step-up gate, audit call and FHIR exit, adopted blueprint by blueprint · **security**: a caller-supplied seed bundle takes the ingest gate, not the mint gate (an unauthenticated write path, found and closed) · **MCP**: an expired session returns 404, so a client re-initializes instead of failing · **demo data**: multi-year synthetic blood-pressure history and a server-rendered trend chart, with home and clinic readings modelled distinctly · a [defect catalogue](docs/) wired into the PR gate, and drift guards that replay the published example's own claims against the running app |
| **v1.9.0** | **[CareAgents](https://careagents.cloud) — the hosted consumer experience**: sign up with a passkey, connect records through a pluggable connector marketplace (Fasten, Apple Health via Open Wearables, sample data), and spin up a guardrailed health agent reachable on web, Telegram, and iMessage · **advisor registry** — specialties ported from SmartHealthConnect (healthy-habits, care-completion, medication-refills, diet-exercise) as prompt-blocks over the guarded tool set, deferred ones honestly labeled · **versioned informed consent** enforced server-side (HTTP 428) before any real-record connection · **forms rail ships end-to-end** — $populate → per-item human review (NKA never inferred) → provenance-stamped PDF → signed expiring link · **error fidelity is conformance property seven (Grade A = 7/7)**, hardened across both MCP transports with a Python↔TypeScript drift guard · **MCP Apps** — care-gaps results embed an engine-served UI (text/html; profile=mcp-app) whose only fetch target is the guarded operation · security pass: fail-closed prod config, authenticated tenant reads, MCP transport auth, Alembic · SmartHealthConnect archived (skills frozen at v1.2.0; advisors are the live successors) |
| **v1.8.0** | **Real-actions foundation** — an agent can *propose* a real-world action (call, SMS, form) but commit only *submits* it (HTTP 202); execution happens through a separate approval that requires a single-use step-up credential and an expiry-guarded atomic claim, so the agent's own toolchain can never approve its own action (the spoofable X-Human-Confirmed header is gone) · **ActionExecutor plugin registry** — add a real-world capability behind the full guardrail rail in ~50 lines, no core changes ([extend it](ROADMAP.md#extending-the-action-rail)) · mandatory red-flag emergency screen; fail-loud rails (no silent simulation) · **durable execution** — attempt ledger, provider reconciliation, external-tick reaper, append-only action-event log · **reliability floor** — config preflight (GET /r6/ops/preflight), Postgres CI lane, MCP fetch timeouts, poller 409-storm detection, source-aware resource identity (tenant, type, id), Fasten hardening + zombie-job reaper · public [ROADMAP](ROADMAP.md) + contributor on-ramp · fixes: upstream FHIR error fidelity, quality measures default to current year |
| **v1.7.0** | Preventive care-gaps engine (Patient/$care-gaps, USPSTF/ACIP/ADA + eCQM crosswalk) · patient connect flow: identity-verified Fasten onboarding mints a webhook-gated, read-scoped 30-day agent token · prescription transfer requests (rx_transfer_request, Schedule II refused) — 29 MCP tools · [per-agent quickstarts](docs/quickstarts/) (Claude/Perplexity/ChatGPT/Telegram) · HBO export→FHIR converter + embedded-XML PHI scrubber · hardening: fail-closed webhook verify, scoped tokens, serverless write guard, live-path contract tests · clinical fixes: SNOMED diabetes detection, inclusive panic thresholds, one-sided-range honesty |
| **v1.6.0** | Lab reference-range interpreter (Observation/$interpret) · NQF 0018 quality measure (Measure/$evaluate-measure) · [any-agent-framework adapters](docs/recipes/any-agent-framework.md) (OpenAI/Gemini) · [Medplum-in-front recipe](docs/recipes/healthclaw-in-front-of-medplum.md) · SMBP triage on 2025 AHA/ACC · ruff lint gate · all dependency advisories remediated |
| v1.5.0 | Read-auth hardening (tenant reads authenticated, not just scoped) · HL7 SDC forms — $populate / $extract |
| v1.4.0 | Six health-data connectors (Fasten TEFCA, HealthEx, Health Bank One, Flexpa, Epic, MEDENT) behind one guardrail stack |
| v1.3.0 | Wearables → FHIR Observations (8 providers, LOINC/UCUM mapping, device Provenance) |
| v1.2.0 | Compiled Truth — current state + append-only Provenance trail per resource |
uv sync
cd e2e && npm ci && npx playwright install --with-deps chromium && npm test cd e2e && npm run test:headed # headed browser cd e2e && npm run test:ui # interactive UI mode ```
curl "https://app.healthclaw.io/r6/fhir/\$conformance?format=text" ```
Point any MCP client at the public demo server — URL https://mcp-demo-production-ee2c.up.railway.app/mcp, no key required — then ask: "Search my health records for lab results and explain them in plain language." The demo server is unauthenticated but hard-pinned to a synthetic demo tenant, so it can only ever serve fake data. A separate production endpoint (mcp-server-production-5112) requires a deployment-scoped Authorization: Bearer <token> — real records stay behind auth, always. Hosted connectors cannot attach that header, so the demo URL above is the one to paste. One-command installs: gemini extensions install https://github.com/aks129/HealthClawGuardrails · claude plugin marketplace add aks129/HealthClawGuardrails · skills on ClawHub
Non-developer? Step-by-step guides for Claude (web/desktop/phone), Perplexity, ChatGPT, and Telegram — plus a 10-minute demo script — in docs/quickstarts/.
Listed in: Official MCP Registry (io.github.aks129/healthclaw-guardrails) · Glama (hosted connector) · ClawHub (14 skills) · Gemini CLI Extensions · agent-skills discovery at /.well-known/agent-skills/
HealthClaw ships as a Claude Code plugin marketplace. Two plugins are available:
```bash
claude plugin install healthclaw-guardrails@healthclaw-marketplace
claude plugin install smarthealthconnect@healthclaw-marketplace ```
| Plugin | Skills | Source |
|---|---|---|
healthclaw-guardrails | curatr, fasten-connect, fhir-r6-guardrails, fhir-upstream-proxy, healthex-export, phi-redaction | [aks129/HealthClawGuardrails](https://github.com/aks129/HealthClawGuardrails) |
smarthealthconnect | care-completion, diet-exercise, healthy-habits, kids-health, medication-refills, research-monitor | [aks129/SmartHealthConnect](https://github.com/aks129/SmartHealthConnect) *(archived — skills frozen at v1.2.0; live successors are CareAgents advisors)* |
Each skill is auto-discoverable — Claude loads it when your prompt matches the skill's trigger phrases (e.g. "check my care gaps", "redact this bundle", "run Curatr on my conditions").
Not on Claude/MCP? The same 28 guardrailed tools run on OpenAI, Gemini, LangChain, or plain HTTP via the framework-neutral bridge in adapters/ — see Recipe: run HealthClaw tools on any agent framework. Guardrails stay server-side, so no framework can bypass them.
```bash docker-compose up -d --build
```bash
cd services/shl-server && railway up --service shl-server
```bash
```bash
The 6-step demo at /r6/fhir/demo/agent-loop shows the full guardrail sequence:
export SHL_SERVER_URL=http://localhost:8000 ```
Without SHL_SERVER_URL, shl_generate returns an explicit simulation stub (simulated: true) — never a fake link.
railway variables --service shl-server \ --set BASE_URL=<public-url-of-shl-server> \ --set DB_PATH=/data/db.sqlite
| Variable | Required | Default | Description |
|---|---|---|---|
STEP_UP_SECRET | Production | — | HMAC-SHA256 signing secret |
FHIR_UPSTREAM_URL | No | — | Upstream FHIR server (enables proxy mode) |
SQLALCHEMY_DATABASE_URI | Production | sqlite:///mcp_server.db | Database connection |
SESSION_SECRET | No | (dev key) | Flask session secret |
READ_AUTH_ENABLED | Production | false | Require tenant-bound credentials on protected reads |
PUBLIC_TENANTS | Production | — | Explicit comma-separated synthetic/demo tenant allowlist |
REDIS_URL | Production | — | Shared nonce, OAuth, rate-limit, and worker state |
MCP_AUTH_TOKEN | HTTP MCP | — | Bearer credential required by MCP HTTP transports |
MCP_PUBLIC_DEMO | No | false | Run an **unauthenticated** MCP server hard-pinned to a synthetic demo tenant (the public keyless demo). Never set on a server that reaches real tenants |
MCP_DEMO_TENANT | No | desktop-demo | Synthetic tenant the demo server is pinned to when MCP_PUBLIC_DEMO is set |
FHIR_UPSTREAM_TIMEOUT | No | 15 | Upstream request timeout (seconds) |
FHIR_LOCAL_BASE_URL | No | — | Local URL for response URL rewriting |
Database DDL is never run during WSGI import. Run flask --app main init-db before each release; it applies the locked Alembic revisions. Operators adopting Alembic on an existing v1.8.0 Postgres deployment must follow the database migration runbook to verify and stamp the compatibility baseline before upgrading.
```bash
FASTEN_PUBLIC_KEY=<key> FASTEN_PRIVATE_KEY=<key> FASTEN_WEBHOOK_SECRET=<secret> FASTEN_CURATR_SCAN=true # auto-run Curatr after each import ```
Records arrive via webhook at /r6/fasten/webhook and are stored under the patient's canonical tenant ID.
TELEGRAM_BOT_TOKEN=<token> TENANT_ID=my-patient \
FHIR_BASE_URL=http://localhost:5000/r6/fhir \
python openclaw/bot.py
Commands: /health, /conditions, /labs, /curatr, /curatr fix, /approve.
Or via Docker Compose:
docker-compose --profile openclaw up -d
Set in .env (leave FHIR_UPSTREAM_URL empty):
MEDPLUM_BASE_URL=https://api.medplum.com/fhir/R4
MEDPLUM_CLIENT_ID=<id>
MEDPLUM_CLIENT_SECRET=<secret>
All guardrails apply to Medplum responses identically to local SQLite mode. Access tokens are cached in Redis (key medplum:access_token; falls back to in-process cache when Redis is unavailable).
---
| Endpoint | Method | Description |
|---|---|---|
/r6/fhir/metadata | GET | CapabilityStatement |
/r6/fhir/health | GET | Liveness probe (reports upstream status) |
/r6/fhir/{type} | POST | Create resource (requires step-up) |
/r6/fhir/{type} | GET | Search resources |
/r6/fhir/{type}/{id} | GET | Read resource (redacted) |
/r6/fhir/{type}/{id} | PUT | Update resource (requires step-up + ETag) |
/r6/fhir/{type}/$validate | POST | Validate resource |
/r6/fhir/Questionnaire[/{id}]/$populate | POST | SDC — pre-fill a QuestionnaireResponse from a subject |
/r6/fhir/QuestionnaireResponse/$extract | POST | SDC — extract a transaction Bundle (?dryRun=true to preview) |
/r6/fhir/{type}/{id}/$deidentify | GET | Conservative de-identification preview (expert review required) |
/r6/fhir/Observation/$stats | GET | Observation statistics |
/r6/fhir/Observation/$lastn | GET | Most recent observations |
/r6/fhir/Permission/$evaluate | POST | R6 access control evaluation |
/r6/fhir/SubscriptionTopic/$list | GET | Subscription topic discovery |
/r6/fhir/Bundle/$ingest-context | POST | Bundle ingestion + context envelope |
/r6/fhir/context/{id} | GET | Retrieve context envelope |
/r6/fhir/AuditEvent | GET | Search audit events |
/r6/fhir/AuditEvent/$export | GET | Export audit trail (NDJSON/Bundle) |
/r6/fhir/demo/agent-loop | POST | 6-step guardrail demo |
/r6/fhir/oauth/* | * | OAuth 2.1 + PKCE + SMART discovery |
/r6/fhir/{type}/{id}/$curatr-evaluate | GET | Evaluate resource data quality (Curatr) |
/r6/fhir/{type}/{id}/$curatr-apply-fix | POST | Apply patient-approved fixes with Provenance |
Local search accepts the parameters advertised by /r6/fhir/metadata. Unknown parameters default to lenient handling (a bounded search.mode="outcome" warning); Prefer: handling=strict returns a 400 OperationOutcome. Unsupported modifiers and malformed supported values always return 400. _count=0 and _summary=count are count-only searches. Self links contain exactly the applied, URL-encoded parameters, and audit output never echoes submitted filter values or arbitrary parameter names.
| Feature | This Project | AWS HealthLake MCP | Medplum MCP | Raw FHIR API |
|---|---|---|---|---|
| Works with any FHIR server | Yes | HealthLake only | Medplum only | N/A |
| PHI redaction on reads | Yes | No | No | No |
| Immutable audit trail | Yes | CloudTrail (separate) | Partial | No |
| Step-up auth for writes | Yes | IAM (separate) | Medplum auth | No |
| Human-in-the-loop | Yes | No | No | No |
| Permission $evaluate (R6) | Yes | No | No | No |
| Setup time | 10 seconds | 30+ minutes | 15+ minutes | Varies |
HealthClawGuardrails 是一款专为医疗健康领域设计的 AI 智能防护工具。它利用 AI 技术增强医疗数据的智能化处理能力,通过构建安全、合规的护栏机制,确保医疗信息在 AI 交互过程中的准确性与安全性,为开发者提供可靠的医疗智能基础设施。
在 v1.5.0 版本中,我们强化了安全防护能力,对 Guardrail 核心进行了 Read-authentication 加固,并引入了对 HL7 SDC(Structured Data Capture)标准的支持,实现了医疗表单的标准化填充与提取。此外,v1.4.0 版本通过多连接器(Multi-Connector)架构,实现了对多种医疗数据源的自动集成,并将其统一封装为 Telegram 指令,让用户无需离开聊天界面即可管理各类健康记录。
项目依赖管理使用 uv 工具进行同步(uv sync)。对于端到端测试(E2E tests),需要运行 Playwright 环境以支持 UI 与 API 测试。请确保本地已安装 Node.js 环境,并根据需要通过 npx playwright install 命令安装必要的 Chromium 浏览器依赖及相关组件。
本项目支持作为 Claude Plugin 进行安装。开发者可以通过 Claude Code 插件市场快速部署。若要安装本仓库提供的 FHIR Guardrail 插件,请在终端执行:`claude plugin install healthclaw-guardrails@healthclaw-marketplace`。此外,项目也支持通过源码或容器化方式进行部署。
开发者可以通过本地模式快速启动项目。在本地开发环境下,请确保配置好必要的环境变量。对于需要调用服务的功能,请参考 Quick Start 指南进行初始化设置,确保本地环境能够正确模拟或连接到目标服务。
项目配置需通过环境变量进行管��。请将 `SHL_SERVER_URL` 添加至 `services/agent-orchestrator/.env` 或通过 export 命令导出。若未配置该变量,`shl_generate` 将返回模拟桩(simulated: true)而非虚假链接。生产环境下,必须配置 `STEP_UP_SECRET`(用于 HMAC-SHA256 签名)以及 `SQLALCHEMY_DATABASE_URI`(数据库连接字符串)。
本项目提供了一系列符合 FHIR 标准的 API 接口。包括用于获取 CapabilityStatement 的 `/r6/fhir/metadata` 接口、用于健康检查的 `/r6/fhir/health` 接口,以及支持资源创建(需 Step-up 认证)与搜索的 `/r6/fhir/{type}` 接口。所有接口均旨在为 AI Agent 提供结构化且可验证的医疗数据访问能力。
开源AI安全层,保护临床数据安全,代码质量高
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
经综合评估,HealthClawGuardrails 在Agent工作流赛道中表现稳健,质量优秀。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | HealthClawGuardrails |
| 原始描述 | 开源AI工作流:The security layer between AI agents and clinical data. A healthclaw.io open sou。⭐20 · Python |
| Topics | healthaihealthcarepythonsecurity |
| GitHub | https://github.com/aks129/HealthClawGuardrails |
| License | MIT |
| 语言 | Python |
收录时间:2026-07-03 · 更新时间:2026-07-04 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端