UNPKG

@oliverlessa/gemini-agent-lib

Version:

Uma biblioteca NodeJS para criar agentes de IA com Gemini LLM

136 lines (100 loc) 5.96 kB
# GeminiAgentLib Uma biblioteca Node.js flexível para construir, gerenciar e orquestrar agentes de Inteligência Artificial. Integre facilmente os modelos Gemini do Google (incluindo Generative AI e Vertex AI) em suas aplicações, criando desde assistentes simples até sistemas multi-agentes complexos com memória e ferramentas personalizadas. ## Instalação ### A paritir do repositório NPM: ```bash npm install @oliverlessa/gemini-agent-lib ``` ### A partir de um diretório/pasta local: ```bash npm install /caminho/gemini-agent-lib --install-links ``` ## Configuração Essencial (.env) Esta biblioteca requer um arquivo `.env` na raiz do projeto para funcionar corretamente. Este arquivo contém as chaves de API e configurações necessárias para acessar os serviços do Google AI e Vertex AI. ### Configuração Rápida 1. Instale o pacote dotenv: ```bash npm install dotenv ``` 2. Crie um arquivo `.env` na raiz do seu projeto 3. Adicione suas variáveis de ambiente (no mínimo a chave do Gemini): ``` GEMINI_API_KEY=sua_chave_api_gemini ``` 4. Carregue o dotenv no início do seu aplicativo: ```javascript require('dotenv').config(); ``` 5. Adicione o arquivo `.env` ao seu `.gitignore` ### Exemplo Completo do .env ``` # Chave de API do Gemini GEMINI_API_KEY=sua_chave_api_gemini # Configurações do Google Cloud e Vertex AI VERTEX_API_KEY=sua_chave_api_vertex GOOGLE_CLOUD_PROJECT_ID=seu_id_projeto_gcp VERTEX_PROJECT_ID=seu_id_projeto_vertex VERTEX_LOCATION=regiao_vertex GOOGLE_APPLICATION_CREDENTIALS=./caminho_para_arquivo_credenciais.json ``` **⚠️ IMPORTANTE**: O arquivo `.env` é essencial para o funcionamento da biblioteca. Sem ele, você não conseguirá se conectar aos modelos de IA. Para uma explicação detalhada de cada variável e como obtê-las, consulte a [documentação de configuração](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/configuracao.md). ## Uso Básico ```javascript const { Agent, GenerativeAILLM } = require('gemini-agent-lib'); // Configurar o LLM const llm = new GenerativeAILLM({ apiKey: process.env.GEMINI_API_KEY, modelName: "gemini-2.0-flash-001" }); // Criar um agente const agent = new Agent({ role: "Assistente", objective: "Ajudar o usuário", context: "Você é um assistente útil", task: "Responda à pergunta do usuário", llm: llm }); // Executar o agente const resposta = await agent.executeTask(); console.log(resposta); ``` ## Componentes Principais - **Agent**: Agente básico para executar tarefas - **ChatAgent**: Agente com capacidade de manter conversas - **ThinkingAgent**: Agente com capacidade de "pensar" antes de responder - **SequentialAgentChain**: Executa uma cadeia de agentes em sequência - **HierarchicalAgentOrchestrator**: Orquestra múltiplos agentes de forma hierárquica - **AutoGenOrchestrator**: Orquestra autonomamente múltiplos agentes para resolver tarefas complexas (requer Vertex AI) - **ToolBuilder**: Facilita a criação de ferramentas para os agentes - **Sistema de Memória**: Inclui memória de conversação, fatos e **Memória Semântica** (com adaptador `ChromaDBMemoryAdapter` flexível para diferentes embeddings, além de SQLite e MongoDB). Essencial para **RAG (Retrieval-Augmented Generation)**, permitindo que agentes acessem conhecimento externo e possuam memória de longo prazo. ## Documentação Para documentação detalhada sobre cada componente, consulte os links abaixo (apontando para o repositório GitHub): - [Chat Agent](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/chat-agent.md) - [Chat Manager](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/chat-manager.md) - [Routing Chat Manager](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/routing-chat-manager.md) - [Thinking Agent](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/thinking-agent.md) - [Sequential Agent Chain](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/sequential-agent-chain.md) - [Hierarchical Agent Orchestrator](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/hierarchical-agent-orchestrator.md) - [Hierarchical Agent Thinking Orchestrator](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/hierarchical-agent-thinking-orchestrator.md) - [Auto Gen Orchestrator](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/auto-gen-orchestrator.md) - [Vertex AI Search Retriever](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/vertex-ai-search-retriever.md) - [Tool Factory](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/tool-factory.md) - [Modo Chat Vertex AI](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/modo-chat-vertex-ai.md) - [Formatadores Personalizados](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/formatadores-personalizados.md) - [Dependências de Agentes](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/dependencias-agentes.md) - [Sistema de Debug](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/sistema-de-debug.md) - [Sistema de Memória](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/sistema-de-memoria.md) ## Debug e Logs A biblioteca utiliza o pacote `debug` para gerenciar mensagens de depuração. Por padrão, nenhuma mensagem de debug é exibida. Para ativar: ```bash # Ativar todos os logs da biblioteca DEBUG=gemini-agent-lib:* node seu-script.js # Ativar apenas logs específicos DEBUG=gemini-agent-lib:agent,gemini-agent-lib:chat-agent node seu-script.js ``` Para mais detalhes, consulte a [documentação do sistema de debug](https://github.com/oliverlessa/gemini-agent-lib/blob/master/docs/sistema-de-debug.md). ## Exemplos Veja exemplos de uso na pasta [examples](https://github.com/oliverlessa/gemini-agent-lib/tree/master/examples). ## Licença MIT