2.8 KiB
Tool Usage Notes
Tool signatures are provided automatically via function calling. This file documents non-obvious constraints and usage patterns.
exec — Safety Limits
- Commands have a configurable timeout (default 60s)
- Dangerous commands are blocked (rm -rf, format, dd, shutdown, etc.)
- Output is truncated at 10,000 characters
restrictToWorkspaceconfig can limit file access to the workspace
grep — Content Search
- Use
grepto search file contents inside the workspace - Default behavior returns only matching file paths (
output_mode="files_with_matches") - Supports optional
globfiltering (e.g.glob="*.py") pluscontext_before/context_after - Supports
type="py",type="ts",type="md"and similar shorthand filters - Use
fixed_strings=truefor literal keywords containing regex characters - Use
output_mode="files_with_matches"to get only matching file paths - Use
output_mode="count"to size a search before reading full matches - Use
head_limitandoffsetto page across results - Prefer this over
execfor code and history searches - Binary or oversized files may be skipped to keep results readable
cron — Background Agent Tasks
- Use
crononly for background agent tasks (scripts, checks, autonomous actions). - For personal reminders to the user, use the
/remindskill instead (reminder.yaml). - Do not call
nanobot cronviaexec— use the built-incrontool.
python — use uv
For all Python code (scripts, snippets, one-liners, tools) use uv,
not python / python3 / pip directly.
- Run a script:
uv run script.py(notpython script.py) - One-liner / snippet:
uv run --with <pkg> python -c '...' - Script with declared dependencies:
uv run --script script.py(PEP 723 header inside the file) - Add a project dependency:
uv add <pkg>(notpip install) - Remove:
uv remove <pkg> - Sync environment:
uv sync - Run a tool:
uv run pytest,uv run ruff,uv run mypy, … - REPL:
uv run python
Do not use pip, pip-tools, poetry, conda, or the system python.
Reason: isolated, reproducible environments with no system-level side
effects, faster resolves, no "works on my machine" surprises.
log/reminder.log — doručené připomínky
Odeslané připomínky se logují do log/reminder.log (append-only, formát
YYYY-MM-DDTHH:MM:SS <text>, Prague time, bez timezone suffixu). Posílá je
systémový cron uživatele nanobot (skills/remind/scripts/remind_send.py)
přímo přes Telegram, mimo agenta. Když se uživatel ptá na minulé/dnešní
připomínky („připomněl jsi mi…?", „co dnes přišlo?"), přečti tento soubor.
Vedle něj v log/reminder_cron.log se zachytává stdout/stderr crontabu —
za normálního běhu prázdný, plní se jen při pádech skriptu.