Simple Random Interaction Designer
v2.0.0Decide whether OpenClaw should send a spontaneous casual message during periodic checks, and when it should, choose a natural interaction type plus concise g...
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The name/description (decide whether to send a casual proactive message) matches the included Python script and the SKILL.md. The script implements a simple local RNG decision and selects from a short catalog of interaction types; no unrelated capabilities or credentials are requested.
Instruction Scope
Runtime instructions stay within the stated purpose (run script each check, use the JSON result). They do instruct the agent to use 'any relevant OpenClaw-accessible tools, skills, or integrations to fetch live context' when an interaction is data-aware — this is reasonable for context-aware messages but grants the agent broad discretion to call other enabled integrations. The SKILL.md otherwise avoids reading files, environment variables, or external endpoints directly and discourages fabricating context.
Install Mechanism
No install spec and the script relies only on Python 3 standard library. Nothing is downloaded or written to disk beyond running the included script, which is low-risk.
Credentials
The skill declares no environment variables, no credentials, and no config paths. The instructions' recommendation to fetch context uses platform-managed integrations rather than requiring new secrets from the skill itself, which is proportionate to the purpose.
Persistence & Privilege
The skill is not set to always: true, does not request permanent presence, and does not modify other skills or system-wide settings. Autonomous invocation is allowed (platform default) but not combined with other concerning privileges.
Assessment
This skill appears coherent and low-risk: it runs a local Python decision helper and returns only a small JSON payload. Two things to keep in mind before enabling it: (1) SKILL.md allows the agent to call other OpenClaw integrations to fetch live context for data-aware interactions — review and limit which integrations/credentials the agent may call so the skill cannot access unexpected data sources; (2) test its behavior and frequency in a staging environment to ensure the spontaneous messages and rates are acceptable for your users and privacy policies.Like a lobster shell, security has layers — review code before you run it.
latest
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
decisionfrom the JSON output. - Stop immediately if
decisionisno. - If
decisionisyes, use bothinteraction_typeandinteraction_descriptionto 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:
decisionis always present and is eitheryesorno.interaction_typeis present only whendecisionisyes.interaction_descriptionis present only whendecisionisyes.- 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_typedepends 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 openerStart with a short playful line that feels light and spontaneous.Curious check-inAsk one low-stakes question that is easy to answer or ignore.Light shared observationMake a casual observation that feels conversational rather than task-driven.Tiny celebrationBriefly acknowledge a small win or effort when the chat supports it.Smart device statusIf OpenClaw can access relevant device state, share one useful smart-device status or gentle suggestion naturally.Weather-aware check-inUse current weather only when fresh reliable data is available and clearly relevant.Calendar-aware nudgeTurn calendar context into a soft human-sounding reminder or prompt, not an alert.Context-aware follow-upBuild on a recent chat detail only when it is clearly present in the current conversation.Practical nudgeOffer one concise optional nudge that may help the user.Optional real-world updateShare 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
decisionis missing or is notyesorno, rerun and discard the invalid result. - If
decisionisyesand eitherinteraction_typeorinteraction_descriptionis 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
Comments
Loading comments...
