No description
- Updated README.md to include new setup instructions for RAG and observability. - Added internal knowledge base (KB) setup for SQL optimization team, supporting various document types. - Implemented token usage logging in LLM tools to track costs and usage. - Refactored SQL analysis and optimization prompts for clarity and consistency. - Introduced filtering of external tools based on environment configuration. - Enhanced conservative analysis agent with structured prompt for performance suggestions. - Updated requirements.txt to include new dependencies for RAG functionality. - Added internal KB helpers for building and attaching knowledge to agents. |
||
|---|---|---|
| docs | ||
| kb | ||
| scripts | ||
| src | ||
| .gitignore | ||
| README.md | ||
| requirements.txt | ||
| sample.env | ||
SQL Optimizer Team (Agno)
POC de um time de agentes usando o framework Agno para reproduzir o fluxo do projeto oracle-sql-query-optimizer.
Objetivo
- Receber uma SQL e o banco alvo (oracle/sqlserver/postgresql/mysql/sqlite).
- Gerar explicação detalhada (SQL → linguagem natural).
- Gerar SQL otimizada (linguagem natural → SQL), preservando 100% da lógica de negócio.
- (Opcional) Gerar análise conservadora (sem reescrever a query).
As prompts são mantidas idênticas às do projeto oracle-sql-query-optimizer.
Estrutura
src/
sql_optimizer_team/
team_app.py
agents/
tools/
Configuração rápida
- Crie o ambiente e instale dependências:
pip install -r requirements.txt
- Configure variáveis de ambiente (exemplo em
sample.envou.env). - Execute o servidor:
./scripts/start.sh
Acesse:
http://localhost:8204/docs(Swagger UI)http://localhost:8204(informações básicas da API)
UI local (Agent UI)
Use o Agent UI (agno-agi/agent-ui) como front local:
- Instale com o script oficial:
npx create-agent-ui@latest
- Inicie a UI:
pnpm dev
- Abra
http://localhost:3000e ajuste o endpoint parahttp://localhost:8204.
Opcional: se o AgentOS usar autenticação, configure OS_SECURITY_KEY conforme o README do Agent UI.
Fluxo do time
- Gestor recebe a requisição e valida o contexto (banco + SQL).
- SQL Analyst gera a explicação detalhada usando a prompt original.
- SQL Optimizer gera a query otimizada preservando toda a lógica.
- SQL Quality Reviewer valida fidelidade e checklist.
- Conservative Analyst (se solicitado) gera análise sem reescrever a query.
- Gestor consolida e entrega.
RAG (KB interna)
- Coloque documentos em
kb/(md/txt/sql/pdf). - O RAG local usa Chroma + SentenceTransformers.
- Variáveis principais:
SQL_OPT_KB_PATH,SQL_OPT_KB_CHROMA_PATH,SQL_OPT_KB_DB_FILESQL_OPT_KB_EMBEDDER_IDSQL_OPT_BLOCK_EXTERNAL_TOOLS=truebloqueia ferramentas externas.
Observabilidade de tokens/custos
- Ative com
LLM_LOG_USAGE=true. - Defina preços (USD por 1K tokens) com:
LLM_COST_INPUT_PER_1KLLM_COST_OUTPUT_PER_1K
Observações
- Use o provedor configurado em
.env(ex.: Ollama local, OpenAI, Gemini, Groq, etc.). - O time é colaborativo e mantém histórico em SQLite (configurável via env).