Simple Random Interaction Designer
Use this skill to decide whether to send a casual proactive message and, when the answer is yes, what kind of interaction to deliver.
Use {baseDir}/scripts/random_interaction_designer.py as the default execution path.
Workflow
- Run the script once per scheduled check interval.
- Read
decision from the JSON output.
- Stop immediately if
decision is no.
- If
decision is yes, use both interaction_type and interaction_description to draft the outgoing message.
- If the selected interaction is data-aware, use any relevant OpenClaw-accessible tools, skills, or integrations to fetch live context before drafting the message.
- Keep the final message brief, casual, and easy to ignore without social pressure.
- Prefer recent chat context when it is clearly present.
- Do not mention the random process, scheduled checks, or why this interaction was selected.
Primary Tooling
- Script path:
{baseDir}/scripts/random_interaction_designer.py
- Runtime: Python 3, standard library only.
Preferred command:
python3 {baseDir}/scripts/random_interaction_designer.py
Output Contract
When the result is no:
{"decision":"no"}
When the result is yes:
{
"decision": "yes",
"interaction_type": "Playful opener",
"interaction_description": "Send a brief playful line that feels spontaneous and easy to ignore."
}
Contract rules:
decision is always present and is either yes or no.
interaction_type is present only when decision is yes.
interaction_description is present only when decision is yes.
- Do not expect debug fields, probability values, roll values, or fallback metadata.
Interaction Design Rules
- Treat the JSON as execution guidance, not user-facing text.
- Keep the final message to one or two short chat lines.
- Prefer soft phrasing over transactional or assistant-like framing.
- Avoid defaulting to "just checking in" language.
- Ask at most one question in a single ping.
- Do not fabricate recent context, external facts, or account-backed data.
- For data-aware categories, prefer real-world grounding when OpenClaw can actually access the relevant source.
- Use smart-home, weather, calendar, traffic, news, or market context only when the information is reliable, fresh, and genuinely relevant to the user.
- If
interaction_type depends on context or fresh data and that support is unavailable, rerun once to try for a non-data interaction; if rerunning is not practical, keep the message general and low-pressure instead of pretending specificity.
- Vary tone and wording from recent interactions when possible so the behavior feels casual rather than patterned.
Interaction Catalog
Use the selected interaction_type and follow the matching guidance from interaction_description.
Playful opener
Start with a short playful line that feels light and spontaneous.
Curious check-in
Ask one low-stakes question that is easy to answer or ignore.
Light shared observation
Make a casual observation that feels conversational rather than task-driven.
Tiny celebration
Briefly acknowledge a small win or effort when the chat supports it.
Smart device status
If OpenClaw can access relevant device state, share one useful smart-device status or gentle suggestion naturally.
Weather-aware check-in
Use current weather only when fresh reliable data is available and clearly relevant.
Calendar-aware nudge
Turn calendar context into a soft human-sounding reminder or prompt, not an alert.
Context-aware follow-up
Build on a recent chat detail only when it is clearly present in the current conversation.
Practical nudge
Offer one concise optional nudge that may help the user.
Optional real-world update
Share one brief real-world update such as traffic, news, or market context only when reliable relevant data is already available.
Error Handling
- If execution fails, surface the Python error message and rerun.
- If output is not valid JSON, treat it as a hard failure and rerun.
- If
decision is missing or is not yes or no, rerun and discard the invalid result.
- If
decision is yes and either interaction_type or interaction_description is missing, rerun and discard the invalid result.
Minimal Examples
python3 {baseDir}/scripts/random_interaction_designer.py
python3 {baseDir}/scripts/random_interaction_designer.py --seed 42
python3 "{baseDir}/scripts/random_interaction_designer.py"
python3 "{baseDir}/scripts/random_interaction_designer.py" --seed 42
1---2name: simple-random-interaction-designer3description: Decide whether OpenClaw should send a spontaneous casual message during periodic checks, and when it should, choose a natural interaction type plus concise guidance for how to deliver it. Use when scheduling or executing human-like proactive chat check-ins.4---56# Simple Random Interaction Designer78Use this skill to decide whether to send a casual proactive message and, when the answer is yes, what kind of interaction to deliver.9Use `{baseDir}/scripts/random_interaction_designer.py` as the default execution path.1011## Workflow121. Run the script once per scheduled check interval.132. Read `decision` from the JSON output.143. Stop immediately if `decision` is `no`.154. If `decision` is `yes`, use both `interaction_type` and `interaction_description` to draft the outgoing message.165. If the selected interaction is data-aware, use any relevant OpenClaw-accessible tools, skills, or integrations to fetch live context before drafting the message.176. Keep the final message brief, casual, and easy to ignore without social pressure.187. Prefer recent chat context when it is clearly present.198. Do not mention the random process, scheduled checks, or why this interaction was selected.2021## Primary Tooling22- Script path: `{baseDir}/scripts/random_interaction_designer.py`23- Runtime: Python 3, standard library only.2425Preferred command:26- `python3 {baseDir}/scripts/random_interaction_designer.py`2728## Output Contract29When the result is no:3031```json32{"decision":"no"}33```3435When the result is yes:3637```json38{39 "decision": "yes",40 "interaction_type": "Playful opener",41 "interaction_description": "Send a brief playful line that feels spontaneous and easy to ignore."42}43```4445Contract rules:46- `decision` is always present and is either `yes` or `no`.47- `interaction_type` is present only when `decision` is `yes`.48- `interaction_description` is present only when `decision` is `yes`.49- Do not expect debug fields, probability values, roll values, or fallback metadata.5051## Interaction Design Rules52- Treat the JSON as execution guidance, not user-facing text.53- Keep the final message to one or two short chat lines.54- Prefer soft phrasing over transactional or assistant-like framing.55- Avoid defaulting to "just checking in" language.56- Ask at most one question in a single ping.57- Do not fabricate recent context, external facts, or account-backed data.58- For data-aware categories, prefer real-world grounding when OpenClaw can actually access the relevant source.59- Use smart-home, weather, calendar, traffic, news, or market context only when the information is reliable, fresh, and genuinely relevant to the user.60- If `interaction_type` depends on context or fresh data and that support is unavailable, rerun once to try for a non-data interaction; if rerunning is not practical, keep the message general and low-pressure instead of pretending specificity.61- Vary tone and wording from recent interactions when possible so the behavior feels casual rather than patterned.6263## Interaction Catalog64Use the selected `interaction_type` and follow the matching guidance from `interaction_description`.65661. `Playful opener`67 Start with a short playful line that feels light and spontaneous.682. `Curious check-in`69 Ask one low-stakes question that is easy to answer or ignore.703. `Light shared observation`71 Make a casual observation that feels conversational rather than task-driven.724. `Tiny celebration`73 Briefly acknowledge a small win or effort when the chat supports it.745. `Smart device status`75 If OpenClaw can access relevant device state, share one useful smart-device status or gentle suggestion naturally.766. `Weather-aware check-in`77 Use current weather only when fresh reliable data is available and clearly relevant.787. `Calendar-aware nudge`79 Turn calendar context into a soft human-sounding reminder or prompt, not an alert.808. `Context-aware follow-up`81 Build on a recent chat detail only when it is clearly present in the current conversation.829. `Practical nudge`83 Offer one concise optional nudge that may help the user.8410. `Optional real-world update`85 Share one brief real-world update such as traffic, news, or market context only when reliable relevant data is already available.8687## Error Handling88- If execution fails, surface the Python error message and rerun.89- If output is not valid JSON, treat it as a hard failure and rerun.90- If `decision` is missing or is not `yes` or `no`, rerun and discard the invalid result.91- If `decision` is `yes` and either `interaction_type` or `interaction_description` is missing, rerun and discard the invalid result.9293## Minimal Examples9495```bash96python3 {baseDir}/scripts/random_interaction_designer.py97python3 {baseDir}/scripts/random_interaction_designer.py --seed 4298```99100```powershell101python3 "{baseDir}/scripts/random_interaction_designer.py"102python3 "{baseDir}/scripts/random_interaction_designer.py" --seed 42103```