App: agents¶
Gerencia agentes de IA, documentos, pipeline RAG, skills e MCP servers.
Models¶
Agent¶
Agente vinculado 1:1 a um curso: - name, personality, system_prompt, behavior_instructions - credits_per_student -- creditos por aluno por periodo de faturamento (padrao: 50) - suggested_prompts -- lista estática no formato JSON de sugestões iniciais customizadas do Agente (aparecem no start do chat). - enable_follow_up_suggestions -- flag de geração preditiva da IA baseada na resposta com chamadas automáticas de perguntas curtas. - is_trained -- True apos treinamento RAG bem-sucedido - is_active -- True por padrao; quando False, agente fica oculto para alunos - faiss_index_path -- propriedade que retorna o caminho do indice em disco - access_request_token -- token público (UUIDv4) para envio do link externo a fim de alunos solicitarem acesso ao Agente.
AgentDocument¶
Arquivo enviado para treinar o agente: - Suporta: PDF, Markdown, TXT, CSV, XLSX, DOCX, SRT - is_processed -- True apos inclusao no FAISS
AgentSkill¶
Skill de IA configurada para um agente. Implementada como tool do LangChain.
agent-- FK para Agentname,descriptionskill_type--builtin(padrao do sistema) oucustom(criada pela escola)config-- JSONField com configuracao (para builtins, armazenabuiltin_type)is_active-- ativa/desativa a skillcreated_by-- FK para User (quem criou)
AgentMCPServer¶
MCP Server vinculado a um agente. Conecta o agente a servicos externos.
agent-- FK para Agentname,description,server_urltransport_type--stdio,sseoustreamable_httpconfig-- JSONField (headers de autenticacao, etc.)is_active,created_by
StudentSkillOverride¶
Override de skill por aluno: permite desativar/reativar skills do agente individualmente.
student-- FK para Userskill-- FK para AgentSkillis_active-- se a skill esta ativa para este aluno- Constraint unica:
(student, skill)
StudentMCPServer¶
MCP Server personalizado adicionado pelo aluno para um agente especifico.
student-- FK para Useragent-- FK para Agentname,description,server_urltransport_type-- usa as mesmas opcoes deAgentMCPServerconfig,is_active
AccessRequest¶
Solicitação de acesso pendente enviada por um aluno através da landing page secreta do agente (access_request_token). - agent, full_name, email, whatsapp - status: pending, approved, denied - reviewed_by: FK para admin escolar.
StudentSkill¶
Skill personalizada criada pelo aluno para um agente especifico.
student-- FK para Useragent-- FK para Agentname,description(instrucao)is_active
Pipeline RAG (agents/rag.py)¶
def train_agent(agent):
docs = []
for doc in agent.documents.all():
loader = get_loader(doc)
docs.extend(loader.load())
splits = RecursiveCharacterTextSplitter(
chunk_size=1000, chunk_overlap=200
).split_documents(docs)
vector_store = FAISS.from_documents(splits, OpenAIEmbeddings())
vector_store.save_local(agent.faiss_index_path)
agent.is_trained = True
agent.save()
Skills Engine (agents/skills_engine.py)¶
Modulo responsavel por construir as tools do LangChain a partir das skills e MCP servers do agente.
build_tools_for_agent(agent, student)-- monta a lista de tools combinando skills do agente, overrides do aluno, skills do aluno e MCP servers (do agente + do aluno)_fetch_mcp_tools(server_url, headers, label)-- conecta a um MCP server e retorna as tools disponiveistest_mcp_connection(mcp)-- testa conexao com um MCP server existenteBUILTIN_SKILL_TYPES-- dicionario de skills padrao disponiveis no sistema
Views¶
Views do Admin (escola)¶
| View | Descricao |
|---|---|
AgentListView | Listar agentes da escola |
AgentCreateView | Criar agente para um curso |
AgentUpdateView | Editar configuracao do agente |
AgentDetailView | Detalhes com documentos, skills e MCPs |
AgentToggleView | Ativar/desativar agente |
AgentTrainView | Iniciar treinamento RAG |
DocumentUploadView | Upload de documento |
DocumentRemoveView | Remover documento |
AgentSkillAddView | Adicionar skill (builtin ou custom) |
AgentSkillEditView | Editar skill |
AgentSkillRemoveView | Remover skill |
AgentSkillToggleView | Ativar/desativar skill |
AgentMCPAddView | Adicionar MCP server |
AgentMCPEditView | Editar MCP server |
AgentMCPRemoveView | Remover MCP server |
AgentMCPToggleView | Ativar/desativar MCP server |
AgentMCPTestView | Testar conexao com MCP server existente |
AgentMCPTestConnectionView | Testar conexao antes de salvar |
AccessRequestFormView | View pública para envio da request de acesso de alunos não matriculados |
AccessRequestSuccessView | Página de confirmação public |
AccessRequestListView | Painel da escola para gerenciar e enxergar leads que enviaram a request de acesso a agentes |
AccessRequestApproveView | Aprovar request do aluno vinculando-o ao Agent |
AccessRequestDenyView | Negar a request ocultando-a. |
Desativacao de Agente¶
O admin pode desativar um agente via AgentToggleView. Agentes inativos (is_active=False) ficam ocultos no dashboard do aluno e nao podem ser acessados para chat.
Verificacao de Trial¶
Antes de treinar, AgentTrainView verifica se o trial expirou: