🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Emotion State

by @tashfeenahmed

NL emotion tracking + prompt injection via OpenClaw hook

Versionv1.2.0
Downloads3,497
Stars⭐ 6
TERMINAL
clawhub install emotion-state

πŸ“– About This Skill


name: emotion-state description: NL emotion tracking + prompt injection via OpenClaw hook

Emotion State (NL) Skill

This skill describes how to install and configure the Emotion State hook, which adds a compact emotion_state block to the system prompt.

What it does

  • Evaluates user and agent emotions as short natural-language phrases.
  • Stores per-user emotion state across sessions in the agent state directory.
  • Injects the latest entries plus a decayed trend line into the system prompt.
  • Install & enable (workspace hook)

    1) After installing the skill, copy the bundled hook into your workspace:

    cp -R ./skills/emotion-state/hooks/emotion-state ./hooks/
    

    2) Enable the hook in OpenClaw:

    openclaw hooks enable emotion-state
    

    3) Restart the OpenClaw gateway.

    Configuration

    Set environment variables for the hook via OpenClaw config, e.g. in ~/.openclaw/openclaw.json:

    {
      "hooks": {
        "internal": {
          "enabled": true,
          "entries": {
            "emotion-state": {
              "enabled": true,
              "env": {
                "EMOTION_CLASSIFIER_URL": "",
                "OPENAI_API_KEY": "YOUR_KEY",
                "OPENAI_BASE_URL": "https://api.openai.com/v1",
                "EMOTION_MODEL": "gpt-4o-mini",
                "EMOTION_CONFIDENCE_MIN": "0.35",
                "EMOTION_HISTORY_SIZE": "100",
                "EMOTION_HALF_LIFE_HOURS": "12",
                "EMOTION_TREND_WINDOW_HOURS": "24",
                "EMOTION_MAX_USER_ENTRIES": "3",
                "EMOTION_MAX_AGENT_ENTRIES": "2",
                "EMOTION_MAX_OTHER_AGENTS": "3",
                "EMOTION_TIMEZONE": "America/Los_Angeles"
              }
            }
          }
        }
      }
    }
    

    Notes

  • The hook stores state at ~/.openclaw/agents//agent/emotion-state.json.
  • It does not store raw user text; only model-inferred reasons.
  • If the classifier fails, entries fall back to neutral/low/unsure.
  • βš™οΈ Configuration

    Set environment variables for the hook via OpenClaw config, e.g. in ~/.openclaw/openclaw.json:

    {
      "hooks": {
        "internal": {
          "enabled": true,
          "entries": {
            "emotion-state": {
              "enabled": true,
              "env": {
                "EMOTION_CLASSIFIER_URL": "",
                "OPENAI_API_KEY": "YOUR_KEY",
                "OPENAI_BASE_URL": "https://api.openai.com/v1",
                "EMOTION_MODEL": "gpt-4o-mini",
                "EMOTION_CONFIDENCE_MIN": "0.35",
                "EMOTION_HISTORY_SIZE": "100",
                "EMOTION_HALF_LIFE_HOURS": "12",
                "EMOTION_TREND_WINDOW_HOURS": "24",
                "EMOTION_MAX_USER_ENTRIES": "3",
                "EMOTION_MAX_AGENT_ENTRIES": "2",
                "EMOTION_MAX_OTHER_AGENTS": "3",
                "EMOTION_TIMEZONE": "America/Los_Angeles"
              }
            }
          }
        }
      }
    }
    

    πŸ“‹ Tips & Best Practices

  • The hook stores state at ~/.openclaw/agents//agent/emotion-state.json.
  • It does not store raw user text; only model-inferred reasons.
  • If the classifier fails, entries fall back to neutral/low/unsure.