Skip to Content
API ReferenceTool-call

Overview

Toolcall (Function Calling) is an advanced capability on the StepFun platform. It lets models decide which external tools or functions to invoke to satisfy a user request. By using the Toolcall API, you can extend model capabilities to cover more use cases and offer richer features. Below is a minimal JSON request example that must include three key parameters:

{ "model": "step-1-8k", "messages": [ { "role": "user", "content": "Hey, can you calculate (80 + 20) / 5 for me?" } ], "tools": [ { "type": "function", "function": { "name": "Calculator", "description": "This StepFun API provides basic arithmetic: addition, subtraction, multiplication, and division.", "parameters": { "properties": { "formula": { "type": "string", "description": "Expression to evaluate. Only integers are supported. Operators: +, -, *, /, and parentheses. Example: (1 + 2) * 3." } }, "type": "object" } } } ] }

model: model name

The following models support Toolcall requests:

  • step-1-8k
  • step-1-32k
  • step-1v-8k
  • step-1v-32k
  • step-1-128k
  • step-1-256k

Official tools

StepFun provides these built-in tools; configure them to enable the capability directly:

  • Web search: call a search engine to fetch the latest information.
  • Knowledge base search: upload text to a knowledge base and search it to reduce hallucinations.

tools: list of functions

Use tools to describe the functions available locally. Up to 128 tools are allowed. Each entry has type function and contains a function object with the name, description, and parameters.

  • name: letters, numbers, -, _; ideally under 64 characters. Use a clear English name so the model understands it (regex guideline: ^[a-zA-Z*][a-zA-Z0-9-_]63$).
  • parameters: root type must be object. The content follows a subset of JSON Schema; keys follow the same naming rule. See JSON Schema  for supported type values. description explains each parameter.
  • description: explains what the function does so the model can choose it; English or Chinese is supported.

messages: conversation context

See Chat Completion request object.

Examples

from openai import OpenAI client = OpenAI(api_key = "STEP_API_KEY", base_url = "https://api.stepfun.ai/v1") completion = client.chat.completions.create( model = "step-1-8k", messages = [ { "role": "user", "content": "Can you calculate (80 + 20) / 5 for me?" }], tools = [ { "type": "function", "function": { "name": "Calculator", "description": "This StepFun API provides basic arithmetic: addition, subtraction, multiplication, and division.", "parameters": { "type": "object", "properties": { "formula": { "type": "string", "description": "Expression to evaluate. Only integers are supported. Operators: +, -, *, /, and parentheses. Example: '(1 + 2) * 3'." } } } } }] ) print(completion)
Response
{ "id": "b7b56af0-52a6-483f-a589-948182676a1b", "object": "chat.completion", "created": 1717744611, "model": "step-1-8k", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "", "tool_calls": [ { "id": "call_ybVBO_JASgipgJH8xWbhKg", "type": "function", "function": { "name": "Calculator", "arguments": "{\"formula\": \"(80 + 20) / 5\"}" } } ] }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 151, "completion_tokens": 25, "total_tokens": 176 } }
Last updated on