Guia Agentspace - POC Compesa
Agentspace - POC Compesa
Esta documentação contém uma prova de conceito (POC) para a Compesa utilizando o Google Agentspace e Vertex AI Agent Engine. O objetivo é gerenciar agentes inteligentes capazes de consultar, criar e verificar normativos da empresa, incluindo vencimentos e conformidade com legislação. Um esboço inicial da arquitetura pode ser encontrado na parte de prints.
📌 Índice
- Explicação do Caso de Uso
- Links úteis
- Estrutura do Projeto
- Principais Funcionalidades
- Como Executar
- Deploy
- Agentspace - Utilizar agente do Agent Engine como Ferramenta
- Agentspace - Deploy do Agent Engine diretamente no Agentspace
- Testes com o AgentSpace utilizando dados da OEC
📖 Explicação do Caso de Uso
A ideia inicial é fazer um chatbot que deve responder sobre questões relacionadas a Normativos e Legislações da COMPESA. A ferramenta precisa conseguir informar a vigência dos normativos para que o usuário consiga saber se existe algum normativo que está com o prazo vencido. Caso o usuário deseje, deve ser possível criar um normativo novo através do chatbot, onde ele irá poder escolher entre iniciar um normativo do zero ou utilizar um template. Após todas as informações serem preenchidas, o bot irá fazer uma verificação do normativo criado com relação às legislações cabíveis, decidindo se há ou não infrações sendo cometidas por aquele normativo. Se tiver tudo bem, ele então cria esse normativo e faz o upload do mesmo no bucket do projeto.
Links úteis
Git: https://github.com/BR-SP-IA-DEMOS/poc-compesa-agentspace
Normativos: https://servicos.compesa.com.br/engenharia/normas-e-padroes/
Leis e Decretos: https://servicos.compesa.com.br/legislacao/
Bucket: poc-compesa
Leis: Leis_Decretos
Normativas: Normativas
Estrutura do Projeto
multi_tool_agent/
: Implementa agentes e ferramentas para consulta e criação de normativos.agent.py
: Código principal dos agentes, incluindo integração com Google Cloud Storage para leitura dos vencimentos dos normativos.agent-engine-deploy.ipynb
: Notebook para deploy e testes dos agentes no Vertex AI Agent Engine..env
: Variáveis de ambiente para configuração do projeto.
agent_registration_tool/
: Ferramentas para registro, atualização e gerenciamento dos agentes tanto no Agentspace quanto no Vertex AI Agent Engine.as_registry_client.py
: Cliente CLI para registrar, listar, atualizar e remover agentes.as_agent_registry_service.py
: Serviço para interação via API REST com o Agentspace.agent_engine_manager.py
: Gerenciamento dos agentes no Vertex AI Agent Engine.config.txt
econfig_template.json
: Arquivos de configuração para facilitar o uso do CLI.
data_vencimento.json
: Lista dos normativos e suas datas de vencimento.requirements.txt
: Dependências do projeto.
Principais Funcionalidades
- Consulta de normativos por assunto.
- Verificação de vencimento de normativos (individual ou lista completa).
- Criação de novos normativos via pipeline de agentes.
- Registro, atualização e remoção de agentes no Agentspace.
- Gerenciamento de agentes implantados no Vertex AI Agent Engine.
Como Executar
Instale as dependências:
pip install -r requirements.txt
Configure as variáveis de ambiente em
multi_tool_agent/.env
.Faça o login na sua conta GCP usando o comando:
gcloud auth application-default login
Rode o comando:
adk web
Abra o navegador no endereço localhost:8000 e verifique o funcionamento da aplicação.
Deploy
O deploy dos agentes criados a partir do ADK são feitos utilizando o Agent Engine, que posteriormente é utilizado pelo Agentspace.
Para realizar o deploy do ADK no Agent Engine siga os seguintes passos:
Copie o código para a primeira célula do notebook
agent-engine-deploy.ipynb
.Rode em sequência as células do notebook.
O código irá fazer o deploy do agent na agent engine.
AGENTSPACE
O Agentspace pode ser acessado pelo link: https://vertexaisearch.cloud.google.com/home/cid/ca8386ec-faa9-4e53-8f90-8eec4ba5bf55
Existem 2 tipos de integração do agente criado no Agent Engine com o Agentspace: - Uma onde o Agentspace utiliza o agente criado como Ferramenta, ou seja, o Agentspace fica encarregado de chamar o agente do Agent Engine quando ele entender que determinada tarefa precisa da ajuda desse outro Agente. - Acesso direto do agente criado no Agent Engine, porém através da interface do Agent Engine. Aqui você irá interagir diretamente com o agente que criou, lembrando que ele irá possuir acesso aos dados que estiverem conectados via Data Store.
Agentspace - Utilizar agente do Agent Engine como Ferramenta
Para que o Agentspace possa utilizar o agent engine como ferramenta siga os seguintes passos:
Acesso o Agentspace pelo GCP.
Acesse o recurso poc-compesa-agentspace.
Vá em Configurations.
Selecione a aba Assistant
Role para baixo até achar a sessão Agents.
Adicione/Modifique o agente aqui. No campo Agent você deverá preencher o caminho do Agent Engine criado. Deverá ser algo do tipo “projects/atos-br-ia-sandbox/locations/us-central1/reasoningEngines/4948567585084932096”. Esse valor é construído ao realizar o deploy do Agent Engine.
Agent Display Name é o nome que vai aparecer na tela. Instructions é para quê serve o agente. Muita atenção neste campo pois ele irá determinar quando o Agentspace deverá chamar esse Agente, então recomendo ser bastante claro com relação à condição de chamada do mesmo.
Agentspace - Deploy do Agent Engine diretamente no Agentspace
Para poder interagir diretamente com o agente criado através do Agent Engine na interface do Agentspace siga os seguintes passos:
Crie um arquivo chamado
config.txt
na pastaagent_registration_tool
utilizando como base oconfig_template.json
. É necessário preencher informações referentes ao deploy realizado do Agent Engine e o recurso do Agentspace.Após preenchido, navegue pelo terminal até o diretório
agent_registration_tool
.Execute o seguinte comando no terminal:
python as_registry_client.py --config config.txt
Para o registro de um novo agente selecione a opção
register_agent
digitando isso no terminal.Não é necessário prover um authorization ID ou um link para o ícone então pode deixar vazio e apertar Enter, mas caso tenha sinta-se a vontade de incluir aqui.
Se tudo ocorrer bem ele fará o deploy do agente no Agentspace e você poderá conversar com ele através do link https://vertexaisearch.cloud.google.com/home/cid/ca8386ec-faa9-4e53-8f90-8eec4ba5bf55 indo em Agents e selecionando o seu agente ali.
Testes com o AgentSpace utilizando dados da OEC
Realizamos uma série de testes utilizando o AgentSpace configurado com documentos de OEC, com o objetivo de avaliar a eficácia e as limitações da ferramenta com dados complexos.
Configuração dos Testes
Para garantir que o AgentSpace consultasse somente os documentos internos, foi necessário habilitar a opção de pesquisa interna na opção de Ferramenta.
Essa configuração é essencial para impedir que o assistente utilize o conhecimento adquirido no treinamento, assegurando que as respostas sejam geradas exclusivamente com base nos documentos fornecidos.
Resultados Observados
Qualidade das Respostas:
De forma geral, o AgentSpace respondeu bem às perguntas formuladas. As respostas foram completas, bem estruturadas e contextualizadas.Limitações Identificadas:
- O AgentSpace apresentou dificuldade ao responder perguntas que envolvem totais numéricos, como:
- “Qual o total de área construída?”
- “Qual o total de cimento utilizado?”
- Nesses casos, a ferramenta não pega o valor total dado pela tabela apresentada, ele soma esses valores, trazendo a resposta valores que não deverião fazer parte.
- O AgentSpace apresentou dificuldade ao responder perguntas que envolvem totais numéricos, como: