feat: add psagentai agent with deployment and configuration

Initial project setup including the main agent script, configuration
files, profile JSON state, systemd service unit, startup script,
deployment documentation, and Python dependencies.

Includes .env, venv/, and __pycache__/ which should likely be
excluded via .gitignore to avoid committing secrets and artifacts.
This commit is contained in:
2026-10-25 17:05:13 -03:00
commit 6b3b6541a7
3792 changed files with 805563 additions and 0 deletions
Executable
+102
View File
@@ -0,0 +1,102 @@
# PsAgentAI - Personal Agent AI Conversacional
Sistema de Personal Agent AI Conversacional via Telegram que se comporta como uma companheira pessoal, conversando, cooperando e mantendo contexto contínuo com o usuário.
## Estrutura
```
app/
├── psagentai_agent.py # Código principal do agente
├── iniciar.sh # Script de instalação e execução
├── requirements.txt # Dependências Python
├── .env # Configurações locais (não comitar)
├── .env.example # Exemplo de configuração
├── user_profile.json # Perfil do usuário
├── agent_profile.json # Perfil do agente (personalidade, traços, notas)
├── contexts/ # Históricos de conversa por data
│ └── YYYY-MM-DD.json
├── README.md
└── LICENSE
```
## Pré-requisitos
- Python 3.9+
- Conta no Telegram com bot criado via @BotFather
- Pelo menos uma chave de API de IA suportada
## Configuração
1. Copie `.env.example` para `.env` e preencha:
- `TELEGRAM_BOT_TOKEN` — token do bot do Telegram
- `TELEGRAM_CHAT_ID` — seu chat ID no Telegram
- `OPENROUTER_API_KEY` ou outra chave de API compatível
2. Ajuste intervalos se desejar:
- `MIN_INTERVAL_MINUTES`
- `MAX_INTERVAL_MINUTES`
- `MIN_MESSAGE_LINES` — define o número mínimo de linhas por mensagem do agente (padrão: `15`)
## Instalação e execução
```bash
cd app
chmod +x iniciar.sh
./iniciar.sh
```
O script cria o ambiente virtual, instala dependências e inicia o agente.
## Funcionalidades
- Onboarding inicial com perguntas para construir o perfil
- Histórico de conversa por dia em `contexts/`
- Perfil do usuário persistido em `user_profile.json`
- Perfil do agente persistido em `agent_profile.json` (nome, personalidade, traços e notas)
- Mensagens proativas em intervalos aleatórios configuráveis
- Mínimo de linhas por mensagem do agente configurável via `.env`
- Suporte a múltiplos provedores de IA:
- OpenRouter
- StepFun
- QwenCloud
- llama.cpp (local)
- Atualização dinâmica do perfil via comandos naturais no chat
## Comandos disponíveis
- `/start` — inicia ou reinicia a conversa
- `/ajuda` ou `/help` — exibe ajuda
- `/perfil` — mostra perfil do usuário e do agente
- `/agentprofile` — mostra apenas o perfil do agente
- `/reset` — reseta perfis do usuário e do agente
- `/limpar` — deleta todos os dados (perfis, contextos, chat_id)
- `/onboarding` — reinicia o onboarding
- `/newconfig` — reconfigura tudo do zero
- `/cancelar` — cancela operação em andamento
- `/veria` — mostra o provider e o modelo de IA atuais
- `/configia` — configura interativamente o provider e o modelo de IA com seleção por botões
- `/incluirnomeuperfil <nome>` — atualiza seu nome no perfil
- `/incluirnoperfildoagent <texto>` — adiciona características ao perfil do agente
## Atualizando o perfil durante a conversa
### Perfil do usuário
Você pode atualizar seu perfil a qualquer momento usando frases como:
- `Inclui isso no meu perfil: ...`
- `Anote no meu perfil: ...`
- `Adicione no meu perfil: ...`
- `Salve no meu perfil: ...`
### Perfil do agente
Use `/incluirnoperfildoagent <texto>` para adicionar características ao perfil do agente.
Ou use frases como:
- `Inclui isso no perfil do agente: ...`
- `Anote no perfil do agente: ...`
## Licença
Uso proprietário. Veja o arquivo `LICENSE`.