0Pricing
AI Agents · Aula

Escolhendo ferramentas em tempo de execução

Permita que o modelo decida qual ferramenta chamar, force uma ferramenta específica ou disponibilize apenas as ferramentas relevantes para o estado atual.

Escolhendo ferramentas em tempo de execução é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Deixe o modelo escolher

Por padrão, você fornece ao modelo uma lista de ferramentas, e ele decide qual chamar, ou se não chamará nenhuma. Esse é o modo padrão e funciona bem quando:

  • Você tem de 5 a 15 ferramentas
  • As ferramentas têm descrições claras e distintas
  • A ferramenta correta depende da entrada do usuário

tool_choice: auto

O padrão: o modelo decide:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='auto',  # default; can be omitted
)

tool_choice: required

Force o modelo a chamar SOME ferramenta, qualquer uma delas:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='required',
)
# Model must return a tool_call, never a free-form answer

Forçar uma ferramenta específica

Para forçar uma única ferramenta específica, informe o nome dela:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'extract_entities'}},
)

tool_choice: none

Desative as ferramentas durante uma rodada:

# After a tool result, you might want a pure text response:
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='none',
)

Reduza a lista de ferramentas conforme o contexto

Os modelos fazem escolhas piores em conjuntos grandes de ferramentas. Exponha apenas as ferramentas relevantes para o estado atual:

def relevant_tools(state):
    if state == 'authenticated':
        return [search_orders, refund_order, escalate]
    elif state == 'guest':
        return [search_products, contact_support]
    return []

Seleção de ferramentas em duas etapas

Para mais de 50 ferramentas, use uma hierarquia:

  1. O agente externo escolhe um domínio (pedidos, cobrança ou envio)
  2. O agente interno escolhe a ferramenta específica dentro desse domínio

Cada chamada vê apenas cerca de 10 ferramentas.

Busca vetorial sobre ferramentas

Gere uma representação vetorial da descrição de cada ferramenta; durante a execução, gere uma representação vetorial da consulta do usuário e recupere as K principais ferramentas para expor:

from openai import OpenAI
import numpy as np

query_emb = embed(user_query)
sims = [cosine(query_emb, tool.emb) for tool in all_tools]
top = [t for _, t in sorted(zip(sims, all_tools), reverse=True)[:10]]
# Send only these 10 to the model

tool_choice da Anthropic

A Anthropic usa o mesmo conceito com uma estrutura diferente:

tool_choice = {'type': 'auto'}
print("auto:", tool_choice)
tool_choice = {'type': 'any'}                              # required
print("any (required):", tool_choice)
tool_choice = {'type': 'tool', 'name': 'get_weather'}      # specific
print("specific tool:", tool_choice)
tool_choice = {'type': 'none'}
print("none:", tool_choice)

Por que forçar uma ferramenta específica?

É útil para:

  • Validação — extrair um campo estruturado específico
  • Roteamento — o usuário clicou em "refund", então chame refund_order
  • Saída estruturada — use chamadas de ferramentas para obter JSON

Listas de ferramentas vazias

Se você passar tools=[] com tool_choice="required", receberá um erro. Sempre valide a lista de ferramentas antes de enviar.

Forçar uma saída JSON

Por que você poderia forçar uma chamada de ferramenta específica?

Recapitulação

Use auto na maioria dos casos. Force ferramentas para roteamento e extração estruturada. Reduza a lista de ferramentas conforme o estado para manter a seleção precisa.

Perguntas Frequentes

A aula “Escolhendo ferramentas em tempo de execução” é grátis?

Sim — o texto completo de “Escolhendo ferramentas em tempo de execução” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Escolhendo ferramentas em tempo de execução”?

Permita que o modelo decida qual ferramenta chamar, force uma ferramenta específica ou disponibilize apenas as ferramentas relevantes para o estado atual. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Escolhendo ferramentas em tempo de execução”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Como funciona a chamada de funções
  2. Definindo esquemas de ferramentas (JSON Schema)
  3. Escolhendo ferramentas em tempo de execução
  4. Retornando resultados ao modelo
← Voltar para AI Agents