No description
- Rust 100%
| .agents | ||
| ask-memory-api | ||
| ask-memory-core | ||
| ask-memory-tui | ||
| .env.example | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
ask-memory
Tutor inteligente multi-tema construído em Rust com Ratatui. O aluno conversa com uma IA configurável (Kimi, Gemini, DeepSeek, Claude, Minimax, Z.ai etc.) e o sistema guarda pontos fracos, agenda revisões espaçadas e sugere exercícios.
Arquitetura
ask-memory-core: domínio, entidades, algoritmo de revisão espaçada e traits.ask-memory-api: servidor Axum + Turso/libSQL que expõe a lógica via REST.ask-memory-tui: interface terminal com Ratatui que consome a API local..agents/: regras e prompts que as IAs seguem, independentemente do provedor.
Pré-requisitos
- Rust 1.85+ (edition 2024)
- Variáveis de ambiente com os tokens das IAs que você for usar, por exemplo:
KIMI_API_KEYGEMINI_API_KEYDEEPSEEK_API_KEYANTHROPIC_API_KEYMINIMAX_API_KEYZAI_API_KEY
Como rodar
1. Compilar
cargo build --workspace
2. Iniciar a API
KIMI_API_KEY=seu-token cargo run -p ask-memory-api
A API sobe em http://127.0.0.1:3000 por padrão. O banco local fica em ask-memory.db.
3. Iniciar a TUI
Em outro terminal:
cargo run -p ask-memory-tui
Atalhos na TUI
- Tela de projetos:
↑/↓navegaEnterabre o projetoncria um novo projeto genéricorrecarrega a listasconfiguraçõesqsai
- Tela de chat:
ientra no modo de ediçãoEnterenvia mensagemEscvolta para projetos
- Tela de configurações:
↑/↓navega entre provedoresEnterativa o provedor selecionadoEscvolta
Regras do tutor
As regras estão em .agents/rules/ e são injetadas no system prompt de qualquer IA ativa:
- Exercícios: a IA sempre pede "por que?" antes de confirmar a resposta.
- Textos: a IA corrige, identifica pontos a melhorar e sugere materiais.
- Revisão espaçada: dificuldades seguem o ciclo 1, 2, 7, 14, 28 dias (reinicia se errar).
Configuração
| Variável | Descrição | Padrão |
|---|---|---|
ASK_MEMORY_API_URL |
URL da API para a TUI | http://127.0.0.1:3000 |
ASK_MEMORY_BIND |
Endereço de bind da API | 127.0.0.1:3000 |
ASK_MEMORY_DB_PATH |
Caminho do banco Turso local | ask-memory.db |
ASK_MEMORY_SYSTEM_PROMPT |
Caminho do system prompt | .agents/prompts/tutor-system.md |
Endpoints principais
GET /healthGET /projects,POST /projectsGET /projects/{id}/conversations,POST /projects/{id}/conversationsPOST /conversations/{id}/messagesGET /projects/{id}/difficultiesGET /projects/{id}/reviews/todayGET /providers,PUT /providers/{id}/activate
Testes
cargo test --workspace