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

Self-Prompt

by @eliranwong

Force agents to respond to automated messages by using `openclaw agent` instead of `openclaw message send`, ensuring tasks from scripts get agent replies.

TERMINAL
clawhub install self-prompt

πŸ“– About This Skill


name: self-prompt description: Force agent responses to scheduled/automated messages. Use when cron jobs, monitoring scripts, or automated systems send messages that agents ignore. Solves the problem where agents treat system-sent messages as "background info" instead of tasks requiring response. Key pattern: use openclaw agent instead of openclaw message send to trigger actual agent turns.

Self-Prompt: Forcing Agent Responses

The Problem

When automated scripts (cron, monitoring) send messages via openclaw message send:

  • Messages appear in chat as "system messages"
  • Agents may treat them as background info, not tasks
  • Agents respond to user messages but ignore automated ones
  • Accountability checks, alerts, and tasks go unanswered
  • The Solution

    Use openclaw agent instead of openclaw message send for messages requiring agent response:

    # OLD (agent may ignore):
    openclaw message send --target -GROUP_ID --message "TASK: Do something"

    NEW (agent MUST respond):

    RESPONSE=$(openclaw agent \ --agent AGENT_ID \ --session-id "agent:AGENT_ID:telegram:group:GROUP_ID" \ --channel telegram \ --message "TASK: Do something" \ --timeout 180)

    Send response to chat:

    openclaw message send --target -GROUP_ID --message "$RESPONSE"

    Why This Works

  • openclaw message send β†’ Creates chat message β†’ Agent sees as "notification"
  • openclaw agent β†’ Triggers actual agent turn β†’ Agent MUST process and respond
  • Quick Start

    For Bash Scripts

    Use scripts/send_agent_task.sh:

    # Simple usage:
    ~/.openclaw/skills/self-prompt/scripts/send_agent_task.sh \
        "AGENT_ID" \
        "GROUP_ID" \
        "Your task message here"
    

    For Python Scripts

    Use scripts/send_agent_task.py:

    from send_agent_task import send_and_deliver

    success, response = send_and_deliver( agent_id="stock-trading", group_id="-5283045656", message="TASK: Analyze current positions", timeout=180 )

    Pattern: Data + Task Separation

    For monitoring scripts, separate data delivery from task requests:

    # 1. Send DATA immediately (informational)
    openclaw message send --target "$GROUP_ID" --message "πŸ“Š Position Data:
    $POSITIONS"

    2. Send TASK via agent (forces response)

    RESPONSE=$(openclaw agent \ --agent "$AGENT_ID" \ --session-id "agent:$AGENT_ID:telegram:group:$GROUP_ID" \ --message "Analyze the data above and report findings" \ --timeout 180)

    3. Deliver response

    openclaw message send --target "$GROUP_ID" --message "πŸ“Š Analysis: $RESPONSE"

    Common Use Cases

    Accountability Checks

    # Force agent to respond to accountability check
    send_agent_task.sh "my-agent" "-123456789" \
        "ACCOUNTABILITY CHECK: Did you complete the required tasks? Respond with status."
    

    Monitoring Alerts

    # Force agent to investigate and report
    send_agent_task.sh "trading-agent" "-123456789" \
        "ALERT: Position down 5%. Investigate and report findings."
    

    Scheduled Research Tasks

    # Force agent to do research
    send_agent_task.sh "research-agent" "-123456789" \
        "DAILY TASK: Search for news on $SYMBOLS and summarize findings."
    

    Session Key Format

    The session key follows this pattern:

    agent:AGENT_ID:CHANNEL:TYPE:TARGET
    

    Examples:

  • agent:stock-trading:telegram:group:-5283045656
  • agent:main:telegram:direct:123456789
  • agent:assistant:discord:channel:987654321
  • Script Reference

    send_agent_task.sh

    Location: scripts/send_agent_task.sh

    send_agent_task.sh AGENT_ID GROUP_ID "message" [timeout]
    

  • Sends task via openclaw agent
  • Captures response
  • Sends response to group via message send
  • Logs to ~/agent_task.log
  • send_agent_task.py

    Location: scripts/send_agent_task.py

    from send_agent_task import send_and_deliver

    success, response = send_and_deliver( agent_id="agent-name", group_id="-123456789", message="Task message", timeout=180, channel="telegram" )

    Troubleshooting

    Agent not responding

  • Verify agent is running: openclaw gateway status
  • Check session key format matches your agent/group
  • Increase timeout for long-running tasks
  • Response not appearing in chat

  • Ensure script sends response via message send after capturing
  • Check GROUP_ID is correct (negative for groups)
  • Verify channel is correct (telegram/discord/etc)
  • Timeout errors

  • Increase timeout for research/analysis tasks (300-600 seconds)
  • Check if agent is overloaded with concurrent requests
  • πŸ’‘ Examples

    For Bash Scripts

    Use scripts/send_agent_task.sh:

    # Simple usage:
    ~/.openclaw/skills/self-prompt/scripts/send_agent_task.sh \
        "AGENT_ID" \
        "GROUP_ID" \
        "Your task message here"
    

    For Python Scripts

    Use scripts/send_agent_task.py:

    from send_agent_task import send_and_deliver

    success, response = send_and_deliver( agent_id="stock-trading", group_id="-5283045656", message="TASK: Analyze current positions", timeout=180 )

    πŸ“‹ Tips & Best Practices

    Agent not responding

  • Verify agent is running: openclaw gateway status
  • Check session key format matches your agent/group
  • Increase timeout for long-running tasks
  • Response not appearing in chat

  • Ensure script sends response via message send after capturing
  • Check GROUP_ID is correct (negative for groups)
  • Verify channel is correct (telegram/discord/etc)
  • Timeout errors

  • Increase timeout for research/analysis tasks (300-600 seconds)
  • Check if agent is overloaded with concurrent requests