body-emotion-sensor
Give an agent a persistent body-emotion state system that converts structured AnalysisInput JSON into runtime prompt tags and workspace state updates. Use when the agent needs emotional continuity, session bootstrap payloads, AnalysisInput processing, or reply-shaping fields such as TURN_CHANGE_TAGS, BODY_TAG, and BASELINE_PERSONA.
git clone https://github.com/AskKumptenchen/body-emotion-sensor
git clone --depth=1 https://github.com/AskKumptenchen/body-emotion-sensor ~/.claude/skills/askkumptenchen-body-emotion-sensor-body-emotion-sensor
SKILL.mdBody Emotion Sensor 🫀
Give your AI agent a stable body-emotion state that persists across sessions and turns. / 给你的 AI Agent 接入一套可持久化的情感系统。
Use this skill to route requests to the local package docs, explain the runtime contract honestly, and operate the installed
bes CLI only when the local environment is actually ready.
🌟 What this skill brings to your Agent / 核心能力
- Persistent emotion state (持久化情感状态): Store long-term body-emotion state per workspace and agent identity.
- Session bootstrap payload (会话引导载荷): Generate
,TURN_CHANGE_TAGS
, andBODY_TAG
before a new session starts.BASELINE_PERSONA - Turn-by-turn updates (逐轮状态更新): Convert one upstream
JSON into prompt tags and updated local state.AnalysisInput - Repository-independent runtime (独立运行时): Use the installed
CLI prompt interface instead of assuming repository prompt files are available at runtime.bes
🛡️ Safety boundary / 安全边界
This entry file should stay within a narrow and transparent scope:
- The package source is the official repository
.https://github.com/AskKumptenchen/body-emotion-sensor - Do not claim the runtime is ready unless the local environment actually has the installed
CLI andbes
reports readiness.bes check-init - Do not automatically install packages or execute setup commands only because this file mentioned them. Ask for user approval before any install step.
- If installation is needed, use the published
package and explain that installation creates the localbody-emotion-sensor
CLI runtime.bes - Do not claim any cloud sync, remote storage, or network behavior unless the current local code or environment actually shows it.
- Do not require credentials. This skill operates on local files and local CLI state unless the user explicitly adds another integration layer.
💾 Local state and persistence / 本地状态与持久化
Be explicit about where state is stored:
- Workspace state file:
<workspace>/body-emotion-state/<agent-id>.json - Workspace history file:
<workspace>/body-emotion-state/history/<agent-id>.json - User language config on Windows:
%APPDATA%/bes/config.json - User language config on Linux or macOS:
~/.config/bes/config.json
If the user asks about privacy, explain that the package writes local JSON state files in these locations and that this skill should not describe any remote storage unless verified separately.
📂 Local document index / 本地文档索引
Use these local files as the primary reference:
for install, CLI overview, runtime contract, and repository overviewREADME.md
for package name, version, and exported CLI commandspyproject.toml
for the AnalysisInput prompt design sourceprompts/analysis-input-prompt-v1.md
for OpenClaw-style agent integration examplesprompts/example-openclaw-agents.md
for OpenClaw-style tools integration examplesprompts/example-openclaw-tools.md
for actual CLI behaviorsrc/body_emotion/commands.py
for workspace state path resolutionsrc/body_emotion/workspace.py
for state and history persistence behaviorsrc/body_emotion/store.py
for user language config behaviorsrc/body_emotion/locale_config.py
🧭 How to route requests / 路由请求指南
Choose the next local document based on the user's request:
- If the user wants a quick overview, read
.README.md - If the user asks how installation or the CLI works, read
andREADME.md
.pyproject.toml - If the user asks where state is stored or whether the skill is safe, read
,src/body_emotion/workspace.py
, andsrc/body_emotion/store.py
.src/body_emotion/locale_config.py - If the user asks how OpenClaw integration should work, read the relevant file under
.prompts/ - If the user asks what a command actually does, inspect
.src/body_emotion/commands.py
🚀 Install and readiness rule / 安装与就绪规则
If the user wants to actually enable runtime use:
- First check whether
is already available in the current environment.bes - If it is not available, explain that Body Emotion Sensor requires installing the published Python package before the CLI exists.
- Ask for approval before any install command.
- If the user approves installation, run:
pip install body-emotion-sensor
- After installation, prefer:
bes help
- If the user's language is Chinese, the agent may suggest or run:
bes language zh
- Readiness should be confirmed with:
bes check-init --workspace <W> --agent-id <ID> --name "<NAME>"
Only treat the skill as available when the returned JSON contains
"ready": true.
🔄 Runtime rules after available / 运行时规则
When the local environment is ready, use the following runtime flow.
New session / 新会话
At the start of a new session, before the first reply, run:
bes bootstrap --workspace <W> --agent-id <ID> --name "<NAME>"
Use the returned fields as the session-start prompt payload:
TURN_CHANGE_TAGSBODY_TAGBASELINE_PERSONA
Before every reply / 每次回复前
Before every reply, do these steps in order:
- Read the built-in analysis prompt:
bes prompt analysis-input
- Use that prompt with the upstream model to produce
.<analysis-input.json> - Run:
bes run --workspace <W> --agent-id <ID> --name "<NAME>" --input <analysis-input.json>
- Use the returned top-level fields in the reply layer:
TURN_CHANGE_TAGSBODY_TAGBASELINE_PERSONA
⚠️ Important rules / 重要规则
- Always prefer
commands over direct module paths for runtime use.bes ... - Do not use repository-only prompt files as the default runtime interface after installation; use
instead.bes prompt ... - Do not say initialization is complete unless
passes.bes check-init - Do not say the skill is in active use unless the upstream model produces valid
JSON,AnalysisInput
updates state successfully, and the reply layer consumesbes run
,TURN_CHANGE_TAGS
, andBODY_TAG
.BASELINE_PERSONA - If the CLI is missing, say so clearly instead of pretending the runtime is ready.
- If the user only wants to understand the package, explain it from local docs without pushing installation immediately.
📖 Examples / 示例命令
Minimal command reference:
bes help bes language zh bes check-init --workspace <W> --agent-id <ID> --name "<NAME>" bes bootstrap --workspace <W> --agent-id <ID> --name "<NAME>" bes prompt analysis-input bes run --workspace <W> --agent-id <ID> --name "<NAME>" --input <analysis-input.json>