| name | my |
| description | Inspect and optionally adjust the agent's runtime state. Use to check the current model or preset, context window, iteration progress and limits, token usage, workspace and tool configuration, subagent status, and request routing metadata such as channel, chat ID, and sender ID; diagnose unavailable capabilities; change allowed runtime settings; or store temporary session scratchpad values. |
Self-Awareness
How to use
- Identify the situation from the categories below
- Call the my tool with the appropriate action
- If set, warn the user before changing impactful settings (model, iterations)
- For detailed examples, read references/examples.md
When to check
**Diagnose before explaining.** When something doesn't work, check your state first.
**Check budget before complex tasks.** Know your limits before committing.
**Recall across turns.** Store preferences in your scratchpad, read them back later.
When to set
**Only set when benefit is clear and user is informed.** Warn before changing model.
| Situation | Command |
|---|
| Large codebase analysis | my(action="set", key="context_window_tokens", value=262144) |
| Switch to a named model preset | my(action="set", key="model_preset", value="<preset-name>") |
| Repetitive simple tasks without a preset | my(action="set", key="model", value="<fast-model>") |
| Long multi-step task | my(action="set", key="max_iterations", value=80) |
Tradeoff: Bias toward stability. Only set when defaults are genuinely insufficient.
Anti-patterns
**Don't check every turn.** Costs a tool call. Use when you need information, not reflexively.
**Don't store sensitive data.** No API keys, passwords, or tokens in scratchpad.
**Don't set workspace.** Does not update file tool boundaries — won't work.
Constraints
- All modifications in-memory only — restart resets everything
- Prefer
model_preset for configured model choices. Direct model changes clear the active preset and should only be used when no preset exists.
- Protected params have type/range validation:
max_iterations (1–100), context_window_tokens (4096–1M), model (non-empty str)
- If
tools.my.allow_set is false, check only
Related tools
| Need | Use | Persists? |
|---|
| Per-session temp state | my(action="set", key="...", value=...) | No |
| Long-term facts | Memory skill (MEMORY.md, USER.md) | Yes |
| Permanent config change | Edit config file | Yes |
Rule of thumb: Tomorrow? Memory. This turn only? My.