Useful Pluginssystem_reminder
DocsUseful Pluginssystem_reminder

system_reminder

Inject contextual guidance into tool results

What it does

The system_reminder plugin injects contextual guidance into tool results to nudge agent behavior—without extra API calls.

Example: After writing code

code
write_file("app.py", code) Result: "File written successfully" With system reminder: "File written successfully <system-reminder> Consider running tests to verify your changes. This is a gentle reminder - ignore if not applicable. </system-reminder>"

Quick Start

main.py
from connectonion import Agent from connectonion.useful_plugins import system_reminder agent = Agent("assistant", tools=[write_file], plugins=[system_reminder])

Want to customize? Run co copy system_reminder to get an editable copy with built-in reminders.

How it works

┌─────────────────────────────────────────────┐
│          SYSTEM REMINDER FLOW                │
├─────────────────────────────────────────────┤
│                                             │
│  1. Tool executes (e.g., write_file)        │
│                 ↓                           │
│  2. after_each_tool event fires             │
│                 ↓                           │
│  3. Plugin checks triggers:                 │
│     - tool name matches?                    │
│     - path pattern matches?                 │
│                 ↓                           │
│  4. If match: append system reminder        │
│                 ↓                           │
│  5. LLM sees result + system reminder       │
│                                             │
└─────────────────────────────────────────────┘

Reminder Categories

Based on Claude Code patterns, system reminders fall into five categories:

CategoryPurposeExample
Workflow NudgesGentle best practice suggestions"Consider running tests"
State NotificationsInform about state changes"You exited plan mode"
External EventsReact to external changes"File was modified by linter"
Next StepsGuide what to do next"Verify your implementation"
Context InjectionProvide relevant info"This file contains secrets"

Reminder File Format

Each system reminder is a markdown file with YAML frontmatter:

code
--- name: test-reminder triggers: - tool: write_file path_pattern: "*.py" --- <system-reminder> Consider running tests to verify your changes. This is a gentle reminder - ignore if not applicable. </system-reminder>

Frontmatter Fields

FieldRequiredDescription
nameYesUnique identifier
triggersYesList of trigger conditions
triggers[].toolNoTool name to match
triggers[].path_patternNoGlob pattern(s) for file paths
triggers[].command_patternNoGlob pattern(s) for commands

Customizing

Copy the plugin and built-in reminders to your project:

code
co copy system_reminder
output
✓ Copied: ./plugins/system_reminder.py
✓ Copied: ./prompts/system-reminders/

This creates:

code
./plugins/system_reminder.py ./prompts/system-reminders/ ├── test-reminder.md └── security-warning.md

Then import from your local copy and add new reminders:

main.py
from plugins.system_reminder import system_reminder agent = Agent("assistant", plugins=[system_reminder])

Design Principles

Gentle, Not Forceful

  • ✓ "Consider running tests"
  • ✗ "You MUST run tests now"

Contextual, Not Spammy

Fire only when relevant, not after every tool call

Events Used

EventHandlerPurpose
after_each_toolinject_reminderAppend matching reminder to tool result

Source

connectonion/useful_plugins/system_reminder.py

main.py
# The plugin is just a list of event handlers system_reminder = [inject_reminder]

Star us on GitHub

If ConnectOnion saves you time, a ⭐ goes a long way — and earns you a coffee chat with our founder.