@harrylabs/demora-agent
v0.1.0
Published
Distributable dementia-care companion agent for Hermes Agent and OpenClaw.
Maintainers
Readme
Demora
Distributable dementia-care companion agent for Hermes Agent and OpenClaw.
It provides companionship, medication reminders, safety triage, and caregiver intervention payloads such as Weixin/WeChat alerts. The package is independent: it contains no personal credentials, no hardcoded caregiver account, and defaults to dry-run.
What It Includes
- Shared Node CLI:
demora-agent - Hermes plugin:
plugin.yaml,__init__.py,hermes_plugin_tools.py - OpenClaw plugin:
openclaw.plugin.json,index.js,openclaw_compat.js - Hermes skill:
skills/demora/SKILL.md - OpenClaw skill:
clawhub/skills/demora/SKILL.md - Patient profile example:
config/example.patient-profile.json - Agent workspace templates for OpenClaw
- Hermes profile setup notes
Safety Position
This agent supports daily care. It does not diagnose, prescribe, or change medication. It never recommends changing dose. 用药提醒只负责提醒和记录确认,不替代医生或照护者判断。It escalates risk to a caregiver when the patient shows disorientation, wandering risk, possible medical distress, or medication confusion.
Communication principles follow public dementia-care guidance: keep language simple, stay calm, avoid arguing, ask one question at a time, and preserve dignity. Useful references:
- National Institute on Aging: https://www.nia.nih.gov/health/alzheimers-caregiving
- Alzheimer's Association communication guidance: https://www.alz.org/help-support/caregiving/daily-care/communications
- Alzheimer's Association medication safety: https://www.alz.org/help-support/caregiving/safety/medication-safety
Quick Test
npm test
npm run test:python
node ./bin/demora-agent.mjs status --profile ./config/example.patient-profile.json
node ./bin/demora-agent.mjs reminders due --profile ./config/example.patient-profile.json --now '2026-05-02T08:00:00+08:00'NPM Install
npm install -g @harrylabs/demora-agent
demora-agent status --profile ./patient-profile.jsonPatient Profile
Copy the example and edit it for the deployment:
cp config/example.patient-profile.json ./patient-profile.jsonSet:
- patient preferred name
- calming topics
- caregiver
channelandtarget - medication names, doses, and times
Keep real medical details private. Do not publish filled profiles.
Hermes Install
From a checkout:
hermes plugins install /absolute/path/to/demora-agent --enableThen load the skill in Hermes:
/skill demoraUse:
/demora 王阿姨说她不知道在哪里,想出门找妈妈Medication cron can call:
Use demora. Check medication reminders from /path/to/patient-profile.json. Deliver only if the host gateway route is configured; otherwise dry-run.OpenClaw Install
Install the plugin into OpenClaw using the local/plugin mechanism used by your OpenClaw deployment. The plugin manifest is:
openclaw.plugin.jsonSet plugin config:
{
"profilePath": "/absolute/path/to/patient-profile.json",
"deliveryMode": "dry-run",
"defaultCaregiverChannel": "openclaw-weixin"
}Copy the workspace template if you want a dedicated agent:
cp -R templates/openclaw-agent-workspace ~/.openclaw/workspace-demoraThen configure an OpenClaw agent that uses that workspace and the demora skill.
Weixin / WeChat Intervention
The package does not directly own Weixin credentials. It returns caregiver alert payloads:
{
"severity": "urgent",
"channel": "weixin",
"target": "wxid_or_group_id",
"message": "..."
}The host ecosystem sends the message:
- Hermes: gateway delivery after the installer configures Weixin.
- OpenClaw: message tool / channel delivery after the installer configures OpenClaw Weixin.
Until that route is configured, keep deliveryMode as dry-run.
Voice Interaction
语音互动应当使用宿主生态的语音/TTS 能力,并保持短句、慢速、一次一个动作。
Use the host voice/TTS layer:
- Hermes:
/voice onor TTS configuration. - OpenClaw: Voice Wake / Talk Mode / node TTS.
Patient-facing text is intentionally short and spoken-language friendly:
- one or two sentences
- one next step
- no dense Markdown
- no long menus
Example:
王阿姨,先不要出门。你现在是安全的。请坐在亮一点的地方,我马上联系家人。Tools
demora_status
Validates a profile and confirms dry-run delivery defaults.
demora_reminders_due
Returns medication reminders due near a time. Output includes patient copy and caregiver alert payload.
demora_triage
Classifies patient text for disorientation, wandering risk, medical distress, or medication confusion.
demora_reply
Creates short dementia-friendly companion text.
Verification
./scripts/verify.sh