Files
nanobot-ts/memory-bank/productContext.md

25 lines
1.3 KiB
Markdown

# Product Context
## What nanobot does
A personal AI assistant that connects to Mattermost (via WebSocket) and runs an agent loop. It receives messages, uses an LLM to decide what to do, calls tools, and replies. It can also run on a schedule (cron) and proactively act on a heartbeat timer.
## Core user experience
- User sends a message in Mattermost (DM or channel)
- Bot uses the configured LLM, calls tools as needed, replies in the same thread
- Long conversations get automatically consolidated to memory files on disk
- Custom "skills" (markdown instruction files) extend the bot's capabilities
## Key design principles (from Python codebase)
- Ultra-lightweight: minimal dependencies, small codebase
- Provider-agnostic: works with Anthropic, OpenAI, Google, Ollama, OpenRouter
- Workspace-centric: everything lives in a configurable workspace directory (`~/.nanobot/`)
- SOUL/AGENTS/USER/TOOLS.md: workspace markdown files that define the bot's personality and rules
- Memory is just markdown files (`MEMORY.md`, `HISTORY.md`) — no database
## Runtime mental model
```
Mattermost WS ──► inbound queue ──► AgentLoop ──► LLM + tools ──► outbound queue ──► Mattermost REST
CronService + HeartbeatService (inject messages into inbound queue)
```