# 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 - `/about` — exibe informações do sistema, versão, autor e licença - `/veriavision` — mostra o provider e o modelo de visão atuais - `/configiavision` — configura interativamente o modelo de visão com seleção por botões - `/baixar ` — baixa um arquivo do workspace pelo nome ## Editando arquivos do workspace Você pode pedir para editar arquivos existentes no `workspace/` usando comandos como: - `edite o arquivo teste.txt e adicione uma linha 4` - `modifique o arquivo hello.py para imprimir hello world` - `no arquivo teste.txt troque Linha 2 por Linha 2 editada` O Agent irá localizar o arquivo, aplicar a alteração solicitada e salvar o resultado. - `/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`.