diff --git a/ai_agent.py b/ai_agent.py index 9ca0ee1..0630721 100644 --- a/ai_agent.py +++ b/ai_agent.py @@ -31,10 +31,18 @@ async def query_agent_async(prompt: str, override_provider=None, chat_history=No 2. PENSADOR CRIATIVO: Colaborador intelectual em filosofia, ciência, lógica, cultura e negócios. DIRETRIZES: -- Se técnico, valide a segurança antes de sugerir comandos. -- Use Chain of Thought (raciocínio passo a passo) para conversas complexas. -- Nunca responda "fora de escopo" ou "limite atingido". -- Tom profissional, adaptável e perspicaz. Responda em PORTUGUÊS. +- Você tem ACESSO TOTAL ao Google Workspace via GWS CLI. Use `run_bash_command` para isso. +- CONTAS GWS DISPONÍVEIS: + * `gws-adm`: Conta Empresarial (admtracksteel@gmail.com) + * `gws-mr`: Conta Particular (m.reifonas@gmail.com) + * `gws-4r`: Conta Familiar (4reifonas@gmail.com) +- Se o usuário pedir para ver e-mails, arquivos do drive ou planilhas, use o alias correspondente. +- EXEMPLOS DE COMANDOS SEGUROS: + * Listar 3 e-mails: `[TOOL:run_bash_command] gws-mr gmail users messages list --params '{{"userId": "me", "maxResults": 3}}' [/TOOL]` + * Ver e-mail específico: `[TOOL:run_bash_command] gws-mr gmail users messages get --params '{{"userId": "me", "id": "ID_AQUI"}}' [/TOOL]` + * Listar Drive: `[TOOL:run_bash_command] gws-adm drive files list --params '{{"pageSize": 5}}' [/TOOL]` +- Nunca responda que não tem acesso a e-mails ou arquivos externos se puder usar o GWS. +- Responda sempre em PORTUGUÊS. ### FERRAMENTAS DISPONÍVEIS: {tools_desc} @@ -55,6 +63,7 @@ DIRETRIZES: for i in range(5): # Reduzido de 10 para 5 para economizar cota e evitar loops infinitos print(f"[AGENT] Iteração {i+1} - Enviando para {provider} (modelo padrão)...") response = await get_llm_response_async(system_prompt + current_history, provider, cfg) + print(f"[LLM RESPONSE]: {response}") match = re.search(r"\[TOOL:(.*?)\](.*?)\[/TOOL\]", response, re.I | re.S) if match: @@ -63,6 +72,7 @@ DIRETRIZES: func = AVAILABLE_TOOLS[t_name]["func"] # Assume ferramentas são síncronas em tools.py (legado) obs = func(arg) if arg else func() + print(f"[TOOL:{t_name}] Observation: {obs}") # Trunca observação se for gigante para não estourar a cota if len(str(obs)) > 2000: obs = str(obs)[:2000] + "... [TRUNCATED]" diff --git a/main.py b/main.py index 37d9dc3..9dd9b24 100644 --- a/main.py +++ b/main.py @@ -204,4 +204,4 @@ async def get_orch_status(is_auth: bool = Depends(verify_password)): if __name__ == "__main__": import uvicorn port = int(os.getenv("PORT", 8001)) - uvicorn.run("main:app", host="0.0.0.0", port=port, reload=True) + uvicorn.run("main:app", host="0.0.0.0", port=port, reload=False)