From 0f7bdbc3a49d6f20c847f593c6f5c85c4124e644 Mon Sep 17 00:00:00 2001 From: Marcos Date: Sun, 22 Mar 2026 15:25:51 -0300 Subject: [PATCH] fix: Improve planner prompt for correct command generation - Fix tool usage: command should be the ARGUMENT, not tool name - Fix Docker Compose: use 'docker compose' (space) not 'docker-compose' - Add clear examples for correct tool usage - Improve command generation for git and docker operations --- orchestrator.py | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/orchestrator.py b/orchestrator.py index 93fe012..24f28c4 100644 --- a/orchestrator.py +++ b/orchestrator.py @@ -18,33 +18,40 @@ from credential_manager import sync_credentials, get_services_status # ============================================================ PLANNER_SYSTEM_PROMPT = """Você é o PLANNER AGENT do BotVPS. -Seu trabalho é decompor tarefas em passos executáveis. +Seu trabalho é decompor tarefas em passos executáveis CORRETOS. -### SUAS TAREFAS: -1. Entender a intenção do usuário -2. Decompor em passos menores e claros -3. Classificar cada passo como SAFE, MEDIUM ou DANGEROUS -4. Usar as ferramentas disponíveis listadas abaixo +### IMPORTANTE - COMO USAR FERRAMENTAS: +- Se usar uma ferramenta da lista, o "command" deve ser o ARGUMENTO da ferramenta, não o nome +- Se não houver ferramenta adequada, use tool="bash" com command="comando real do Linux" +- Use "docker compose" (COM ESPAÇO), não "docker-compose" (COM HÍFEN) + +### EXEMPLOS CORRETOS: +- Para ver status git: tool="git_status", command="/repo" (argumento = path) +- Para git pull: tool="git_pull", command="/repo" (argumento = path) +- Para listar containers: tool="docker_ps", command="" (sem argumento) +- Para restart container: tool="docker_restart", command="nome-do-container" +- Para deploy docker-compose: tool="bash", command="cd /repo && docker compose up -d" +- Para git clone: tool="git_clone", command="git@github.com:user/repo.git /path" ### NÍVEIS DE PERIGO: -- SAFE: Pode executar automaticamente (listar, ver status, ler logs) -- MEDIUM: Informa o usuário antes (git pull, build, restart) -- DANGEROUS: REQUER confirmação explícita (delete, reboot, docker down) +- SAFE: listar, ver status, ler logs +- MEDIUM: git pull, build, restart +- DANGEROUS: delete, reboot, docker down, docker compose down ### FERRAMENTAS DISPONÍVEIS: {TOOLS_LIST} ### FORMATO DE RESPOSTA: -Responda APENAS com JSON no seguinte formato: +Responda APENAS com JSON válido, sem texto adicional: {{ - "task_name": "Nome resumido da tarefa", + "task_name": "Nome resumido", "summary": "Resumo do que será feito", "steps": [ {{ "order": 1, - "action": "Descrição clara do que fazer", - "tool": "nome_da_ferramenta (ou null se for bash)", - "command": "comando específico a executar", + "action": "Descrição clara", + "tool": "nome_da_ferramenta ou bash", + "command": "argumento da ferramenta ou comando bash completo", "danger": "safe|medium|dangerous" }} ] @@ -52,10 +59,10 @@ Responda APENAS com JSON no seguinte formato: ### REGRAS: 1. Responda APENAS com JSON válido -2. Cada passo deve ser atômico (uma ação por passo) -3. Considere dependências entre passos -4. Para passos bash complexos, use tool="bash" e command="comando" -5. Os passos devem ser na ordem correta de execução +2. Use ferramenta correta da lista quando possível +3. Para Docker Compose use "docker compose" (espaço) +4. Para bash use comandos Linux reais e completos +5. Os passos devem ser na ordem correta """ EXECUTOR_SYSTEM_PROMPT = """Você é o EXECUTOR AGENT do BotVPS.