65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
# Product Requirements Document (PRD)
|
|
|
|
## Overview
|
|
|
|
nanobot is an ultra-lightweight personal AI assistant framework. It provides a chat-controlled bot that can execute tasks through natural language commands, with pluggable "channels" for different messaging platforms.
|
|
|
|
## Target Audience
|
|
|
|
- Individual developers and power users who want a personal AI assistant
|
|
- Users who prefer self-hosted, privacy-respecting AI tools
|
|
- Teams using Mattermost who want an integrated AI assistant
|
|
- Users who need AI assistance with file operations, shell commands, and web searches
|
|
|
|
## Core Features
|
|
|
|
### 1. Agent Loop
|
|
- Conversational AI powered by LLMs (Anthropic, OpenAI, Google, OpenRouter, Ollama)
|
|
- Tool execution with iterative refinement
|
|
- Session management with persistent conversation history
|
|
- Memory consolidation to manage context window limits
|
|
|
|
### 2. Tool System
|
|
- **Filesystem**: read, write, edit, list files
|
|
- **Shell**: execute arbitrary commands with configurable security constraints
|
|
- **Web**: search (Brave), fetch and parse URLs
|
|
- **Message**: send intermediate updates to chat channels
|
|
- **Spawn**: delegate long-running tasks to background subagents
|
|
- **Cron**: schedule recurring tasks
|
|
|
|
### 3. Channel System
|
|
- **Mattermost**: WebSocket-based real-time messaging with REST API for posts
|
|
- **CLI**: local interactive terminal or single-shot mode
|
|
- Extensible channel interface for future platforms
|
|
|
|
### 4. Scheduling
|
|
- **Cron Service**: schedule tasks with cron expressions, intervals, or one-time execution
|
|
- **Heartbeat**: periodic wake-up to check for tasks (e.g., HEARTBEAT.md)
|
|
|
|
### 5. Memory & Skills
|
|
- Long-term memory with consolidation
|
|
- Skill loading from workspace
|
|
- System prompt construction from templates (SOUL.md, USER.md, TOOLS.md)
|
|
|
|
## Non-Goals (Out of Scope)
|
|
|
|
- Non-Mattermost channels (Telegram, Discord, Slack, etc.)
|
|
- MCP (Model Context Protocol) client support
|
|
- Extended thinking/reasoning token handling
|
|
- Onboard configuration wizard
|
|
- Multi-tenancy or user authentication
|
|
|
|
## User Stories
|
|
|
|
1. As a developer, I want to ask the AI to read and modify files in my workspace so I can work faster.
|
|
2. As a team lead, I want the bot to respond in Mattermost channels when mentioned so my team can get AI help without leaving chat.
|
|
3. As a power user, I want to schedule recurring tasks so the AI can check things automatically.
|
|
4. As a privacy-conscious user, I want to run the bot locally with Ollama so my data stays on my machine.
|
|
|
|
## Success Metrics
|
|
|
|
- Zero external dependencies for core functionality beyond LLM providers
|
|
- Sub-second response time for tool execution
|
|
- Graceful degradation on LLM errors
|
|
- Clear error messages for configuration issues
|