Skip to main content
A character answers the player in text, remembers the conversation and calls your game’s tools.

Example

The result has text, the tool_calls the character made, exchange_id and conversation_id. Pass the conversation_id on the next call, and Summer keeps the history of that conversation. Tools. Declare each tool on the character in Studio, with the same name as in tools. When the character calls one, the SDK runs your handler with the arguments as a Dictionary, sends what it returns back to the character, and the character goes on, for up to 8 rounds in one call. Return any JSON value; return {"error": "..."} to tell the character it failed. A handler that takes longer than 30 seconds sends a timeout to the character. Options. variables fill the character’s declared {{variables}}, such as the player’s name; the character must list variables in its overridable fields. context tells the character what just happened in the game. overrides set the fields you marked overridable on the character, such as its first message. For a whole conversation in one node, use SummerRouterCharacter (see the quickstart).

Input limits

The SDK builds the request from the call’s arguments and options. Summer checks these limits: Send text, tool_results, or both. With only tool_results, leave the text empty: it answers the previous turn’s tool calls.

Errors

Every refusal has a stable tag and a one-line fix, and the game keeps running. See errors.