Chamada de funções
Descreva suas funções; o modelo decide quando chamá-las, seu código executa e devolve o resultado.
Atualizado em 10 de ago. de 2026
Na chamada de funções, você descreve funções para o assistente e ele devolve, de forma inteligente, quais chamar e com quais argumentos — quem executa é o seu código. O run para em requires_action, espera os resultados e continua com eles.
Funções entram em tools na criação do assistente, com parâmetros em JSON Schema:
curl -s https://api.hinow.ai/v1/assistants \
-H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
-d '{
"model": "hinow/himax",
"name": "Meteorologista",
"instructions": "Use get_weather para responder sobre o clima.",
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Obtém o clima atual de uma cidade",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string", "description": "Nome da cidade"}},
"required": ["city"]
}
}
}]
}'Quando a pergunta dispara uma função, o run para em requires_action. O objeto traz as chamadas pendentes — cada uma com id, nome e argumentos que o modelo escolheu:
{
"id": "run_e31d5fe7...",
"status": "requires_action",
"required_action": {
"type": "submit_tool_outputs",
"submit_tool_outputs": {
"tool_calls": [{
"id": "call_00_R8JQ...",
"type": "function",
"function": {"name": "get_weather", "arguments": "{\"city\": \"Curitiba\"}"}
}]
}
}
}https://api.hinow.ai/v1/threads/{thread_id}/runs/{run_id}/submit_tool_outputsBearerEntrega os resultados das funções; o run continua de onde parou.
Parâmetros
thread_idstring· pathobrigatóriorun_idstring· pathobrigatóriotool_outputsarray· bodyobrigatório[{"tool_call_id": "call_...", "output": "..."}] — todos os calls pendentes, numa única chamada.
streamboolean· bodytrue continua o run em SSE, com os mesmos eventos.
Respostas
curl -s https://api.hinow.ai/v1/threads/$THREAD/runs/$RUN/submit_tool_outputs \
-H "Authorization: Bearer hi_SUA_API_KEY" -H "Content-Type: application/json" \
-d '{
"tool_outputs": [{
"tool_call_id": "call_00_R8JQ...",
"output": "{\"temperatura\": \"14°C\", \"condicao\": \"chuvisco\"}"
}]
}'O run volta para queued, o modelo lê os resultados e escreve a resposta final na thread. Os run steps registram tudo: o step tool_calls guarda argumentos e o output que você enviou; o message_creation fecha o ciclo.
Tudo de uma vez, dentro do prazo
Envie os outputs de todos os tool_calls pendentes numa única chamada — parciais são recusados com 400 e a lista dos ids esperados. E dentro da janela do run: 10 minutos após a criação, um run em requires_action expira.
O modelo pode chamar várias funções de uma vez (parallel_tool_calls, ligado por default) — o array tool_calls traz todas, e você devolve todas juntas. Com stream: true no submit, a continuação chega por SSE como em qualquer run.

