Um agent inteligente local que:
- 📚 Consulta seus documentos (RAG)
- 🔗 Chama APIs e endpoints
- 📝 Manipula arquivos
- 🐛 Debugga e resolve problemas
- 🔄 Itera automaticamente para ações complexas
# macOS
brew install ollama
# Ou faça download em: https://ollama.aiollama pull mistral
ollama pull nomic-embed-text # Para embeddingsollama serve
# Roda em http://localhost:11434pip install -r requirements.txtModo com query direta:
python main.py "Qual é o status da API de usuários?"Modo interativo:
python main.pyVocê: Como autenticar na API?
Agent: [consulta docs] → Responde com informações dos documentos
Você: Busque os dados do usuário ID 123 em https://api.example.com/users/123
Agent: [chama endpoint] → [processa JSON] → Exibe resultado
Você: Recebi erro 401 ao chamar a API, o que fazer?
Agent: [busca docs] → [analisa erro] → Sugere soluções
Você: Faça uma requisição GET para https://api.example.com/data e salve o resultado em output.json
Agent: [chama API] → [valida JSON] → [salva arquivo] → Confirma
tale/
├── requirements.txt # Dependências Python
├── main.py # CLI principal
├── agent.py # Lógica do agent
├── rag.py # Processamento de documentos
├── tools.py # Tools/Actions disponíveis
├── docs/ # Seus documentos (criar esta pasta)
│ ├── api.md # Documentação de API
│ ├── guide.pdf # Guias
│ └── ...
└── vector_store/ # Índice FAISS (criado automaticamente)
- Crie uma pasta
./docs/ - Adicione seus arquivos (PDF, TXT, MD, DOCX)
- Execute o agent - ele carregará automaticamente
mkdir -p docs
cp seu-documento.pdf docs/
python main.py "pergunta sobre seu documento"Abra tools.py e crie uma nova classe:
class MyTool:
@staticmethod
def my_action(param1: str) -> ToolResult:
"""Descrição da ação"""
try:
# Sua lógica aqui
return ToolResult(success=True, data=resultado)
except Exception as e:
return ToolResult(success=False, data=None, error=str(e))Depois registre em TOOLS:
TOOLS = {
...
"mytool": MyTool,
}Use no agent:
<tool>{"tool": "mytool", "action": "my_action", "param1": "valor"}</tool>
agent = Agent(model_name="neural-chat") # ou "llama2", "orca", etc# Em rag.py, método chunk_documents()
agent.doc_processor.chunk_documents(
chunk_size=2000, # Tamanho dos chunks
chunk_overlap=400 # Sobreposição
)agent.max_iterations = 20 # Padrão: 10# Ollama não está rodando, execute:
ollama serve# Baixe o modelo:
ollama pull mistral
ollama pull nomic-embed-text# Verificar pasta docs/
ls -la docs/
# Se vazia, criar exemplos:
python main.py # Cria exemplos automaticamente- Reduza
chunk_sizeemrag.py - Use modelo mais leve:
ollama pull phi(2GB) - Reduza
kemsearch():k=2em vez dek=3
- ✅ Tudo roda localmente
- ✅ Nenhum dado é enviado para cloud
- ✅ Controle total sobre documentos
⚠️ Proteja sua pastadocs/e.env(se usar)
- Integração com mais modelos locais
- Cache de embeddings
- Web UI com Streamlit
- Logging e auditoria
- Suporte a banco de dados (SQLite)
- Agentes especializados (finance, devops, etc)
Desenvolvido com ❤️ para automação local