MCP/ferramentas não são API REST: Aqui está um design melhor
Modelos de idiomas grandes (LLM) sem acesso aos dados atuais são quase inúteis. Eles precisam de dados e contexto suficientes para fazer a coisa certa, e é aí que a chamada de ferramentas se torna alavancada. A ascensão do MCP desbloqueou mais possibilidades para os agentes de IA acessarem as informações atuais e, portanto, fornecem resultados úteis. As ferramentas são funções ou APIs que os modelos ou agentes podem ligar para executar tarefas. Uma boa prática para o design da ferramenta é fornecer uma descrição clara do que cada ferramenta faz e quando usá -la. Você encontrará essas informações em alguns bons recursos sobre ferramentas e chamadas de funções, mas eu gostaria de abordar outra coisa: as ferramentas não são APIs de repouso. O que quero dizer? Muitas empresas agora oferecem MCP para seus produtos e serviços. Na maioria das vezes, é apenas uma abstração direta da sua API de descanso ou grafql. Não me importo com apenas algumas ferramentas para ligar; Torna -se irritante quando um MCP expõe 20 ou mais ferramentas. Muitas opções de ferramentas tornam difícil para um agente decidir sobre a ferramenta certa para ligar. Por exemplo: 📂 Servidor MCP: Github-MCP-Server-Official 📜 get_notification_details Obtenha informações detalhadas para uma notificação específica do GitHub … 📜 get_pull_request Obtenha detalhes de uma solicitação de tração específica em um repositório do GitHub. 📜 get_pull_request_comments Obtenha comentários para uma solicitação de tração específica. 📜 get_pull_request_diff Obtenha o diferencial de uma solicitação de tração. 📜 get_pull_request_files altere os arquivos em uma solicitação de tração específica. 📜 get_pull_request_reviews Obtenha análises para uma solicitação de tração específica. 📜 get_pull_request_status obtém o status de uma solicitação de puxar específica. 📜 get_secret_scanning_alert Get details of a specific secret scanning alert in a GitHub r… 📜 get_tag Get details about a specific git tag in a GitHub repository 📜 get_workflow_run Get details of a specific workflow run 📜 get_workflow_run_logs Download logs for a specific workflow run (EXPENSIVE: downl… 📜 get_workflow_run_usage Get usage metrics for Um fluxo de trabalho 📜 list_branches listam ramificações em um repositório GitHub 📜 list_code_scanning_alerts Código de listar alertas de varredura em um repositório do GitHub. Então, mas ainda existem algumas perguntas: por que algumas das ferramentas get_pull_request_* são combinadas em uma? Inútil. get_daily_stock_data: para recuperar dados de estoque diário. Data. Isso funciona porque os parâmetros para recuperar dados de estoque são semelhantes e você provavelmente precisa de uma instrução Switch para escolher qual função interna ou de Rest Chined. Argumentos da próxima vez que você está projetando ou construindo ferramentas de maneira semelhante a ferramentas ou descrições quase idênticas podem tornar os modelos para decidir como ligar.
Fonte
Publicar comentário