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 answerForç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:
- O agente externo escolhe um domínio (pedidos, cobrança ou envio)
- 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 modeltool_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
- Como funciona a chamada de funções
- Definindo esquemas de ferramentas (JSON Schema)
- Escolhendo ferramentas em tempo de execução
- Retornando resultados ao modelo