
Talentos Gateway na Solon AI: OpenAPI, Ferramenta e Superfícies MCP que Escalam sem Explosão de Contexto
Quando um agente pode ver 80 ferramentas ao mesmo tempo, o modelo não fica mais inteligente. Ele fica mais barulhento. As contas de tokens aumentam, a escolha da ferramenta se desvia e um simples prompt de “verificar status do pedido” de repente carrega metade da superfície OpenAPI da sua empresa.
O Solon AI (v4.0.3) responde a isso com o trio de Talentos Gateway em solon-ai-talent-gateway:
| Talento | Fonte das ferramentas | Unidade de gerenciamento |
|---|---|---|
OpenApiGatewayTalent |
Documentos OpenAPI / Swagger | uma fonte de API |
ToolGatewayTalent |
local / MCP FunctionTools |
uma ferramenta, adição/remover em tempo de execução |
McpGatewayTalent |
conexões de cliente MCP | um servidor MCP, além de listas de permissão/negação |
Todos os três compartilham o mesmo modelo de descoberta adaptativa em quatro estágios. Catálogos pequenos permanecem totalmente expandidos. Catálogos grandes se dobram em resumo → lista de nomes → pesquisa, para que o LLM pague apenas pelo que precisa.
Este artigo se concentra em APIs oficiais de article/1353, article/1389, article/1335, e article/1293.
Por que um gateway é um Talento, não “apenas mais ferramentas”
No Solon AI, uma Ferramenta é uma função atômica. Um Talento empacota ferramentas com instruções, ativação e restrições no estilo SOP.
Gateways precisam desse empacotamento:
- muitos esquemas brutos estouram o contexto
- ferramentas de diferentes sistemas precisam de agrupamento e ciclo de vida
- o modelo deve descobrir a capacidade passo a passo, não engolir tudo na primeira vez
É por isso que você conecta gateways com defaultTalentAdd(...) (ou talentAdd com escopo de solicitação), não despejando toda operação OpenAPI em defaultToolAdd.
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-talent-gateway</artifactId>
</dependency>
Os recursos MCP também precisam de solon-ai-mcp. A análise OpenAPI puxa o swagger-parser (v2 e v3); exclua-o apenas se você nunca carregar documentos.
Os quatro estágios (compartilhados por todos os três gateways)
| Estágio | Gatilho (padrões) | O que o modelo vê | Ferramentas proxy expostas |
|---|---|---|---|
| COMPLETO | contagem <= dynamicThreshold (8) |
esquemas de ferramentas completos | ferramentas originais (OpenAPI se colapsa em call_api) |
| RESUMO |
8 < contagem <= listThreshold (30 OpenAPI / 40 outros) |
nome + descrição (+ endpoint) |
get_*_detail + call_*
|
| LISTA |
listThreshold < contagem <= searchThreshold (100) |
nomes agrupados apenas |
search_* + get_*_detail + call_*
|
| PESQUISA | contagem > 100
|
sem despejo de catálogo | caminho de pesquisa forçado: search_* → detalhe → chamada |
Regra de design dos documentos: quando o catálogo é pequeno, incorpore esquemas completos na instrução para que o modelo possa chamar em um passo; quando cresce, dobre a informação e force a descoberta progressiva.
Controles compartilhados:
| Método | Padrão | Notas |
|---|---|---|
dynamicThreshold(n) |
8 | teto COMPLETO |
listThreshold(n) |
30 (OpenAPI) / 40 (outros) | teto RESUMO |
searchThreshold(n) |
100 | teto LISTA |
retryConfig(maxRetries) |
3 | compartilhado |
retryConfig(maxRetries, retryDelayMs) |
3, 1000 | McpGatewayTalent forma de atraso |
maxContextLength(n) |
8000 | OpenApiGatewayTalent truncamento de resposta |
1. OpenApiGatewayTalent — transforme Swagger em uma superfície de agente
Use isso quando as ferramentas já existirem como documentos OpenAPI / Swagger (remoto http:// ou local classpath:).
Capacidades oficialmente destacadas:
- Detecção automática do Swagger 2.0 + OpenAPI 3.0
- carregamento de múltiplas fontes com agrupamento baseado em tags
-
$refexpansão e marcadores de referência circular - substituição de espaço reservado de caminho com codificação de URL
- truncamento de resposta (
maxContextLength) - ferramentas
allowedTools/disallowedToolspor fonte -
ApiAuthenticator(bearer / apiKey / custom) - pular operações
@Deprecated
import org.noear.solon.ai.agent.react.ReActAgent;
import org.noear.solon.ai.talents.gateway.OpenApiGatewayTalent;
import org.noear.solon.ai.talents.gateway.openapi.ApiAuthenticator;
import org.noear.solon.ai.talents.gateway.openapi.ApiSource;
import java.time.Duration;
import java.util.Arrays;
OpenApiGatewayTalent apiTalent = new OpenApiGatewayTalent()
.dynamicThreshold(5)
.listThreshold(30)
.searchThreshold(100)
.maxContextLength(10_000)
.defaultTimeout(Duration.ofSeconds(30))
.defaultAuthenticator(ApiAuthenticator.bearer("seu-token"));
// montagem simples de múltiplas fontes
apiTalent.addApi(Contexto Triplo UpAs empresas brasileiras podem se beneficiar do uso de Gateways para gerenciar suas APIs de forma mais eficiente, reduzindo custos e melhorando a performance dos agentes de IA. A implementação de Talentos Gateway pode facilitar a integração de ferramentas e otimizar processos internos.
Noticias relacionadas

Liquidação Atômica é Cega a Sybil por Design - E é por Isso que um Diretório de Contrapartes Está Acima Disso
O artigo discute como contratos de liquidação atômica são cegos a identidades, garantindo segurança sem depender de quem é a contraparte. A separação entre liquidação e seleção é crucial para a segurança em transações.

Dia 10/30: Citações Precisos
O artigo discute como um agente de pesquisa começou a gerar citações falsas, levando à necessidade de um entendimento mais estruturado sobre citações usando o Model Context Protocol (MCP). A implementação de um modelo de citação melhorou a precisão das referências.

Servidor MCP para gerar códigos QR personalizados diretamente no Cursor e Claude
Um servidor MCP foi criado para gerar códigos QR personalizados diretamente em editores como Cursor e Claude, eliminando a necessidade de geradores online. O servidor permite controle sobre formato, design e branding dos códigos.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.