# PsAgentIA - Personal Agent IA Conversacional Sistema de Personal Agent IA Conversacional via Telegram que se comporta como uma companheira pessoal, conversando, cooperando e mantendo contexto contínuo com o usuário. ## Estrutura ``` app/ ├── psagentia_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 - `/incluirnomeuperfil ` — atualiza seu nome no perfil - `/incluirnoperfildoagent ` — 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 ` 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`.