10 pontos por xguru 2025-04-10 | Ainda não há comentários. | Compartilhar no WhatsApp
  • A equipe de Node.js da Red Hat está experimentando formas de integrar LLMs com Node.js e TypeScript/JavaScript
  • Comparando vários frameworks, com foco especial em chamadas de tools/functions e no funcionamento de agentes
  • Análise dos recursos do Llama Stack, lançado recentemente, e de seu potencial de integração com Node.js

Como configurar e executar o Llama Stack

  • O Llama Stack é um framework modular que distribui várias implementações com o objetivo de padronizar APIs
  • Ao usar um contêiner baseado em Ollama, ele oferece a forma mais fácil de execução
  • Configuração do servidor por meio de um exemplo de script de execução:
    • Modelo: meta-llama/Llama-3.1-8B-Instruct
    • Porta: 8321
    • IP do servidor Ollama: 10.1.2.38
  • É preciso executar o modelo no Ollama com antecedência e usá-lo ao menos uma vez por dia para manter o keepalive
  • O endpoint de documentação (/docs) permite consultar o esquema da API e fazer testes interativos

Exemplo da primeira aplicação em Node.js

  • Uso da biblioteca llama-stack-client-typescript para se comunicar com o Llama Stack
  • Definição de duas tools:
    • favorite_color_tool: fornece informações de cor com base em cidade/país
    • favorite_hockey_tool: fornece informações de times de hóquei no gelo com base em cidade/país
  • Teste do fluxo de chamada de tools por meio de um cenário de perguntas
  • Problema inicial: quando faltavam informações necessárias para a tool, não era exibida uma orientação clara
  • Solução: inserir a palavra "assistant" na mensagem de resposta melhorou o fluxo de forma natural

Como o Llama Stack trata chamadas de tools

  • Ao usar a API chatCompletion(), é preciso tratar diretamente as chamadas de tools
  • A função handleResponse() detecta solicitações de tools e devolve os resultados novamente como mensagem
  • tool_choice vem definido como "auto" por padrão, mas há forte tendência a tentar usar tools quando elas estão disponíveis
  • Foi observado que, mesmo quando a pergunta não tem relação com as tools, o sistema desiste de tentar usá-las e acaba tratando o caso como ‘não é possível responder’

Experimento de integração entre MCP e Llama Stack

  • Com o MCP (Model Context Protocol), é possível hospedar tools em um servidor externo e compartilhá-las com vários frameworks
  • O servidor MCP faz a ponte de servidores baseados em stdio para SSE por meio do Supergateway
  • Após registrar o servidor MCP, é possível usar a API de agentes do Llama Stack para chamar automaticamente as tools do MCP
  • A API de agentes:
    • gerencia automaticamente estado e mensagens
    • executa internamente o fluxo de chamada de tools no framework
  • No entanto, não é possível ver diretamente os logs das chamadas de tools, apenas a resposta final

Uso de MCP para acesso ao ambiente local

  • É possível executar um servidor MCP localmente em modo stdio e conectá-lo ao Llama Stack
  • É necessário código para converter o JSON de definição de tools do servidor MCP para um formato compatível com o Llama Stack
  • Por meio de mcpClient.callTool(), é possível retornar resultados de tools dentro do fluxo de resposta do LLM
  • Com isso, é possível implementar cenários de acesso a aplicações locais, e não apenas a servidores centralizados

Encerramento

  • Foi realizada uma prática de integração de LLMs e chamadas de tools com o Llama Stack em ambiente Node.js
  • São apresentados vários métodos: tools locais, MCP remoto e MCP local, cobrindo diferentes casos de uso
  • Em especial, o material oferece exemplos de código e fluxos práticos para desenvolvedores JavaScript/TypeScript
  • Serve como um bom ponto de partida para quem quer integrar LLMs com Node.js no futuro

Materiais adicionais

Ainda não há comentários.

Ainda não há comentários.