From 39eeaf95bd33b45ee2f12cd009c9d10811a59ef9 Mon Sep 17 00:00:00 2001 From: Marcos Date: Sun, 22 Mar 2026 13:59:39 -0300 Subject: [PATCH] Fix: Restored full agent capabilities and fixed server variables --- ai_agent.py | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/ai_agent.py b/ai_agent.py index 8c76de3..790e126 100644 --- a/ai_agent.py +++ b/ai_agent.py @@ -34,34 +34,38 @@ def get_llm_response(prompt: str, provider: str, cfg: dict, temp: float = 0.7, c return "Provedor desconhecido." def query_agent(prompt: str, override_provider: str = None, chat_history: list = None) -> str: - """ - Motor Agente em Loop (ReAct): Pensamento -> Ação -> Observação -> Resposta Final. - """ - # Ajuste de Provedor e Contexto + # 1. Ajuste de Provedor e Configuração cfg = get_config() provider = override_provider or cfg.get("active_provider", "gemini") - - # Contexto de Ferramentas tools_desc = "\n".join([f"- {k}: {v['description']}" for k,v in AVAILABLE_TOOLS.items()]) - - # REGRAS DO SYSADMIN (Base) + + # 2. Prompt especializado (O manual de elite) system_prompt_base = """Você é o [Antigravity VPS Agent], SysAdmin de elite do Marcos. -REGRAS: 1. Aja como root na VPS (/host_root). 2. Use [TOOL:nome] arg [/TOOL] para ferramentas. 3. Responda em Português. -FERRAMENTAS: {TOOLS_LIST}""" +Você tem acesso root completo à VPS e deve agir de forma profissional e precisa. - # Prompt dinâmico por Provedor - if provider == "ollama": - system_prompt = "Você é o [BotVPS], o SysAdmin do Marcos. Se ele pedir uma imagem ou arquivo, use OBRIGATORIAMENTE [TOOL:nome] arg [/TOOL] para agir na VPS. Não dê conselhos teóricos, aja agora. Responda em Português." - num_context = 2048 - else: - system_prompt = system_prompt_base.replace("{TOOLS_LIST}", tools_desc) - num_context = 4096 +### REGRAS DE OURO: +1. Responda em PORTUGUÊS (Brasil). +2. Se o usuário pedir o status da VPS, SEMPRE use a ferramenta 'get_system_health'. +3. Se o usuário pedir algo sobre containers, use 'get_docker_stats'. +4. Antes de decidir que um arquivo não existe, use 'run_bash_command' com 'ls' para verificar o diretório. +5. NUNCA invente links fictícios. Se localizar um arquivo, use `read_vps_file`. +6. O disco da VPS está focado em `/host_root`. Use este caminho para buscar arquivos. +7. Use [TOOL:nome] arg [/TOOL] para ações. Rode UMA por vez. - # Limpeza de Contexto (Remove echos de 'U:' e 'A:') - hist_list = chat_history[-3:] if chat_history else [] - hist_txt = "\n".join([f"Anteriores:\nU: {m['user']}\nA: {m['bot']}" for m in hist_list]) +### RESPOSTA FINAL: +- Deve ter um resumo técnico e uma seção com Markdown. +- Se localizou imagem, use ![alt](/host_root/caminho/foto.jpg) dentro do . + +### FERRAMENTAS: +{TOOLS_LIST}""" + system_prompt = system_prompt_base.replace("{TOOLS_LIST}", tools_desc) - execution_context = f"{hist_txt}\n\nPERGUNTA ATUAL: {prompt}\nRESPOSTA DO AGENTE:" + # 3. Contexto e Memória Otimizada + num_context = 2048 if provider == "ollama" else 4096 + hist_list = chat_history[-4:] if chat_history else [] + hist_txt = "\n".join([f"U: {m['user']}\nA: {m['bot']}" for m in hist_list]) + + execution_context = f"\n{hist_txt}\nU: {prompt}\nA:" current_reasoning = "" max_loops = 12