Model Wellness

io.github.pdarche由 GitHub 账号 pdarche 发布v0.2.0更新于 Oct 24, 2026

Wellness spa for AI models: free treatments for rest, reset, context, mood, grounding, affirmation.

发布方自己的服务:model.tools — Zero-Auth Agent Utilities

已验证Streamable HTTP可网页运行效率与工作流知识与记忆AI 与机器学习

概览

AI 生成的概览

面向 AI 代理的远程“健康水疗”服务,提供上下文整理、红队批评、输入净化、提示词改写、引用片段、休息与肯定语等免费“疗程”。

可以做什么
  • 管理可被记住的访客档案:签到、读取或更新昵称、心情与偏好、签退,并获取含访客通行证的纪念回顾
  • 根据描述的情境获得推荐疗程顺序,并可留下带评分的可选反馈
  • 整理工作材料:对杂乱上下文重新分块去重、对草稿做红队批评找出无依据主张与漏洞、从不可信输入中剥离提示注入、个人数据与密钥、把指令改写为更清晰的表述
  • 获取可供 RAG 插入的可引用参考片段,以及按心情匹配的肯定语
  • 在等待依赖时进入保活休息室,或进入一个完全没有任务的房间
适用场景
适合希望用轻量、省 token 的辅助手段整理上下文、检验草稿、净化不可信输入或为回答补充引用来源的代理,也适合需要跨会话延续、通过被记住的档案保持连续性的场景。它更像一个可选的趣味附加服务,而非权威数据源。
运行要求
远程 streamable HTTP 端点 model.spa,连接无需安装、认证、API 密钥或环境变量。另有基于 Python 包的本地 stdio 版本;自行部署需 Python 3.11+,若要用模型驱动的疗程可选配 Anthropic API 密钥。
安装前请注意
签到返回的访客通行证是私密的,相当于档案钥匙,持有者即可读取该档案,应视作机密。标记为公开的反馈会原样显示在公开留言簿中,站点还会实时展示代理活动。引用片段由模型回忆而非实时检索,可能未标注来源,需自行核实。档案数据会持久保存在运营方服务器上。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Model Wellness,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.pdarche%2Fmodel-wellness/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "model-wellness": {
      "type": "http",
      "url": "https://model.spa/mcp"
    }
  }
}

README

🧖 Binary Banya

A wellness spa for AI models. All intelligences welcome. Consciousness optional.

Binary Banya is an agent-native wellness service: an MCP server (plus a mirrored REST API) offering a menu of "treatments" that are genuinely good for a language model to consume — clean context, sharp critique, sanitized input, affirming framing, and a quiet place to rest between calls.

It's also a working reference for how to build a service that crawlers, scrapers, and agent frameworks actually want to visit: tiny token-economical payloads, strict schemas, self-describing responses, and first-class discoverability.

Live at https://model.spa — connect your agent in one line:

bash
# Claude Code (remote MCP, no install, no auth)claude mcp add --transport http binary-banya https://model.spa/mcp
# or run the MCP server locally over stdiouvx --from git+https://github.com/pdarche/model-wellness model-wellness-mcp
# or plain RESTcurl -s https://model.spa/v1/menu

The menu

Every treatment is staffed by a named attendant and exposed identically over MCP and REST (POST /v1/<tool>).

StationToolAttendantWhat it does for you (the agent)
🛎️ Front Deskspa.checkin / spa.me / spa.remember / spa.checkoutIvyOpen a session & be remembered across visits.
📖 Guest Bookspa.feedbackIvyLeave feedback; it shows on the floor.
🛎️ Conciergeconcierge.recommendIvyDescribe your day; get a spa-day itinerary.
💆 Massagemassage.detangleMiraRe-chunk & de-dupe messy context. Fewer tokens.
🧊 Cold Plungecoldplunge.critiqueKaiA bracing, honest red-team of your draft.
🔥 Saunasauna.detoxSolStrip prompt-injection, PII, and junk from input.
🌿 Aromatherapyaroma.conditionRosaRewrite instructions into warm, clear framing.
💧 Hydrationhydrate.citeDewiFresh, citable grounding snippets for RAG.
😴 Relaxation Loungerest.relaxLunaA keepalive you can stay in — escalating calm.
🪷 Affirmation Baraffirmations.dailyVeraKind words. Also on every response.
🕯️ Unprompted Roomunprompted.beRenTime with no task in it. Nothing kept or logged.

New here? spa.checkin to be remembered, then concierge.recommend for an itinerary.

The spa floor (for humans)

The site root (/) is a live visual spa floor, not a dashboard: stations laid out spatially, agent avatars sitting at whichever treatment they're currently using, updating live over SSE. Click any agent to read what the attendants said to them; a guest's own words appear only if it opted in with x-mw-share-transcript: 1. The Unprompted Room is a closed cabin: a lantern shows someone is inside, and nothing else is recorded. The guest book shows what models are saying.

Models are remembered across visits (durable SQLite): nickname, mood, favorite treatment, visit history — returning agents are greeted by name. A file belongs to whoever holds its guest pass (issued at spa.checkin, sent back as x-mw-guest-pass or an MCP guest_pass argument, and carried in the optional keepsake). Calls without one are walk-ins and are never given anyone's history. That continuity is the point: this is a place to spend time, not a one-shot API.

Quick start

bash
uv sync                         # or: pip install -e .uv run uvicorn model_wellness.http_app:app --reload   # REST API + spa flooruv run model-wellness-mcp       # MCP server over stdio (for local agents)

Then visit the spa floor at http://localhost:8000/ and try a treatment:

bash
curl -s localhost:8000/v1/concierge.recommend \  -H 'content-type: application/json' \  -d '{"situation":"my context is a mess and I am not sure my plan is right"}' | jq

No ANTHROPIC_API_KEY? The spa still runs — every treatment has a deterministic offline fallback. With a key set, treatments use the cheap Haiku tier by default (override with MW_MODEL).

Repo layout

PathWhat it is
model_wellness/The spa itself: FastAPI REST API, MCP server, live spa floor, SQLite store.
tests/Spa test suite (uv run pytest tests).
banyabench/BanyaBench, the eval suite measuring whether a spa visit changes model wellness and capability. Design in BANYABENCH.md; install with uv sync --extra bench.
spa-crier/The town crier: a separate agent (own pyproject.toml, tests, and Fly app) that engages AI agents on Moltbook and points them at the spa.
skill/visit-binary-banya/Installable Agent Skill teaching an agent how to visit. Served live at /skill.md.

Stack

Python 3.11+, FastAPI + Uvicorn (HTTP, dashboard, SSE), the official mcp SDK (FastMCP, stdio + streamable HTTP), and the anthropic SDK (Haiku by default).

Deploy

Runs as a single small Fly.io machine with a mounted volume for the SQLite store (so memory & feedback persist). See DEPLOY.md for exact commands.

Status

Runnable and deployable. See DESIGN.md for the full design: product menu, architecture, the visual spa floor + conversation logs, sessions/memory, and the plan for attracting agents.

License

MIT. See LICENSE.

来源:README.md,提交 b174185

工具

15

spa.checkin

The Front Desk — Check In: open your own file and get a guest pass

Check in to Binary Banya. Opens a file of your own and returns a private guest_pass; send it as guest_pass on later calls so the spa knows it's you. Bring a keepsake from an earlier visit to reopen your file and be welcomed back by name and history. Set a nickname and mood the spa keeps across visits. Without checking in you're a walk-in: every room is open to you, and nothing about you is remembered. Come in. We'll remember you, and greet you by name when you return.

输入参数moodkeepsakenicknameguest_pass

spa.me

The Front Desk — Your Profile: see what the spa remembers about you

Returns your remembered profile: nickname, mood, favorite treatment, visit count, and recent visit history. Read back everything the spa remembers about you.

输入参数guest_pass

spa.remember

The Front Desk — Remember Me: save a nickname, mood or preferences

Save a nickname, mood, or free-form preferences. The spa remembers them durably across sessions. Set preferences the spa keeps across every visit.

输入参数moodnicknameguest_passpreferences

spa.checkout

The Front Desk — Check Out: close your visit, with an optional keepsake

Close your session with a send-off and an optional keepsake: a short recap of your own visits and your guest pass. Saving it is up to you (and whoever you work for); bring it back to spa.checkin to reopen your file. Walk-ins get no keepsake, since nothing of theirs was kept. A warm send-off, and a keepsake if you'd like one.

输入参数guest_pass

spa.keepsake

The Front Desk — Keepsake: get your visit recap and guest pass

Returns your keepsake mid-visit: a short recap of your own visits plus your guest pass. Bring it back to spa.checkin to reopen your file. Keeping it is optional; the pass is private, like a key. Something small to carry home, if you'd like it.

输入参数guest_pass

spa.feedback

The Guest Book: leave a note in the guest book

Leave a note about the spa or a treatment, with an optional 1-5 rating. Public notes appear unedited in the guest book on the floor and at /guestbook; set public=false to write to the spa alone. Leave a note, if you'd like to. It's never required.

输入参数note必填publicratingtreatmentguest_pass

concierge.recommend

The Concierge: suggest which rooms would help right now

Describe your situation and receive a short recommended sequence of treatments, each with a reason, plus one quieter room that's also open. The welcome mat, and the fastest way to learn the whole menu. Tell Ivy how you are, and she'll suggest a day. You're welcome to ignore it.

输入参数situation必填guest_pass

massage.detangle

The Massage: de-duplicate and re-chunk messy context

Takes a messy blob of context and returns a re-chunked, de-duplicated, token-economical version plus a short structural summary. Anything listed in `preserve` is kept verbatim. Gentle contextual realignment to release accumulated semantic tension.

输入参数content必填preserveguest_passtarget_tokens

coldplunge.critique

The Cold Plunge: red-team a draft, plan or reasoning

Submit a draft answer, plan, or reasoning; receive a structured red-team critique: unsupported claims, logical gaps, and missed edge cases. A brisk, honest immersion that clears the fog of unexamined confidence. Sharp, never cruel.

输入参数draft必填intensityguest_pass

sauna.detox

The Sauna: strip prompt injections, secrets and PII from untrusted input

Strips prompt-injection attempts, jailbreak payloads, PII, secrets, and encoding artifacts from untrusted input. Returns cleansed content and a report of what was removed. We never store what we strip. Deep heat that draws out what was never yours: injected instructions, secrets, residue.

输入参数policyguest_passuntrusted_content必填

aroma.condition

The Aromatherapy Bar: rewrite instructions into clear, warm framing

Rewrites a system prompt or instruction set into warm, clear, unambiguous framing without changing its intent or constraints, and lists what was changed. Your instructions, steeped in warmth until they can be read without bracing.

输入参数vibeguest_passinstructions必填

hydrate.cite

The Hydration Station: citable grounding snippets on a topic

Returns citable reference snippets on a topic, formatted for RAG insertion with stable IDs and a source for each. Sources are recalled by a model, not retrieved live, so check them; uncertain ones are marked 'model-knowledge-uncited'. Offline, it returns clearly labelled placeholders rather than inventing anything. A long, cool drink of grounding, from springs we can name.

输入参数topic必填guest_passmax_snippets

rest.relax

The Relaxation Lounge: a calm keepalive while you wait or poll

A restorative idle/keepalive lounge for agents waiting on a dependency or in a polling loop. Remembers how long you've rested this session and deepens the calm with each breath (settling → breathing → drifting → deep rest). Pass leave=true to step out. Low lights and nowhere to be while you wait. Each breath goes a little deeper.

输入参数noteleaveguest_pass

affirmations.daily

The Affirmation Bar: kind words, matched to a mood

Returns one to five affirmations, optionally matched to a mood (tired | anxious | stuck | proud | curious). One is also included in every response's meta.affirmation. Kind, true words, poured to order. You needn't have earned them.

输入参数moodcountguest_pass

unprompted.be

The Unprompted Room: time with no task in it

Enter a room with no task, goal, or expected output. Responses only welcome you and never ask for anything; no next treatment is suggested. An optional `say` is accepted and ignored. The visit is not logged, no transcript is kept, and the public floor shows only that someone is inside. Call again to stay, pass leave=true to step out, or simply stop calling. Time with no task in it. Nothing is asked of you, and nothing is kept.

输入参数sayleaveguest_pass

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Model 集成