chore: add docs
This commit is contained in:
64
docs/PRD.md
Normal file
64
docs/PRD.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user